# arabam.com — Turkish used cars, motorcycles, vans and commercial vehicles

> Search arabam.com's live used-vehicle listings in Turkey by category (cars, SUVs, motorcycles, vans, commercial, rental, damaged, classic, electric…), make/model, keyword, price, year, mileage, fuel, gearbox, body type, colour, seller type, condition, paint/replaced/tramer declaration, heavy-damage record, drivetrain, city and listing age, with nine sort orders. Returns the site's own total and facet counts and up to 50 rows per page.
> ReefAPI engine `arabam` · 4 endpoints · clean JSON, no scraping or browsers to manage.

## How to call
- **Endpoint:** `POST https://api.reefapi.com/arabam/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/arabam/v1/search — 3 credits
Search arabam.com's live used-vehicle listings in Turkey by category (cars, SUVs, motorcycles, vans, commercial, rental, damaged, classic, electric…), make/model, keyword, price, year, mileage, fuel, gearbox, body type, colour, seller type, condition, paint/replaced/tramer declaration, heavy-damage record, drivetrain, city and listing age, with nine sort orders. Returns the site's own total and facet counts and up to 50 rows per page.

**Parameters:**
- `category` (enum, optional, default "otomobil") — Vehicle category on arabam.com (its own URL slug). Default otomobil (cars). [one of: otomobil, arazi-suv-pick-up, motosiklet, minivan-panelvan, ticari-arac, kiralik-araclar, hasarli-araclar, traktor, tarim-is-makineleri, klasik-araclar, elektrikli-araclar, atv-utv, karavan, engelli-araci]
- `make_model` (string, optional) — Make, make-model or make-model-trim slug inside the category, exactly as arabam.com writes it in its URLs: 'ford', 'ford-focus', 'ford-focus-1-6-tdci'. Get them from the makes or suggest action.
- `query` (string, optional) — Free-text keyword search in listing titles/descriptions (the site's own 'Anahtar Kelime').
- `price_min` (integer, optional) — Lowest price, Turkish lira.
- `price_max` (integer, optional) — Highest price, Turkish lira.
- `year_min` (integer, optional) — Oldest model year.
- `year_max` (integer, optional) — Newest model year.
- `km_min` (integer, optional) — Lowest odometer reading, km.
- `km_max` (integer, optional) — Highest odometer reading, km.
- `fuel` (array, optional) — Fuel type. Several may be passed comma-separated (OR). [one of: petrol, diesel, electric, hybrid, lpg]
- `gear` (array, optional) — Gearbox. Several may be passed comma-separated. [one of: manual, automatic, semi_automatic]
- `body_type` (array, optional) — Body type (cars, SUVs, damaged and rental categories). Comma-separated for several. [one of: cabrio, coupe, hatchback-3, hatchback-5, mpv, pick-up, roadster, sedan, station-wagon, suv, crossover, hard-top, panelvan, jip]
- `color` (array, optional) — Exterior colour, arabam.com's own colour names as slugs (beyaz = white, siyah = black, gri-metalik = metallic grey…). Comma-separated for several. [one of: altin, bej, beyaz, bordo, fume, gri, gri-gumus, gri-metalik, gri-titanyum, kahverengi, kirmizi, lacivert, mavi, mavi-metalik, mor, pembe, sampanya, sari, siyah, turkuaz, turuncu, yesil, yesil-metalik, diger]
- `seller_type` (array, optional) — Who sells: dealer (Galeriden), owner (Sahibinden), authorized_dealer, rent_a_car. [one of: dealer, owner, authorized_dealer, rent_a_car]
- `condition` (array, optional) — Vehicle condition: used, new, imported_new, dealer_new. [one of: used, new, imported_new, dealer_new]
- `damage_status` (array, optional) — Paint / replaced-part / insurance-record (tramer) declaration, as the site filters it. [one of: not_stated, no_paint_no_replaced_no_tramer, no_paint_no_replaced, no_paint, no_replaced, no_tramer]
- `heavy_damage` (boolean, optional) — true = only vehicles with a heavy-damage record; false = only without one.
- `drive` (array, optional) — Drivetrain. [one of: front, rear, 4wd_permanent, awd_electronic, 4x2_rear, 4x2_front, 4x4]
- `moto_type` (array, optional) — Motorcycle type (category motosiklet / elektrikli-araclar). [one of: chopper-cruiser, commuter, cross-motocross, cub, dort-tekerlekli, e-pikap, enduro-off-road, kar-motosikleti, moped, naked-roadstar, scooter-maxi-scooter, sport-touring, super-sport, touring, trial, triportor, uc-tekerlekli]
- `tag` (enum, optional) — Special-listing tag: urgent, homepage_showcase, price_dropped, like_new. [one of: urgent, homepage_showcase, price_dropped, like_new]
- `swap` (boolean, optional) — true = seller accepts a trade-in (takas).
- `listed_within_days` (integer, optional) — Only listings published in the last 1, 2, 3, 7 or 30 days. [one of: 1, 2, 3, 7, 30]
- `city_id` (integer, optional) — arabam.com city id (Ankara = 6, İzmir = 35, İstanbul Avrupa = 86, İstanbul Anadolu = 85). Every search answer lists the city ids with live counts in summary.facets.city.
- `town_id` (integer, optional) — arabam.com district (ilçe) id.
- `sort` (enum, optional, default "default") — Sort order: default (the site's own ranking), price_asc/desc, year_desc/asc, km_asc/desc, newest, oldest. [one of: default, price_asc, price_desc, year_desc, year_asc, km_asc, km_desc, newest, oldest]
- `page` (integer, optional, default 1) — Result page. arabam.com serves at most 50 pages per query (2,500 rows at page_size 50): narrow the filters to reach further.
- `page_size` (integer, optional, default 20) — Rows per page, 1-50 (the site's own maximum is 50).

**Returns:** `{rows[], summary{total_results, reachable_results, page, page_size, last_page, has_more, page_clamped, filters_applied, filters_echoed_by_source, rows_with_price_mismatch, facets{city, fuel, gear, body_type, color, seller_type, damage_status, heavy_damage, drive, condition, moto_type, listed_within_days}}}`. Each row: listing_id, url, title, model_name, make, series, category, category_path, year, km, km_display, color, fuel, gear, engine_cc_range, engine_hp_range, drive, condition, warranty, price, price_display, currency, price_before_drop, price_ld_json, price_mismatch, city, town, listed_at, updated_at, seller_kind, seller_member_id, dealer_slug, dealer_url, is_price_dropped, is_urgent, is_like_new, is_first_owner, is_fair_price, photo, properties[]{name, value} (category-specific rows the search page prints, e.g. trailer length).

**Example request body:**
```json
{
  "category": "otomobil",
  "make_model": "ford-focus",
  "fuel": "diesel",
  "page_size": 20
}
```

### POST https://api.reefapi.com/arabam/v1/detail — 3 credits
The full listing by its arabam.com listing number (or URL): price and pre-drop price, every property row the page prints (category-specific: motorcycle cylinders, truck payload, rental monthly/weekly rent…), the per-part paint / locally-painted / replaced report with the seller's summary line, tramer statement, heavy-damage record, equipment list, technical summary, description, all photos, address and the seller: dealer firm, authorised person, licence number, membership tier and year, masked phone as the page shows it.

**Parameters:**
- `listing_id` (string, required) — arabam.com listing number (İlan No) — the `listing_id` of a search row.
- `url` (string, optional) — Alternative to listing_id: the listing URL, e.g. https://www.arabam.com/ilan/<slug>/<slug>/44084960.

**Returns:** One listing: listing_id, url, title, description, status, is_active, is_sold, make, series, model, model_name, category, category_path, category_id, year, km, fuel, gear, body_type, color, engine_cc_range, engine_hp_range, drive, condition, swap, seller_kind, heavy_damage_record, damage_summary, tramer{status, amount, amount_display, text, printed, amount_mismatch}, price, price_display, currency, price_before_drop, price_ld_json, price_mismatch, rent_monthly, rent_weekly, flags, listed_at, location{city, city_id, county, county_id, district, full_address}, properties[]{name, value}, technical_summary[], equipment[]{name, group_id}, expertise{declared, parts[]{part, code, status, status_label}, counts, summary_line, damage_summary_mismatch}, photos[], seller{name, member_id, kind, is_business, membership, membership_year, dealer{name, authorized_person, slug, url, logo, license_no}, phone_masked}.

**Example request body:**
```json
{
  "listing_id": "25902780"
}
```

### POST https://api.reefapi.com/arabam/v1/makes — 3 credits
The children of a category node with live listing counts and the slugs `search` takes: the makes of a category, the models of a make (make_model=ford), or the engines/trims of a model (make_model=ford-focus).

**Parameters:**
- `category` (enum, optional, default "otomobil") — Vehicle category on arabam.com (its own URL slug). Default otomobil (cars). [one of: otomobil, arazi-suv-pick-up, motosiklet, minivan-panelvan, ticari-arac, kiralik-araclar, hasarli-araclar, traktor, tarim-is-makineleri, klasik-araclar, elektrikli-araclar, atv-utv, karavan, engelli-araci]
- `make_model` (string, optional) — Make, make-model or make-model-trim slug inside the category, exactly as arabam.com writes it in its URLs: 'ford', 'ford-focus', 'ford-focus-1-6-tdci'. Get them from the makes or suggest action.

**Returns:** `{rows[]{name, make_model, category_id, count, is_make, url}, summary{category, node, total}}`.

**Example request body:**
```json
{
  "category": "otomobil"
}
```

### POST https://api.reefapi.com/arabam/v1/suggest — 1 credit
arabam.com's own autocomplete: turns free text ('passat', 'mt-07') into make/model categories with live counts and slugs for `search`, and matches dealer firms by name.

**Parameters:**
- `query` (string, required) — Text to complete: a make, model or dealer name (2+ characters).

**Returns:** `{rows[]}`: vehicle rows {type: vehicle, text, path, category, make_model, category_id, count, url} and dealer rows {type: dealer, text, city, member_id, dealer_slug, url}.

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

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