# otoplus — Turkey used cars with expertise report, plate, VIN and price

> Search the used cars otoplus sells from its own stock in Turkey (İstanbul, Ankara, İzmir) by make, model, free text, city, fuel, gearbox, body type, campaign, price, model year and mileage, in otoplus's five sort orders. Returns the source's own total, 12 cars per page with asking price, special price and credit offer, mileage, VIN, sales centre and photos, plus the make facets with live counts. All parameters are optional: no parameter = the whole stock (140 cars on 2026-10-07).
> ReefAPI engine `otoplus` · 3 endpoints · clean JSON, no scraping or browsers to manage.

## How to call
- **Endpoint:** `POST https://api.reefapi.com/otoplus/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/otoplus/v1/search — 3 credits
Search the used cars otoplus sells from its own stock in Turkey (İstanbul, Ankara, İzmir) by make, model, free text, city, fuel, gearbox, body type, campaign, price, model year and mileage, in otoplus's five sort orders. Returns the source's own total, 12 cars per page with asking price, special price and credit offer, mileage, VIN, sales centre and photos, plus the make facets with live counts. All parameters are optional: no parameter = the whole stock (140 cars on 2026-10-07).

**Parameters:**
- `make` (string, optional) — Make slug as otoplus writes it (lower case): peugeot, renault, opel, hyundai, fiat, volkswagen, toyota, skoda… Action `makes` lists the makes in stock with live counts. Measured: peugeot = 23 of 140 cars. A make with nothing in stock returns an empty result with a warning.
- `model` (string, optional) — Model slug under `make`, as in the second segment of a vehicle URL: 3008, 2008, clio, egea… Needs `make`. Measured: peugeot/3008 = 9 cars.
- `query` (string, optional) — Free text matched by otoplus's own search box (make, model or trim words). Measured: `clio` = 6 cars.
- `city` (enum, optional) — City of the otoplus sales centre holding the car (comma-separate several). Measured: istanbul 57, ankara 45, izmir 38 of 140. [one of: istanbul, ankara, izmir]
- `fuel` (enum, optional) — Fuel type (comma-separate several). Measured: diesel 34 of 140. [one of: petrol, diesel, electric, hybrid]
- `transmission` (enum, optional) — Gearbox. Measured: manual 14 of 140. [one of: manual, automatic]
- `body_type` (enum, optional) — Body type (comma-separate several). Measured: suv 65 of 140. [one of: sedan, hatchback, suv, crossover, station_wagon, kombi]
- `campaign` (enum, optional) — Only cars in one of otoplus's campaigns: `credit` (Kredi Fırsatı, 103 of 140 measured) or `trade_in` (Özel Takas Fırsatı, 0 of 140 on 2026-10-07). [one of: credit, trade_in]
- `price_min` (integer, optional) — Lowest asking price, TRY.
- `price_max` (integer, optional) — Highest asking price, TRY.
- `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 "recommended") — Order of the results. The default (`recommended`) measured as newest listing first; otoplus has no model-year or mileage sort. [one of: recommended, oldest_listing, price_asc, price_desc]
- `page` (integer, optional, default 1) — Page number; 12 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 answers 404, it never repeats a page).

**Returns:** `{rows[], summary{total_results, page, rows_per_page, last_page, has_more, past_last_page, reserved_on_page, filters_applied, make_facets[]{slug, name, count}}}`. Each row: id (the value `detail` takes as `id`), url, title, make, model, trim, year, price_try, ld_price_try + price_mismatch (the page's own schema.org price as a second witness), special_price_try (the site's 'Size Özel' price, when shown), credit_offer {amount_try, months, monthly_interest_pct, text}, mileage_km, fuel, transmission, body_type, color, city, status (available/reserved), reserved, vin (valid 17-character VINs only, else null) + vin_as_published (the source's raw value), seller {name: otoplus, location, address}, photo_count, photo_url, photos[].

**Example request body:**
```json
{
  "make": "peugeot",
  "sort": "price_asc"
}
```

### POST https://api.reefapi.com/otoplus/v1/detail — 2 credits
One otoplus car by its `id` (from a search row) or URL: asking price with its schema.org second witness, special price, credit offer and loan limits, consultancy fee, plate number, VIN, TSB code, warranty and its end date, inspection (muayene) validity, motor-vehicle-tax instalments, spare key / LPG flags, the full expertise report (13 body panels: original, painted or replaced, plus mechanical checks), equipment list, all photos, the sales centre with address and phone, and similar cars.

**Parameters:**
- `id` (string, optional) — otoplus vehicle id from a search row (`id`), e.g. 575530. Either `id` or `url` is required.
- `url` (string, optional) — Alternative to `id`: an otoplus vehicle URL (it ends in -<id>).

**Returns:** One car: id, url, title, make, model, trim, year, price_try, ld_price_try, price_mismatch, ld_availability, special_price_try, refurbished_discount_try, consultancy_fee_try, credit_offer, credit{max_amount_try, installment_options_months[]}, mileage_km, fuel, transmission, body_type, color, plate_number, vin, vin_as_published, tsb_code, has_warranty, warranty_end_date, has_spare_keys, has_lpg_kit, refurbished, inspection_valid_until, motor_vehicle_tax_try{current_installment, next_installment}, specs{segment, displacement, …}, equipment[]{group, features[]}, expertise{body_panels[]{part_code, part, condition[], condition_tr[], original, note}, summary{panels_checked, original, painted, replaced, other_damage}, mechanical_checks[], extras_checks[]}, expertise_notes, status, reserved, reserved_until, city, seller{name, type, location, address, phone}, photo_count, photos[], damage_photos[], photos_360_count, similar_ids[].

**Example request body:**
```json
{
  "url": "https://www.otoplus.com/peugeot/3008/3008-allure-1.5-bluehdi-130-eat8/sahibinden-2019-otomatik-dizel-81614km-ekspertizli-istanbul-1625000tl-575144"
}
```

### POST https://api.reefapi.com/otoplus/v1/makes — 3 credits
The makes otoplus has in stock right now with live car counts (the slugs `search` takes as `make`), plus the cities, body types, fuels, gearboxes and campaigns the site filters by.

**Parameters:** none

**Returns:** `{makes[]{slug, name, count}, total_cars, cities[], body_types[], fuels[], transmissions[], campaigns[]}`.

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