# SS.com Latvia Classifieds — cars, flats, jobs, electronics (ss.com / ss.lv)

> Search all of SS.com, Latvia's largest classifieds site, by text: every matching advert across cars, property, electronics, jobs and every other section, with its category, price in EUR, region, thumbnail and advert code. Narrow by deal type (sell, buy, rent out, swap).
> ReefAPI engine `ss-lv` · 4 endpoints · clean JSON, no scraping or browsers to manage.

## How to call
- **Endpoint:** `POST https://api.reefapi.com/ss-lv/v1/<action>` with a JSON body.
- **Auth:** header `x-api-key: <YOUR_REEFAPI_KEY>` — create one free (1,000 credits, no card): https://reefapi.com/signup
- **Response (every call):** `{ ok: boolean, data: ..., meta: { record_count, credits, ... }, error: { code, message } }` — branch on `ok`. Failed calls are free except verified SHEIN NOT_FOUND on product/detail and price (4 credits).
- **One key + one shared credit pool** across every ReefAPI API. Per-call credits are listed on each endpoint below.
- **Use it from an AI agent (MCP):** connect `https://api.reefapi.com/mcp` (remote streamable-http). Send the key as `Authorization: Bearer <key>`, or put it in the URL (`?key=<key>`) when the client has no header field, as ChatGPT does.

## Endpoints

### POST https://api.reefapi.com/ss-lv/v1/search — 2 credits
Search all of SS.com, Latvia's largest classifieds site, by text: every matching advert across cars, property, electronics, jobs and every other section, with its category, price in EUR, region, thumbnail and advert code. Narrow by deal type (sell, buy, rent out, swap).

**Parameters:**
- `query` (string, required) — Words to find anywhere on SS.com, in any language sellers write (Latvian, Russian, English brand names). Matches the advert text and its category names.
- `deal_type` (enum, optional) — Deal type, the site's own segment: sell, buy, hand_over (rent out / let), remove (will rent), change (swap), -other. Search also knows spareparts, give, make, services, repair, found, lost, refilling. The category's own list comes back from `categories`. [one of: sell, buy, hand_over, remove, change, -other, spareparts, give, make, services, repair, found, lost, refilling]
- `page` (integer, optional, default 1) — 1-based page. `last_page` in the answer is the source's own last page; asking past it returns 0 rows with `page_clamped: true` (SS.com itself would silently serve page 1 again).
- `lang` (enum, optional, default "en") — Language of the site's own labels (category names, attribute names, deal type). The advert text is always the seller's own words, usually Latvian or Russian. [one of: en, lv, ru]
- `include_pii` (boolean, optional, default false) — Accepted for fleet compatibility. Nothing is withheld: the seller block is returned as SS.com prints it (the site itself masks the last phone digits).

