Skip to main content
Notra uses page-based pagination on the list endpoints that can grow without bound. Each takes page and limit query parameters and returns a pagination object for building paging controls.

Paginated endpoints

Other list endpoints are not paginated, so brand identities, integrations, schedules, event triggers, chats, skills, GEO projects, prompts, sequences, competitors and briefs return the full list. GEO traffic endpoints (traffic/log, traffic/journeys, traffic/pages) and GET /v2/agent-chats accept a limit only and return the most recent items. Visibility and traffic reads use a days or from/to window instead.

Query parameters

integer
default:"10"
Items per page. Range: 1 to 100. The default depends on the endpoint, as the table above shows.
integer
default:"1"
The page number to retrieve, starting at 1.
The API rejects out-of-range values instead of clamping them, so limit=500 or page=0 returns 400 with an error such as limit: Too big: expected number to be <=100. GET /v1/posts also accepts sort (asc or desc by creation date, default desc) and the comma-separated filters status, contentType and brandIdentityId. GET /v1/feedback accepts status, kind and projectId.

Pagination response

Every paginated response includes a pagination object:
object
Metadata about the current page and navigation options.

Request examples

Fetch the first page with the default limit (10):

Building pagination controls

Build navigation controls from the pagination object:

Best practices

  • Use a distinct cache key for each combination of page, limit, sort and filters.
  • Invalidate paginated list caches after post updates, deletes and completed generation jobs.
  • For a fuller strategy, see Caching.
Use smaller page sizes (5 to 20 items), especially for mobile clients.
Always handle an empty items array in your UI.
Use nextPage and previousPage to enable or disable navigation buttons, since each is null when there is no page in that direction.

Edge cases

Requesting a page beyond totalPages is not an error, and the API returns 200 with an empty items array, nextPage: null and previousPage set to the page before the one you asked for. Stop paging when nextPage is null instead of guessing page numbers.
The API rejects values outside the allowed range with 400 and an error message that names the parameter. Non-numeric values fail the same way, and the API never clamps values.
When there are no items, totalItems is 0, totalPages is 1, the items array is empty and both nextPage and previousPage are null.
totalItems and totalPages reflect the filtered result set. On GET /v1/posts, omitting status returns only published posts, so pass status=draft,published to count drafts too.
Last modified on October 8, 2026