Синхронизация всего каталога
/cars потоково выгружает все активные автомобили из ваших источников с полными отчётами через серверный курсор. Используйте его для локальной копии; /search — только для пользовательских запросов.
- Начните проходЗапросите
/carsбезscroll_id. Задавайте фильтры, напримерdomains[]илиis_leasing, только здесь. - Следуйте
next_urlв точностиСохраняйте тот же ключ и фильтры на протяжении всего прохода. Изменениеdomains[]илиis_leasingпосреди прокрутки возвращает422. - Запрашивайте до истечения курсора
scroll_time— от 1 до 15 минут (по умолчанию 10), считая от последнего запроса. При403/404с "scroll id was expired" начните новый проход. - Завершите проход, затем архивируйтеПроход заканчивается, когда
scroll_idравен null, аdataпуст. Только после этого помечайте не встреченные автомобили как проданные.
Выполняйте полный проход 2–3 раза в день. Архивированные автомобили сразу исчезают из /search и /cars, но остаются доступны через /cars/{car_id} и /listing/{domain_id}/{listing_id} с archived: true около месяца.
Фильтр по типу транспорта и конфигурации
vehicle_type=automobile / 1 — по умолчанию; motorcycle / 2 выбирает мотоциклы в /search, /search/count и /cars. В справочниках используйте тот же тип.
В /cars тип и вся иерархия фиксируются на время прокрутки. Следуйте next_url без изменений или передавайте только scroll_id. Можно менять порядок эквивалентных фильтров; изменение условий или явные фильтры при потере состояния дают 422. Начните новую прокрутку. Старые курсоры без новых параметров сохраняют прежний запрос.
url="https://api.auctionsapi.com/cars?limit=500&api_key=$CARS_API_KEY"
while [ -n "$url" ]; do
page=$(curl -sfg "$url" -H "Accept: application/json") || { echo "cursor expired, restart"; exit 1; }
echo "$page" | jq -c '.data[]' >> cars.ndjson
url=$(echo "$page" | jq -r '.next_url // empty')
done{
"scroll_id": null,
"data": [],
"total": 3217391,
"message": "No more data"
}Получите доступ к API
Подключите ключ, чтобы выполнять любой запрос с этих страниц на своих данных. Ключа ещё нет? Попросите у нас демо-ключ: тот же JSON, что и в платных тарифах.