Ръководство
Синхронизиране на целия инвентар
/cars извлича поточно всички активни автомобили от вашите източници, с пълни доклади, чрез курсор от страна на сървъра. Използвайте го за поддържане на локално копие; използвайте /search само за заявки, насочени към потребителите.
GET /carslimit до 2000, без scroll_id
запис на data[]upsert по id, пропуснете, ако hash не е променен
GET next_urlбез промени, преди курсорът да изтече
scroll_id nullобхождането е завършено
архивиранеавтомобили, които не са видени при това обхождане
- Започнете обхожданеЗаявете
/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 около месец.
Цикъл за пълен експорт
url="https://api.lotarius.com/cars?limit=2000&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"
}