Autochek API & Scraper
Autochek is the largest online used-car marketplace in West and East Africa.
🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.
This API returns its live listings for the five markets Autochek itself operates — Nigeria, Kenya, Ghana, Uganda and Côte d'Ivoire — as clean JSON. A search gives you make, model, year, mileage, gearbox, fuel, body type, import condition, city, state, dealer id, listing date and the asking price as an integer, with the market's currency in a separate field. Prices are never converted between markets. The detail action adds the make and model ids, the trim, the drive, the partially masked VIN, both colours, the dealer's name and how long they have been on the platform, the full feature list, every published photo and the market's financing terms. Measured on 2026-10-06: 9 253 cars in Nigeria, 1 435 in Ghana, 1 397 in Uganda, 1 200 in Kenya and 58 in Côte d'Ivoire.
Markets, inventory and currency
Every market below was called live on 2026-10-06 and returned real rows. The currency was confirmed twice: against Autochek's own country configuration and against the priceCurrency printed on ten live car pages (10/10 agree).
| Market | Listings | Currency | Example city |
|---|---|---|---|
| Nigeria (ng) | 9,253 | NGN | Lagos |
| Ghana (gh) | 1,435 | GHS | Accra |
| Uganda (ug) | 1,397 | UGX | Kampala |
| Kenya (ke) | 1,200 | KES | Nairobi |
| Côte d'Ivoire (ci) | 58 | XOF | Abidjan |
Autochek's country menu also links Senegal, Morocco and Egypt. Those are partner marketplaces run by other companies, with no Autochek inventory and no Autochek currency, so this API rejects them with a plain explanation instead of returning an empty result that looks like 'no cars today'.
Real request and response JSON
Captured from the indexed primary action, search, on .
{
"method": "POST",
"url": "https://api.reefapi.com/autochek/v1/search",
"headers": {
"x-api-key": "$REEF_KEY",
"content-type": "application/json"
},
"body": {
"country": "ng",
"limit": 10
}
}{
"ok": true,
"meta": {
"api": "autochek",
"endpoint": "search",
"mode": "live",
"latency_ms": 533,
"record_count": 10,
"bytes": 24150,
"cache_hit": false,
"charged_credits": 1,
"version": "0.1.0",
"request_id": "8a22fe7f1db847e6",
"queue_ms": 1,
"fetched_at": "2026-10-06T14:47:16.806Z"
},
"data": {
"country": "NG",
"currency": "NGN",
"page": 1,
"limit": 10,
"results": [
{
"listing_id": "PHxjAFVLn",
"country": "NG",
"url": "https://autochek.africa/ng/cars-for-sale/lexus/rx-350/PHxjAFVLn",
"title": "Lexus RX 350",
"make": "Lexus",
"model": "RX 350",
"year": 2010,
"price": 17000000,
"price_before": 17000000,
"currency": "NGN",
"monthly_installment": 810589,
"financing_available": true,
"loan_value": 14644235,
"mileage": 90000,
"mileage_unit": "miles",
"transmission": "automatic",
"fuel": "petrol",
"engine_displacement_cc": null,
"engine_type": "4-cylinder",
"body_type_id": "3",
"condition": "foreign",
"inspected": false,
"accidented": false,
"warranty": false,
"auction": false,
"featured": false,
"sold": false,
"grade_score": 3,
"listing_score": 4.1,
"city": "Berger",
"state": "Lagos",
"seller_id": "rr37LuDfq",
"listed_at": "2026-10-06T14:32:39.889Z",
"summary": "Clean and sharp car only",
"image": "https://media.autochek.africa/file/w_660,q_100/lWgS0Tfs.webp",
"images": [
"https://media.autochek.africa/file/w_660,q_100/huXgR0QB.webp",
"https://media.autochek.africa/file/w_660,q_100/jvM1unl7.webp",
"https://media.autochek.africa/file/w_660,q_100/lWgS0Tfs.webp"
]
},
{
"listing_id": "nOh1_BAGA",
"country": "NG",
"url": "https://autochek.africa/ng/cars-for-sale/hyundai/santa-fe/nOh1_BAGA",
"title": "Hyundai Santa Fe Sport",
"make": "Hyundai",
"model": "Santa Fe Sport",
"year": 2014,
"price": 14000000,
"price_before": 17500000,
"currency": "NGN",
"monthly_installment": 707542,
"financing_available": true,
"loan_value": 11703860,
"mileage": 4000,
"mileage_unit": "km",
"transmission": "automatic",
"fuel": "petrol",
"engine_displacement_cc": 2400,
"engine_type": "6-cylinder",
"body_type_id": "3",
"condition": "foreign",
"inspected": false,
"accidented": false,
"warranty": false,
"auction": false,
"featured": false,
"sold": false,
"grade_score": 4.4,
"listing_score": 3,
"city": null,
"state": null,
"seller_id": "tWDOJbo9T",
"listed_at": "2026-10-06T13:26:29.659Z",
"summary": null,
"image": "https://media.autochek.africa/file/w_548,q_100/SbLjT4fb.webp",
"images": [
"https://media.autochek.africa/file/w_548,q_100/SbLjT4fb.webp",
"https://media.autochek.africa/file/w_548,q_100/gWnnoz88.webp",
"https://media.autochek.africa/file/w_548,q_100/A1WAW1Tt.webp"
]
},
{
"listing_id": "GLkgi0m_c",
"country": "NG",
"url": "https://autochek.africa/ng/cars-for-sale/tesla/cybertruck/GLkgi0m_c",
"title": "Tesla Cybertruck",
"make": "Tesla",
"model": "Cybertruck",
"year": 2024,
"price": 160000000,
"price_before": 160000000,
"currency": "NGN",
"monthly_installment": 12768602,
"financing_available": true,
"loan_value": 217235200,
"mileage": 7200,
"mileage_unit": "km",
"transmission": "automatic",
"fuel": "electric",
"engine_displacement_cc": null,
"engine_type": null,
"body_type_id": "1",
"condition": "foreign",
"inspected": false,
"accidented": false,
"warranty": false,
"auction": false,
"featured": false,
"sold": false,
"grade_score": 3,
"listing_score": 2.7,
"city": null,
"state": null,
"seller_id": "yLMjgHZip",
"listed_at": "2026-10-06T13:03:12.026Z",
"summary": "Car is in a good condition",
"image": "https://media.autochek.africa/file/w_494,q_100/ncfNTVAy.webp",
"images": [
"https://media.autochek.africa/file/w_494,q_100/ncfNTVAy.webp",
"https://media.autochek.africa/file/w_548,q_100/cr0uMo2w.webp",
"https://media.autochek.africa/file/w_520,q_100/lPVfk6Nb.webp"
]
}
],
"count": 10,
"source_total": 9247,
"last_page": 925,
"has_more": true,
"filters_applied": {}
}
}What the Autochek API does
| Action | Description | Concrete use case | Key params |
|---|---|---|---|
| search | Search live Autochek used-car listings in one market. Price is an integer in that market's own currency and the currency is returned as a separate field — figures are never converted between markets. Ten filters were each measured against an unfiltered control in two different markets and all ten bite. | Price-intelligence teams call search to search live Autochek used-car listings in one market. | country, query, make_id, body_type_id, transmission, ... |
| listing_detail | Full public detail for one listing by the `listing_id` that search returns: the search fields plus make/model ids, trim, drive, partially masked VIN, both colours, the dealer name and age, the feature list, every published photo and the market's financing terms. | Classifieds aggregators call listing_detail to get full public detail for one listing by the `listing_id` that search returns. | listing_id |
| makes | The marketplace's published make reference list with the numeric ids the `make_id` search filter needs. The list is group-wide, not per market — the source accepts a country parameter here and ignores it (measured: NG and KE return the identical 257 rows), so no country filter is offered. | Resale and arbitrage tools call makes to get the marketplace's published make reference list with the numeric ids the `make_id` search fil…. | page, limit |
| models | Model reference list: every model the marketplace knows, with its id and its make. Filterable by `make_id`. Note the source has NO working model filter on search — a model id that provably exists in the inventory (Corolla = 1891, carried by 5 of 6 sampled Nigerian Toyotas) returns 0 results, so no `model_id` search filter is offered. Narrow by model with `query` instead, which is measured to work. | Lead-generation teams call models to get model reference list. | make_id, page, limit |
| body_types | The 21 published body types with the numeric ids the `body_type_id` search filter needs (SUV = 3, Sedan = 8, Hatchback = 5). | Price-intelligence teams call body_types to get the 21 published body types with the numeric ids the `body_type_id` search filter needs (SUV…. | page, limit |
| locations | The state or city reference list, giving the exact spellings the `state` and `city` search filters expect. Cities carry their state. Like the make list this reference is group-wide and NOT country-scoped — the source ignores a country parameter here (measured), so the list mixes all markets and no country filter is offered. | Classifieds aggregators call locations to get the state or city reference list, giving the exact spellings the `state` and `city` search fi…. | kind, state_id, page, limit |
Call search from your stack
curl -X POST https://api.reefapi.com/autochek/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"country":"ng","limit":10}'import requests
r = requests.post(
"https://api.reefapi.com/autochek/v1/search",
headers={"x-api-key": REEF_KEY},
json={
"country": "ng",
"limit": 10
},
)
print(r.json()["data"])const res = await fetch("https://api.reefapi.com/autochek/v1/search", {
method: "POST",
headers: {
"x-api-key": process.env.REEF_KEY,
"content-type": "application/json",
},
body: JSON.stringify({
"country": "ng",
"limit": 10
}),
});
const { ok, data, meta, error } = await res.json();Ask your MCP-connected assistant: call reefapi.autochek.search with {"country":"ng","limit":10}.Who uses this API and why
- Price a car against the live West and East African market, per country, without mixing currencies.
- Track how long a model keeps its value across Lagos, Nairobi, Accra, Kampala and Abidjan using the published year, mileage and asking price.
- Build an alert for a specific make and body type in one city — Toyota SUVs in Lekki — and get the listing link the moment it appears.
- Feed a dealer or fleet valuation model with mileage, gearbox, fuel, import condition and inspection grade on thousands of live cars.
- Measure import flow: the `condition` field separates imported, locally used and brand-new stock, and it bites in every market.
Questions developers ask before integrating
Which countries actually work?
Five: Nigeria, Kenya, Ghana, Uganda and Côte d'Ivoire. Each one was called live and returned rows — 9,253 / 1,200 / 1,435 / 1,397 / 58 listings on 2026-10-06. Senegal, Morocco and Egypt appear in Autochek's own country menu but are partner sites belonging to other companies; asking for them returns a clear error rather than an empty page.
What currency is the price in?
The market's own: NGN in Nigeria, KES in Kenya, GHS in Ghana, UGX in Uganda, XOF in Côte d'Ivoire. `price` is an integer and `currency` is a separate field. Nothing is ever converted, so a Nigerian price and a Kenyan price are never silently added together.
Does a search result give me a link I can open?
Yes. Every row carries a `url` to the live listing page. We verified 30 of them across all five markets and all 30 returned HTTP 200.
Can I filter by price or year?
No, and we would rather say so than ship a filter that does nothing. Autochek's inventory service has no price, year or mileage range filter — we probed 34 different spellings and every one returned the unfiltered total. Filter on what does work (make, body type, gearbox, fuel, condition, city, state, free text) and apply a price or year cut on the rows you get back; both fields are returned on every row.
Which filters are proven to work?
Ten, each measured against an unfiltered control in two different markets on the same run. In Nigeria, from 9,253 unfiltered: make 4,210 · body type 3,782 · import condition 6,364 · free text 'corolla' 667 · state Lagos 6,042 · city Lekki 887 · gearbox manual 84 · fuel diesel 15 · auction stock 3,414 · warranty-backed 36 · featured 6. They combine with AND.
How complete are the fields?
Over 50 rows per market: listing id, url, title, model, year, price, currency, monthly instalment, mileage, gearbox, fuel, engine type, body type, condition, grade score, dealer id, listing date and photos are 50/50 in all five markets. Make resolves on 49-50 of 50. Engine capacity is published in Nigeria (43/50) but barely in Kenya (6/50) and Ghana (8/50) and not at all in Uganda or Côte d'Ivoire (0/50). City and state are partial everywhere except Côte d'Ivoire (Nigeria 22 and 23 of 50).
Does an id from search resolve in detail?
Yes. Ten listings across all five markets were fetched twice, once from search and once from detail: price, mileage, year, make and model matched 10/10, and the currency on the car's own page matched the currency we publish 10/10.
How deep can I page?
As deep as the market goes. Pages are 1-100 rows and the end is honest: past the last page the source returns an empty window with `has_more: false` rather than silently repeating the last page. Côte d'Ivoire, 58 cars at 10 per page, ends cleanly at page 6.
What is the Autochek API?
Autochek API is a ReefAPI endpoint group for used-car listings across nigeria, kenya, ghana, uganda and côte d'ivoire It returns live JSON through POST requests under /autochek/v1.
Is the Autochek API free to try?
Yes. ReefAPI starts with 1,000 free credits, no card required. Autochek calls use the same shared credit balance as every other ReefAPI engine.
Do I need an Autochek login or account?
No login to Autochek is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.
How fresh is the Autochek data?
The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.
How many credits does the Autochek API use?
Autochek actions currently cost 1-2 credits per successful call. Failed or blocked calls are free. All APIs draw from one credit pool.
Can I call Autochek from an AI assistant or MCP client?
Yes. Connect ReefAPI once through MCP and your assistant can call autochek actions with the same key, credit pool and JSON envelope used by normal REST requests.