Базовый запрос

GET /api/v2/cars?market=encar&brand=BMW&limit=5

Параметры

ПараметрТипОписание
marketstringКод рынка: che168, guazi, encar, goo_net, dongchedi, myauto_ge, mashina_kg, dubicars, autoscout24, moto58, huoche86, kachejia
brandstringМарка (BMW, Audi, Toyota...)
model_groupstringСерия/семейство (3 Series, Camry, A6...)
modelstringМодель
year_from / year_tointГод выпуска
price_min / price_maxfloatЦена
mileage_maxintПробег до (км)
fuel_typestringТопливо: Gasoline, Diesel, Electric, Hybrid… Точные значения по рынку — /api/v2/cars/filters?market=<market>&field=fuel_type; сравнение без учёта регистра
transmissionstringКПП: Automatic, Manual… Значения зависят от рынка — /api/v2/cars/filters?market=<market>&field=transmission
fieldsstringСписок полей через запятую
sortstringprice_asc, price_desc, year_asc, year_desc, mileage_asc, mileage_desc
limitintЗаписей на странице (1–100)
pageintНомер страницы
sinceISO8601Дельта-обновления с момента последнего визита. Отдаёт новые и изменившиеся; снятые с продажи — только в экспорте, см. ниже

Примеры

# Все BMW на корейском рынке
curl "BASE_URL/api/v2/cars?market=encar&brand=BMW&limit=10"

# Audi A6 2019-2022, дизель
curl "BASE_URL/api/v2/cars?market=encar&brand=Audi&model=A6&year_from=2019&year_to=2022&fuel_type=diesel"

# Электромобили из Китая
curl "BASE_URL/api/v2/cars?market=guazi&fuel_type=Electric&limit=20"

# Только нужные поля
curl "BASE_URL/api/v2/cars?market=encar&fields=id,brand,model,year,price,mileage&limit=5"

# Дельта с последнего визита
curl "BASE_URL/api/v2/cars?market=encar&since=2026-06-24T12:00:00Z"

Снятые с продажи

Объявления, снятые с продажи, в поиске (GET /api/v2/cars) не отдаются, в том числе с параметром include_removed. Получить их можно только в экспорте.

ЧтоКак
ЭндпоинтPOST /api/v2/cars/export/count с since и include_removed=true → POST /api/v2/cars/export с quote_id
ТарифBusiness или Premium (либо безлимит на рынок). На Base и Standard параметр игнорируется
Результатотдельный файл export_removed.csv в архиве — только ID снятых объявлений, без остальных полей

Синхронизация каталога

API отдаёт активные объявления на момент запроса: это снимок данных площадок, а не «живой» поток. Между реальным состоянием рынка и ответом API есть временной лаг (до нескольких часов, по рынкам по-разному). Источник истины по актуальному составу рынка — полная выгрузка; список снятых export_removed.csv — вспомогательный сигнал, его удобно использовать между полными получениями данных.

# Полная выгрузка
POST /api/v2/cars/export/count
{"market":"che168","export_format":"json","archive_format":"zip","chunk_size":25000}

POST /api/v2/cars/export
{"quote_id":"<quote_id>"}

# Инкрементальная выгрузка со снятыми
POST /api/v2/cars/export/count
{"market":"che168","since":"2026-10-02T12:51:11Z","include_removed":true,
 "export_format":"json","archive_format":"zip","chunk_size":25000}

POST /api/v2/cars/export
{"quote_id":"<quote_id>"}

/export/count фиксирует параметры выгрузки и возвращает quote_id; в самом POST /api/v2/cars/export передаётся только quote_id — все параметры (включая since и include_removed) берутся из квоты. Далее — опрос GET /api/v2/export/{task_id}/status до completed и скачивание GET /api/v2/export/{task_id}/download?page=N для всех частей.

Как отмечать снятые объявления

Основание отметить объявление снятым у себя — отсутствие объявления в актуальных данных сервиса:

API не различает подсостояния («продан» / «снят продавцом» / «удалён площадкой») и не отдаёт дату и причину снятия — таких данных не предоставляют и сами сайты рынков. Для массовой актуализации опирайтесь на отсутствие в полной выгрузке; единичный 404 — быстрый сигнал, при необходимости подтверждайте повторной проверкой.

Рекомендуемый порядок актуализации

  1. Заведите у себя таблицу (или отдельное поле) для активных ID, которых нет в актуальных данных сервиса.
  2. Полная выгрузка считается проверенной, когда задача completed, получены все части и число записей совпадает с processed_records.
  3. ID, отсутствующий в проверенной полной выгрузке, помечайте снятым и скрывайте от публичного показа.
  4. Если ID снова появился в более свежей полной выгрузке — снимайте пометку (возврат в продажу).
  5. Между полными выгрузками можно использовать since и export_removed.csv для более быстрой реакции, но для снятия опирайтесь на полную выгрузку — она точнее.

Параметр since — строгая нижняя граница (строго «позже»), отметки времени нормализованы в UTC. Для смыкания интервалов берите since равным времени завершения предыдущего успешного прогона.

Задачи экспорта

Задачи экспорта и файлы хранятся 24 часа. 404 на методах статуса и скачивания означает, что задача уже удалена, — создайте её заново. Повторное скачивание существующей задачи допустимо. В статусе задачи есть поле removed_tracking: true — список снятых сформирован (пустой список означает, что за период снятий нет); false — учёт снятых недоступен.

Другие эндпоинты

МетодЭндпоинтОписание
GET/api/v2/cars/filtersДоступные значения для фильтров
GET/api/v2/cars/rangeДиапазоны цен, года, пробега
GET/api/v2/cars/aggregationsСтатистика по выбранным фильтрам
GET/api/v2/cars/statsОбщая статистика рынка
GET/api/v2/cars/{car_id}/similar?market=<market>Похожие объявления
GET/api/v2/currency/ratesКурсы валют
GET/api/v2/marketsСписок доступных рынков