Przewodnik
Synchronizacja całej oferty
/cars strumieniuje wszystkie aktywne samochody z Twoich źródeł, z pełnymi raportami, przez kursor po stronie serwera. Używaj go do utrzymywania lokalnej kopii; /search używaj tylko do zapytań od użytkowników.
GET /carslimit do 2000, bez scroll_id
zapisz data[]upsert po id, pomiń, jeśli hash się nie zmienił
GET next_urlbez zmian, zanim kursor wygaśnie
scroll_id nullprzebieg zakończony
archiwizujsamochody niewidziane w tym przebiegu
- Rozpocznij przebiegWyślij żądanie
/carsbezscroll_id. Filtry, takie jakdomains[]czyis_leasing, ustawiaj tylko tutaj. - Podążaj dokładnie za
next_urlZachowaj ten sam klucz i filtry przez cały przebieg. Zmianadomains[]lubis_leasingw trakcie przewijania zwraca422. - Pobieraj, zanim kursor wygaśnie
scroll_timewynosi 1–15 minut (domyślnie 10), licząc od ostatniego żądania. Przy403/404z komunikatem "scroll id was expired" rozpocznij nowy przebieg. - Zakończ, potem archiwizujPrzebieg kończy się, gdy
scroll_idma wartość null, adatajest puste. Dopiero wtedy oznacz niewidziane samochody jako sprzedane.
Wykonuj pełny przebieg 2–3 razy dziennie. Zarchiwizowane samochody od razu znikają z /search i /cars, ale przez około miesiąc pozostają dostępne przez /cars/{car_id} i /listing/{domain_id}/{listing_id} z archived: true.
Pętla pełnego eksportu
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')
doneOstatnia stronaNa żywo
{
"scroll_id": null,
"data": [],
"total": 3217391,
"message": "No more data"
}