Paginacja
Endpointy zwracające listę (tablicę w polu data) stronicują wyniki. Rozmiar strony i numer strony sterujesz parametrami żądania limit i page, a metadane bieżącego wycinka znajdziesz w polu pagination odpowiedzi.
Koperta paginacji jest spójna w całym API i została potwierdzona na żywym produkcyjnym API (api.senuto.com) na kilkudziesięciu endpointach. Akcje zwracające pojedynczy obiekt (np. dashboardy, wykresy) nie zawierają pola pagination.
Parametry żądania
| Name | Type | Default |
|---|---|---|
limit | numberRozmiar strony — liczba wierszy w | 10 |
page | numberNumer strony (liczony od 1). Nieujemna liczba całkowita. | 1 |
limit i page są opcjonalne, ale walidowane — np. przy wartościach spoza dozwolonego zakresu endpoint zwróci 418. W raportach Bazy słów kluczowych oba pola bywają przyjmowane, lecz bez efektu (akcja zwraca pojedynczy obiekt) — sprawdzaj stronę konkretnego endpointu.
Pole pagination w odpowiedzi
| Name | Type | Default |
|---|---|---|
page_count | numberŁączna liczba stron dla bieżących kryteriów | |
current_page | numberNumer bieżącej strony | |
has_next_page | booleanCzy istnieje kolejna strona | |
has_prev_page | booleanCzy istnieje poprzednia strona | |
count | numberŁączna liczba wierszy spełniających kryteria (przed stronicowaniem) | |
limit | numberRozmiar strony użyty w tym żądaniu |
Pułapki typów. W części endpointów pagination.count bywa zwracane jako string (np. "94"), a nie liczba — np. w Monitoringu (rank_tracker). Rzutuj wartość po stronie klienta. Sporadycznie page_count bywa niespójne przy count: 0 (np. 1 zamiast 0) — traktuj has_next_page jako źródło prawdy o kolejnej stronie.
Przykład
{
"success": true,
"data": [ /* wiersze bieżącej strony */ ],
"pagination": {
"page_count": 97041,
"current_page": 1,
"has_next_page": true,
"has_prev_page": false,
"count": 291121,
"limit": 10
}
}Iterowanie po wszystkich stronach
Zwiększaj page aż has_next_page będzie false. Wzorzec:
// page = 1
// dopóki true:
// wyślij żądanie z { ...params, page, limit }
// przetwórz odpowiedź.data
// jeśli odpowiedź.pagination.has_next_page == false → przerwij
// page += 1Aby ograniczyć liczbę żądań, ustaw limit na maksimum wspierane przez endpoint (często 100). Zwróć uwagę na limity konta — patrz Limity zapytań.