Перейти к содержанию

Пагинация

Курсорная пагинация списков Slicer API — параметры limit и cursor, поле nextCursor и примеры обхода всех страниц.

На этой странице

Длинные списки — проекты и операции кошелька — API отдаёт страницами. Пагинация курсорная: каждая страница сообщает, где начинается следующая, и вы просто передаёте это значение в новый запрос.

Параметры и ответ

Параметр Значение
limitразмер страницы, от 1 до 100; по умолчанию 20
cursorзначение nextCursor из предыдущей страницы; без него — первая страница
Ответ GET /v1/projects?limit=2
{
  "ok": true,
  "data": {
    "items": [
      { "id": 318, "title": "Монтаж за 3 минуты", "status": "succeeded" },
      { "id": 311, "title": "Обзор новой коллекции", "status": "succeeded" }
    ],
    "nextCursor": "Mg"
  }
}

nextCursor: null — страниц больше нет. Курсор — непрозрачная строка: не разбирайте и не составляйте её сами. Повреждённый курсор — 400 bad_cursor.

Списки со страницами:

  • GET /v1/projects — проекты, новые сверху; фильтры status (all, ready, active, failed, draft — черновики проектов без ИИ-режиссёра) и q — поиск по названию;
  • GET /v1/wallet/transactions — операции кошелька, новые сверху.

Остальные списки (версии, история проекта, публикации, вебхуки, доставки) короткие и приходят целиком массивом.

Обойти все страницы

curl
JavaScript
Python
Терминал
CURSOR=""
while :; do
  PAGE=$(curl -s "https://api.slicer.media/v1/projects?limit=100&status=ready${CURSOR:+&cursor=$CURSOR}" \
    -H "Authorization: Bearer $SLICER_TOKEN")
  echo "$PAGE" | jq -r '.data.items[] | "\(.id)\t\(.title)"'
  CURSOR=$(echo "$PAGE" | jq -r '.data.nextCursor // empty')
  [ -z "$CURSOR" ] && break
done

Что дальше