Pagination

Offset pagination for large tables; bounded lists everywhere else.

Updated 2026-05-24
2 min read

Two response shapes for list endpoints. Most lists are bounded (you ask for up to limit, you get up to limit). Reviews are paginated with offset because review tables routinely exceed thousands of rows.

Bounded list

Used by projects, keywords, competitors, listings, listing versions, screenshots, templates, sessions, simulations.

json
{
  "data": [ /* up to `limit` items */ ],
  "count": 17
}

Offset pagination

Used by GET /projects/:id/reviews.

bash
curl -s "https://forvibe.app/api/v1/projects/$P/reviews?limit=50&offset=0" \
  -H "Authorization: Bearer fvk_live_..."
json
{
  "data": [ /* 50 reviews */ ],
  "pagination": {
    "total": 1287,
    "limit": 50,
    "offset": 0,
    "has_more": true,
    "next_offset": 50
  }
}
  • Walk pages by feeding next_offset back into the next request.
  • Stop when has_more is false.
  • limit defaults vary by endpoint (usually 25); maximum is 100–200 depending on the resource.