# Andele Mandele Latvia Second-Hand Marketplace

> Search Andele Mandele, Latvia's second-hand marketplace for women's, men's and kids' clothing, shoes, home goods and vehicles, listed by private sellers. Free text plus the site's own filters (category, condition, size, colour and other attributes, brand, price, sale, reserved, sold) and its six sort orders. Nothing is required: no parameters browses the live catalogue.
> ReefAPI engine `andele-mandele` · 5 endpoints · clean JSON, no scraping or browsers to manage.

## How to call
- **Endpoint:** `POST https://api.reefapi.com/andele-mandele/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/andele-mandele/v1/search — 2 credits
Search Andele Mandele, Latvia's second-hand marketplace for women's, men's and kids' clothing, shoes, home goods and vehicles, listed by private sellers. Free text plus the site's own filters (category, condition, size, colour and other attributes, brand, price, sale, reserved, sold) and its six sort orders. Nothing is required: no parameters browses the live catalogue.

**Parameters:**
- `query` (string, optional) — Free text as a Latvian shopper types it: `nike`, `kleita`, `reima kombinezons`, `lego`. Combine with `category_id` to search inside one category.
- `category_id` (integer, optional) — An Andele Mandele category id from `categories` (1 Dāmām / women, 2 Bērniem / kids, 54 Kungiem / men, 70 Mājai / home, 433 Transports; 3 = women's dresses, 16 = women's shoes). An id the site does not know returns 0 rows.
- `attribute_ids` (array, optional) — Attribute value ids from `filters` for the same category: condition (19 new, 21 used-excellent, 220 used-good, 20 used-with-flaws, 22 vintage), size, colour, material, length … Ids of the SAME attribute are OR-ed (S or M), different attributes are AND-ed (S and new). Size ids are per size table: clothing S is 24, shoe 36 is 62.
- `brand_ids` (array, optional) — Brand ids from `brands` (ZARA 23, Massimo Dutti 106, Max Mara 61462) or a row's brand.id.
- `min_price` (number, optional) — Lowest price in euros.
- `max_price` (number, optional) — Highest price in euros.
- `on_sale` (boolean, optional, default false) — Only listings in a seller's time-limited sale (the site's -N% badge).
- `hide_reserved` (boolean, optional, default false) — Leave out listings a buyer has reserved (the site's 'Nerādīt rezervētos').
- `sold_only` (boolean, optional, default false) — Only listings that have sold (the site's 'Tikai pārdotās Pērles'): sold prices for market research. The site keeps a short recent window, not the full history.
- `sort` (enum, optional, default "relevance") — Result order, the site's six: relevance (Aktuālie, the default), newest, popular, price_asc, price_desc, biggest_discount. [one of: relevance, newest, popular, price_asc, price_desc, biggest_discount]
- `page` (integer, optional, default 1) — 1-based page. `last_page` in the answer says where this result ends.
- `page_size` (enum, optional, default 48) — Rows per page: 48 (site default) or 96. [one of: 48, 96]
- `include_pii` (boolean, optional, default false) — Accepted for gateway compatibility; seller fields are returned as published.

**Returns:** {query, total, total_display, page, page_size, last_page, has_more, sort, filters_applied, products[]}. Each product: {id, url, slug, price_eur, old_price_eur, old_price_kind (before_sale | original_retail), on_sale, sale_percent, currency, brand{id, name, slug}, shown_attributes[], favorites_count, applications_count, is_inactive, status_label, is_sold, is_reserved, image, images[]}. Search rows carry no title or seller (the site's cards do not): pass `id` to `product` for the full record.

**Example request body:**
```json
{
  "category_id": 3,
  "attribute_ids": [
    24
  ],
  "sort": "newest"
}
```

### POST https://api.reefapi.com/andele-mandele/v1/product — 3 credits
One Andele Mandele listing in full: title and description (with the seller's original text when the site machine-translated it), current price, pre-sale price, the seller's stated original retail price, sale percent and expiry, condition, size, colours, material and every other attribute, brand, category path, views, likes, purchase requests, dates, every image, and the seller (username, name, country, rating with star breakdown, active listings, followers, member since, last seen, business flag).

**Parameters:**
- `id` (integer, optional) — Andele Mandele product id: the `id` of a search row.
- `url` (string, optional) — Or the product URL (https://www.andelemandele.lv/perle/<id>/<slug>/).
- `include_pii` (boolean, optional, default false) — Accepted for gateway compatibility; seller fields are returned as published.

**Returns:** {id, url, slug, title, title_original, description, description_original, is_machine_translated, status, is_sold, sold_at, is_reserved, price_eur, price_before_sale_eur, original_retail_price_eur, on_sale, sale{percent, price_eur, expires_at}, currency, ld_price_eur, price_mismatch, availability, category{id, name, parent_id}, breadcrumb[{name, url}], brand{id, name, slug, follower_count, product_count}, condition, size, colors[], material, attributes[{id, name, type, values[{id, name, hex}]}], views, favorites_count, applications_count, created_at, listed_at, is_promoted, image, images[], images_original[], image_count, related_listings_count, seller{id, username, first_name, last_name, profile_url, avatar, country, joined_at, last_seen_at, rating, rating_count, rating_stars, active_listings, follower_count, verification_level, is_business, flags[], about, status}}. Give `id` or `url`.

**Example request body:**
```json
{
  "url": "https://www.andelemandele.lv/perle/16184947/ziemas-kombinezons-reima/"
}
```

### POST https://api.reefapi.com/andele-mandele/v1/categories — 3 credits
The whole Andele Mandele category tree (Dāmām / women, Bērniem / kids, Kungiem / men, Mājai / home, Transports) down to leaf categories, each with its live listing count and the `id` that `search` and `filters` take.

**Parameters:**
- `include_pii` (boolean, optional, default false) — Accepted for gateway compatibility; seller fields are returned as published.

**Returns:** {count, total_listings, categories[{id, name, level, parent_id, url, listing_count, children[]}]}

### POST https://api.reefapi.com/andele-mandele/v1/filters — 1 credit
The attributes a category is filtered by (condition, size table, colour, material, length, fuel, year …) with the value ids `search` takes as `attribute_ids`. Size tables differ by category, so look sizes up for the category you search.

**Parameters:**
- `category_id` (integer, required) — A category id from `categories`.
- `include_pii` (boolean, optional, default false) — Accepted for gateway compatibility; seller fields are returned as published.

**Returns:** {category_id, attributes[{id, name, max_per_listing, values[{id, name}]}]}

**Example request body:**
```json
{
  "category_id": 16
}
```

### POST https://api.reefapi.com/andele-mandele/v1/brands — 1 credit
Look up brand ids by name with the site's own brand autocomplete.

**Parameters:**
- `query` (string, required) — A brand name or its first letters.
- `include_pii` (boolean, optional, default false) — Accepted for gateway compatibility; seller fields are returned as published.

**Returns:** {query, brands[{id, name}]}

**Example request body:**
```json
{
  "query": "zara"
}
```

## 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=andele-mandele
- Human docs page: https://reefapi.com/docs/andele-mandele
- Overview page: https://reefapi.com/andele-mandele-api
- Every ReefAPI API in one file (for your AI): https://reefapi.com/llms-full.txt
