Documentación de Encar API
Tres endpoints, una cabecera, JSON de salida. Todo lo de abajo es la referencia completa: no hay una segunda documentación de pago.
URL base
https://api.encar-api.com/apiAutenticación
Envía tu clave en la cabecera x-api-key en cada petición. No hay paso OAuth ni token que refrescar. Una clave ausente o desconocida responde 401.
curl -H "x-api-key: avg_free_..." \
"https://api.encar-api.com/api/cars?manufacturer=BMW&model=X5\
&fuel=diesel&priceTo=40000&sort=priceAsc&count=24"Los tres endpoints
| endpoint | what it does |
|---|---|
| GET /cars | Buscar anuncios con filtros. Devuelve total, page, count y results[]. |
| GET /car?id= | Un vehículo completo, con disponibilidad comprobada en vivo en el momento de la petición. |
| GET /count | Cuántos anuncios encajan con un conjunto de filtros, sin descargarlos. |
Referencia
Cada sección se abre aquí, y cada título es además una página propia que puedes enlazar y guardar.
Parámetros de búsqueda — GET /cars
Seguir leyendo
Combínalos como quieras en una sola llamada. La respuesta lleva total, page, count y results[], así que puedes paginar sobre total sin una segunda petición.
| parameter | what it does |
|---|---|
| manufacturer | Brand, as Encar writes it: BMW, Hyundai, Kia, Genesis, Mercedes-Benz, Audi. |
| model | Model name, e.g. X5 (G05). Partial names match, and a generation name narrows further: model=The New Carnival returns that generation alone, not the whole nameplate. |
| q | Free-text search across brand, model and badge. Aliases: keyword, search. |
| fuel | diesel · gasoline · hybrid · electric · lpg. |
| transmission | automatic · manual. |
| color | Exterior colour. |
| seats | Seat count: 5, 7, 9. Several at once as seats=7,9. The two ends are ranges, not counts — 2 means two seats or fewer and 10 means ten or more, which is how the source files them. A car's own figure comes back as details.seats from /car. |
| yearFrom / yearTo | Model year bounds, as plain years: 2018, 2024. |
| mileageFrom / mileageTo | Odometer bounds in kilometres. |
| priceFrom / priceTo | Price bounds in EUR — converted for you, not won. |
| sort | priceAsc or priceDesc. Left out, results come back newest first. |
| page | Page index, zero-based. Default 0. |
| count | Listings per page. Default 24, maximum 500. |
Cómo es un anuncio
Seguir leyendo
Los datos vienen de una fuente coreana, así que cuatro de estos campos se leen mal por defecto. Cada fallo es silencioso: tu página se renderiza, simplemente es incorrecta.
| field | meaning |
|---|---|
| Id | Encar listing id. Pass it to /car to get the full vehicle. |
| Manufacturer / Model / Badge | Korean source values. Badge is partly Korean — prefer the de / en block below. |
| de / en | The same car translated: manufacturer, modelGroup, model, badge, fuelType. Render these. |
| Price | In units of 10,000 KRW. EUR ≈ Price × 6.7, so 4339 is about €29,070 — not €4,339. |
| Year | YYYYMM, not a year: 201902 is February 2019. FormYear holds the plain "2019". |
| Mileage | Kilometres, as an integer. |
| FuelType | Korean. The translated value is in de.fuelType / en.fuelType. |
| Photo / Photos[] | Relative paths. Prefix them with the image host; with Photo, append 001.jpg. |
| priceDrop | Present when the seller cut the price: previousPrice, droppedAt. |
| powerPs / powerKw | Engine output, where the trim is known. |
| OfficeCityState | Where the car stands, as a Korean region name. |
Límites y errores
Seguir leyendo
Cada respuesta lleva X-RateLimit-Limit, X-RateLimit-Remaining y X-RateLimit-Reset, así que ves venir un límite en vez de descubrirlo.
| status | meaning |
|---|---|
| 200 | A normal answer. Check X-RateLimit-Remaining while you are here. |
| 400 | A parameter could not be parsed — a non-numeric yearFrom, for instance. |
| 401 | Missing or unknown key. Send it as the x-api-key header. |
| 404 SOLD_OR_REMOVED | From /car: the vehicle is gone from Encar. Drop it on your side. |
| 429 | Daily allowance spent. X-RateLimit-Remaining tells you before it happens. |
| 503 | The Korean source did not answer in time. Retry once, then fall back. |
Consigue tu clave API
Gratis · 100 peticiones al día
Sigue leyendo
Combínalos como quieras en una sola llamada. La respuesta lleva total, page, count y results[], así que puedes paginar sobre total sin una segunda petición.
Los datos vienen de una fuente coreana, así que cuatro de estos campos se leen mal por defecto. Cada fallo es silencioso: tu página se renderiza, simplemente es incorrecta.
Cada respuesta lleva X-RateLimit-Limit, X-RateLimit-Remaining y X-RateLimit-Reset, así que ves venir un límite en vez de descubrirlo.