Основные понятия

Пагинация

Списки приходят постранично. Переходите по next_cursor, пока has_more не станет false, и вы получите все объекты.

Параметры

Все эндпоинты списков принимают одни и те же два параметра, помимо собственных фильтров.

  • limitinteger
    Максимальное число объектов на странице, от 1 до 100. По умолчанию 25.
  • cursorstring
    next_cursor предыдущей страницы. Для первой страницы не передавайте его.

Объект списка

  • objectstring
    Всегда list.
  • dataarray
    Объекты страницы.
  • has_moreboolean
    True, если после этой страницы есть ещё одна.
  • next_cursorstring или null
    Курсор следующей страницы, null на последней.
Ответ200
{
  "object": "list",
  "data": [
    {
      "id": "msgOtJ8dvT",
      "object": "lead",
      "profile": {
        "x_user_id": "1460283925",
        "username": "jane_builds",
        "name": "Jane Doe",
        "bio": "Runs a paid trading community. Daily setups, no hype.",
        "followers_count": 12400,
        "following_count": 380,
        "location": "Austin, TX",
        "website": "https://janedoe.com",
        "profile_image_url": "https://pbs.twimg.com/profile_images/1460283925/jane_400x400.jpg",
        "verified": true,
        "url": "https://x.com/jane_builds"
      },
      "score": 86,
      "score_reason": "Runs a paid trading community and asks how to collect payments for it.",
      "hot": true,
      "status": "scored",
      "persona": {
        "id": "lvWBPnytpS",
        "name": "Tipsters"
      },
      "campaign": null,
      "conversation_id": null,
      "locked_to": null,
      "found_at": "2026-11-05T14:02:11.482Z",
      "scored_at": "2026-11-05T14:03:40.117Z",
      "updated_at": "2026-11-05T14:03:40.117Z",
      "metadata": {}
    }
  ],
  "has_more": true,
  "next_cursor": "eyJzIjoiMjAyNi0xMS0wNVQxNDowMzo0MC4xMTdaIn0"
}

Обход всех страниц

На странице может быть меньше объектов, чем limit, и даже ни одного, хотя has_more по-прежнему true. Каждый запрос читает ограниченный участок индекса, и поэтому фильтры работают быстро даже на миллионах лидов. В цикле всегда опирайтесь на has_more и next_cursor, а не на число объектов.

  • Передавайте одни и те же фильтры и order на каждой странице. Курсор работает только с теми фильтрами, для которых он создан, иначе ответом будет 400 cursor_invalid.
  • Курсоры непрозрачны. Никогда не составляйте и не меняйте их сами.
  • Объекты отсортированы по порядку списка, а при равных значениях по ID, поэтому объект с предыдущей страницы никогда не повторяется.
  • Для десятков тысяч лидов экспорт быстрее, чем постраничный обход.
curl -G https://gemlead.ai/api/v1/leads \
  -H "Authorization: Bearer $GEMLEAD_API_KEY" \
  -d hot=true \
  -d limit=100

# The next page, with the next_cursor of the one before
curl -G https://gemlead.ai/api/v1/leads \
  -H "Authorization: Bearer $GEMLEAD_API_KEY" \
  -d hot=true \
  -d limit=100 \
  -d cursor=eyJzIjoiMjAyNi0xMS0wNVQxNDowMzo0MC4xMTdaIn0