REST API

Zadania

Odpytuj zadania w tle i zbierz każdą stronę wyników.

GET https://www.ninjabuy.com/api/v1/jobs/{id} wymaga tokenu Bearer tego samego konta. Brakujące, nieznane i należące do innych kont zadania zwracają 404.

Cykl życia

job.statusZnaczenie
queuedOczekuje na rozpoczęcie.
runningTrwa przetwarzanie; mogą pojawić się kolejne wyniki.
donePrzetwarzanie zakończone. Sprawdź status każdego wyniku.
failedZadanie nie powiodło się. Odczytaj job.error, jeśli występuje.

job zawiera id, kind, status i startedAt, a opcjonalnie progress (done, total), finishedAt, result i error. Znaczniki czasu to milisekundy od epoki Uniksa. Dla queued lub running pola poll_after_seconds i nagłówek Retry-After określają czas oczekiwania; początkowa sugestia to 5 sekund.

Partie linków mają kind: "link_mints". Końcowy result podaje total, converted, failed oraz opcjonalnie campaign i label. Tutaj failed liczy dane, dla których zwrócono wynik bez przekształcenia; nie oznacza statusu failed całego zadania. Konwersje arkuszy mają kind: "sheet_conversion"; końcowy job.result zawiera liczniki i podpisany URL pobierania XLSX. Schemat zadania obejmuje też sheet_read, picture_copy i resolution_run.

Stronicowanie kursorem

Odpowiedź zawiera job, results, cursor, has_more i request_id. Każda strona zawiera do 50 wyników w kolejności wejściowej.

  1. Pomiń cursor dla pierwszej strony (przesunięcie 0).
  2. Przetwórz results i zachowaj zwrócony cursor, jeśli nie jest null.
  3. Gdy has_more jest true, poproś o następną stronę z ?cursor=RETURNED_CURSOR.
  4. Gdy has_more jest false, a zadanie jest queued lub running, odczekaj poll_after_seconds i odpytaj z zachowanym kursorem. Więcej wyników może pojawić się później.
  5. Zakończ dopiero, gdy zadanie ma status done lub failed i odczytano wszystkie strony wyników (cursor jest null).

Kursor musi być pojedynczym parametrem zapytania złożonym z 1 do 6 cyfr (od 0 do 999999). Nieprawidłowe lub powtórzone parametry kursora zwracają 400. Nie traktuj samego has_more: false jako zakończenia. Zobacz przykłady curl.