**Returns:** {query, deal_type, page, last_page, has_more, page_clamped, count, last_page_is_cap, listings[]}. 🔴 SS.com stops a text search at 50 pages (1,500 adverts): `last_page_is_cap` says when that ceiling was hit. Each listing: id (the advert code `listing` takes), code (same), ad_number (SS.com's numeric advert number), url, title (the opening of the advert text), highlighted (paid highlight), category_path, category_names[], category_id, region, price, currency, price_period, price_text, image, thumbnail, columns{}. 30 rows a page; SS.com publishes no total count, `last_page` is its own.

**Example request body:**
```json
{
  "query": "iphone 13"
}
```

### POST https://api.reefapi.com/ss-lv/v1/browse — 3 credits
Page through one SS.com category exactly as the site lists it — a car make or model, flats in one Riga district, one phone brand, one job type — with the category's own table columns (model, year, engine, mileage for cars; street, rooms, m², floor, series, price per m² for flats). Filter by deal type, posting period, price and any filter the category's own form offers.

**Parameters:**
- `category` (string, required) — A SS.com category path, exactly as in the site's URLs: transport/cars/bmw, real-estate/flats/riga/centre, electronics/phones/mobile-phones/apple, work/are-required. A full ss.com list URL is accepted too. Walk the tree with `categories`.
- `deal_type` (enum, optional) — Deal type, the site's own segment: sell, buy, hand_over (rent out / let), remove (will rent), change (swap), -other. Search also knows spareparts, give, make, services, repair, found, lost, refilling. The category's own list comes back from `categories`. [one of: sell, buy, hand_over, remove, change, -other, spareparts, give, make, services, repair, found, lost, refilling]
- `period` (enum, optional) — Only adverts posted today, in the last 2 days or the last 5 days (the site's own counts for each come back from `categories`). [one of: today, 2days, 5days]
- `price_min` (number, optional) — Lowest price in EUR.
- `price_max` (number, optional) — Highest price in EUR.
- `filters` (object, optional) — Any other filter the category's own filter form offers, by its `key` from `categories` (e.g. year_min, year_max, gearbox, fuel_type, rooms_min, area_max, series). Range keys take a value from the form's own list; select keys take the option label or its value. Every filter is verified on the returned page — a filter SS.com did not apply fails the call instead of returning the unfiltered list.
- `page` (integer, optional, default 1) — 1-based page. `last_page` in the answer is the source's own last page; asking past it returns 0 rows with `page_clamped: true` (SS.com itself would silently serve page 1 again).
- `lang` (enum, optional, default "en") — Language of the site's own labels (category names, attribute names, deal type). The advert text is always the seller's own words, usually Latvian or Russian. [one of: en, lv, ru]
- `include_pii` (boolean, optional, default false) — Accepted for fleet compatibility. Nothing is withheld: the seller block is returned as SS.com prints it (the site itself masks the last phone digits).

**Returns:** {category, deal_type, period, filters_applied{}, page, last_page, has_more, page_clamped, count, columns[], listings[]} — listing rows as in `search`, with `columns` keyed by the category's own column titles and price_per_m2 on property. Page size is the source's (60 on car makes, 30 elsewhere). A category that only lists sub-categories returns them in `subcategories`.

**Example request body:**
```json
{
  "category": "transport/cars/bmw"
}
```

### POST https://api.reefapi.com/ss-lv/v1/listing — 3 credits
One SS.com advert in full: the seller's whole text, every attribute the category collects (make, year, engine, gearbox, mileage, colour, body, inspection date for a car; city, district, street, rooms, area, floor, series, house type for a flat), the full equipment list, every photo, the price with its notes, map coordinates, the posting date, unique visits, and the seller block (company, address, working hours, logo, masked phone).

**Parameters:**
- `id` (string, required) — The advert: its code (the letters before .html, e.g. cfjjkm), its path, or its full ss.com / ss.lv URL. Pass a search / browse row's `id` unchanged (its numeric `ad_number` cannot be opened).
- `include_stats` (boolean, optional, default true) — Also read the advert's unique-visit count and the number of adverts on the same phone (one extra small request). Default true.
- `lang` (enum, optional, default "en") — Language of the site's own labels (category names, attribute names, deal type). The advert text is always the seller's own words, usually Latvian or Russian. [one of: en, lv, ru]
- `include_pii` (boolean, optional, default false) — Accepted for fleet compatibility. Nothing is withheld: the seller block is returned as SS.com prints it (the site itself masks the last phone digits).

**Returns:** {listing{id (advert code, same as the row's id), code, ad_number, url, breadcrumbs[], category_path, deal_type_label, description, attributes[{id, label, value, hidden}], attributes_by_label{}, equipment[{group, item, primary}], price, currency, price_period, price_text, price_per_m2, price_notes, price_source_variable, price_mismatch, images[], image, latitude, longitude, published_at, published_text, views, ads_with_same_phone, ads_with_same_email, seller{phone_masked[], company, place, address, address_latitude, address_longitude, working_hours, logo}, hidden_fields[]}}. Fields SS.com shows only after an 'I'm not a robot' check (the full phone, VIN, registration number) are listed in hidden_fields.

**Example request body:**
```json
{
  "id": "cfjjkm"
}
```

### POST https://api.reefapi.com/ss-lv/v1/categories — 2 credits
Walk SS.com's category tree: the sub-categories of any section with their paths (and advert counts where the site prints them), the deal types the category offers, how many adverts were posted today / in 2 days / in 5 days, and the category's full filter vocabulary — the keys `browse` accepts.

**Parameters:**
- `category` (string, optional) — Category path to open; leave empty for the site's top-level sections.
- `lang` (enum, optional, default "en") — Language of the site's own labels (category names, attribute names, deal type). The advert text is always the seller's own words, usually Latvian or Russian. [one of: en, lv, ru]

**Returns:** {category, title, subcategories[{name, path, url, count}], deal_types[], periods[{period, label, count}], filters[{key, label, kind, bound, options[]}], columns[], has_listings, last_page}.

**Example request body:**
```json
{
  "category": "transport/cars"
}
```

## At scale
- **Volume:** 5M+ requests a day, measured at 60 requests a second across the fleet with no
  central bottleneck. Per-key limits are raised for high-volume accounts; volume pricing on request.
- **Missing a source:** tell us a site we do not cover and it becomes an engine. A customer asked
  for bestprice.gr on 21 Sep 2026 and it was in the catalog on 22 Sep.
- **Support:** 2 minute median time from a question in the live chat to the first answer. Setup
  help included, no support tier to buy.
- **One key, one credit pool** across every API. No per-site plans, no separate subscriptions.

## More
- Try it live, no code: https://reefapi.com/playground?engine=ss-lv
- Human docs page: https://reefapi.com/docs/ss-lv
- Overview page: https://reefapi.com/ss-lv-api
- Every ReefAPI API in one file (for your AI): https://reefapi.com/llms-full.txt
