# Kavak — used cars in Mexico, Argentina and Chile with cash and credit price

> Search the used cars Kavak sells from its own stock in ONE country (mx, ar or cl) by make, model, free text, region, branch, fuel, gearbox, body type, colour, driven wheels, availability, seats, price, model year and mileage, in Kavak's seven sort orders. Returns the source's own total, 30 cars per page with the price the card prints and what KIND of price it is (Kavak-credit 'from' price or cash), the monthly payment (Mexico), mileage, region, reservation status and photo. `country` is required; every other parameter is optional.
> ReefAPI engine `kavak` · 3 endpoints · clean JSON, no scraping or browsers to manage.

## How to call
- **Endpoint:** `POST https://api.reefapi.com/kavak/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/kavak/v1/search — 2 credits
Search the used cars Kavak sells from its own stock in ONE country (mx, ar or cl) by make, model, free text, region, branch, fuel, gearbox, body type, colour, driven wheels, availability, seats, price, model year and mileage, in Kavak's seven sort orders. Returns the source's own total, 30 cars per page with the price the card prints and what KIND of price it is (Kavak-credit 'from' price or cash), the monthly payment (Mexico), mileage, region, reservation status and photo. `country` is required; every other parameter is optional.

**Parameters:**
- `country` (enum, optional) — ONE Kavak country: mx (Mexico, MXN), ar (Argentina, ARS), cl (Chile, CLP). One call per country. Measured 2026-10-14 stock: mx 8,437 · ar 1,375 · cl 1,215 cars. [one of: mx, ar, cl]
- `make` (string, optional) — Make slug as Kavak writes it (lower case): nissan, toyota, volkswagen, mercedes_benz, alfa_romeo… Comma-separate several. Action `makes` lists the makes in stock per country with their model slugs. Measured: mx nissan = 800 cars. An unknown slug returns an empty result with a warning.
- `model` (string, optional) — Model slug under `make` (e.g. versa, hilux); comma-separate several. Needs `make`. Measured: mx nissan/versa = 219 cars.
- `query` (string, optional) — Free text matched by Kavak's own search (make, model or trim words). Measured: mx `versa` = 221, ar `hilux` = 13.
- `city` (string, optional) — Region slug (Kavak's `region`): mx has 23 (ciudad_de_mexico, monterrey, guadalajara, cancun…), ar buenos_aires, cl metropolitana_de_santiago. Action `makes` lists them. Measured: mx ciudad_de_mexico = 5,266, cancun = 38.
- `branch` (string, optional) — Branch slug inside a region (Kavak's `location`), e.g. antara_fashion_hall (mx), kavak_tigre (ar), movicenter (cl); action `makes` lists them. Measured: ar kavak_tigre = 239.
- `fuel` (enum, optional) — Fuel (comma-separate several); petrol is `gasolina` in mx/cl and `nafta` in ar. Measured: mx diesel 43, ar petrol 1,202, cl diesel 118. [one of: petrol, premium_petrol, diesel, hybrid, electric, ethanol]
- `transmission` (enum, optional) — Gearbox. Measured: mx manual 1,536, cl manual 541. [one of: automatic, manual]
- `body_type` (enum, optional) — Body type as Kavak names it (comma-separate several); `camioneta` is Kavak's SUV/van-style class, `doble_cabina` a double-cab pickup (mx). Measured: mx pickup 295, ar pickup 92. [one of: suv, sedan, hatchback, pickup, camioneta, doble_cabina, minivan, coupe, van, convertible, wagon, comercial_todoterreno, targa, scooter]
- `color` (enum, optional) — Exterior colour (comma-separate several). Measured: mx red 947, cl red 100. [one of: white, grey, black, silver, red, blue, orange, brown, green, beige, gold, yellow, purple, other]
- `drive` (enum, optional) — Driven wheels. Kavak Mexico classes cars as 4x2/4x4 only; Argentina as front/rear/4x4; Chile uses all four. Measured: mx 4x4 1,070, ar front 1,251. [one of: front, rear, 4x4, 4x2]
- `status` (enum, optional) — `available` or `reserved` (another buyer holds it). Measured: mx reserved 2,484, ar 459, cl 185. [one of: available, reserved]
- `passengers` (string, optional) — Seat count(s), e.g. 7 or 5,7. Measured: mx 7 seats = 593.
- `price_min` (integer, optional) — Lowest price in the country's currency (MXN / ARS / CLP), as Kavak applies it: on a car with a promotion (Argentina's 'Precio financiando 50%') Kavak compares the price BEFORE the promotion, so a row's `price` can sit just below the range (measured 1 of 30 rows, ar 20M-30M).
- `price_max` (integer, optional) — Highest price in the country's currency, applied by Kavak to the price before any promotion (see price_min).
- `year_min` (integer, optional) — Oldest model year.
- `year_max` (integer, optional) — Newest model year.
- `mileage_min` (integer, optional) — Lowest odometer reading, km.
- `mileage_max` (integer, optional) — Highest odometer reading, km.
- `sort` (enum, optional, default "relevance") — Order of the results (Kavak's own seven). [one of: relevance, price_asc, price_desc, year_desc, year_asc, mileage_asc, mileage_desc]
- `page` (integer, optional, default 1) — Page number; 30 cars per page. `summary.last_page` and `summary.has_more` come from the source's own total. A page past the last returns no rows (the source never repeats a page).

**Returns:** `{rows[], summary{country, currency, total_results, page, rows_per_page, last_page, has_more, past_last_page, reserved_on_page, filters_applied}}`. Each row: id + country (the values `detail` takes), url (pins the car with ?id=), url_as_published, title, make, model, trim, year, price + currency (MXN/ARS/CLP), price_kind (`from_financed` = Kavak-credit price, `cash`) + price_label_as_published, price_as_published, promotion_price + price_before_promotion + on_promotion (Kavak's promotion, e.g. Argentina's 'Precio financiando 50%' price), price_mismatch, monthly_payment + monthly_payment_as_published (Mexico), mileage_km, transmission, color, city, status (available/reserved), reserved, badges[], listing_type, seller {name: Kavak, type}, photo_url.

**Example request body:**
```json
{
  "country": "mx",
  "make": "nissan",
  "model": "versa"
}
```

### POST https://api.reefapi.com/kavak/v1/detail — 2 credits
One Kavak car by `country` + `id` (both from a search row) or by its kavak.com URL with ?id=: cash price and Kavak-credit price side by side with the service fee and totals of each, the initial down payment of the credit simulator, VIN, mileage, fuel, engine, power, doors, seats, body, colour, equipment highlights and the full feature list, the branch with address and coordinates, delivery time, reservation status, imperfection photos, all photos and similar cars.

**Parameters:**
- `country` (enum, optional) — Country of the car (mx, ar, cl) — the `country` of the search row. Required with `id`. [one of: mx, ar, cl]
- `id` (string, optional) — Kavak stock id from a search row (`id`), e.g. 554720. Either `id` (+ `country`) or `url`.
- `url` (string, optional) — Alternative to `id`: a kavak.com vehicle URL carrying ?id=<stock id> (the `url` of a search row).

**Returns:** One car: id, country, url, title, make, model, trim, year, vin, price, currency, price_cash, price_cash_label, service_fee_cash, total_cash, price_financed, price_financed_label, service_fee_financed, total_financed, initial_down_payment, price_note, promotion_price, on_promotion, promotion_name, ld_price, ld_price_mismatch, ld_availability, mileage_km, fuel, body_type, engine_litres, power_hp, cylinders, gears, engine_type, doors, passengers, color, status, reserved, available_to_buy, badges[], delivery_time, city, parked_at, financing_only, seller{name, type, branch, branch_id, address, latitude, longitude}, equipment_highlights[]{name, category}, features[]{group, code, name, value}, imperfection_photo_count, imperfection_photos[]{url, side}, photo_count, photos[], similar_ids[].

**Example request body:**
```json
{
  "url": "https://www.kavak.com/mx/usado/mg-mg5-15_excite_cvt-sedan-2024?id=554720"
}
```

### POST https://api.reefapi.com/kavak/v1/makes — 2 credits
For ONE country: the makes Kavak has in stock with each make's model slugs (the values `search` takes as `make` and `model`), the regions with their branches, the model years, the source's own value lists, and the engine's fuel, gearbox, body, colour, drive, status and sort vocabularies valid for that country.

**Parameters:**
- `country` (enum, optional) — ONE Kavak country: mx (Mexico, MXN), ar (Argentina, ARS), cl (Chile, CLP). One call per country. Measured 2026-10-14 stock: mx 8,437 · ar 1,375 · cl 1,215 cars. [one of: mx, ar, cl]

**Returns:** `{country, currency, total_cars, makes[]{slug, name, models[]{slug, name}}, regions[]{slug, name, branches[]{slug, name}}, years[], source_values{}, fuels[], transmissions[], body_types[], colors[], drives[], statuses[], sorts[]}`.

**Example request body:**
```json
{
  "country": "cl"
}
```

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