Skip Main Navigation
Page Content

Paginated Responses

All API endpoints which return multiple objects will return paginated responses; as well as the list of objects (which will usually be under a key like events or attendees, depending on the endpoint) there will also be a pagination key:

{
    "pagination": {
        "object_count": 13,
        "page_number": 2,
        "page_size": 50,
        "page_count": 2,
        "continuation": "dGhpcyBpcyBhIGNvbnRpbnVhdGlvbiB0b2tlbg"
    },
    "events": [
        ...
    ]
}

This pagination key gives you information about the number of pages in the result, and how many objects are returned:

  • page_number: The current page number (starts at 1)
  • page_size: The number of objects on each page (roughly)
  • object_count: The total number of objects across all pages (optional)
  • page_count: The total number of pages (starting at 1) (optional)
  • continuation: A token to return to the server to get the next set of results (see “Continuated Responses” below)

You can specify the page number you would like to request using the page parameter. However, page sizes are fixed, usually around 50 objects per page, but it may be smaller or larger depending on the particular endpoint (the sizes are tuned to improve API response speed and cacheability).

In addition, you’re not guaranteed to get back the given number of items per page; you may get more or less depending on pagination backend optimizations. It should be treated as a rough guide.

Note that while we guarantee stable ordering of objects in paginated resources, the objects being returned may change between requests (e.g. the orders endpoint for a fast-selling event; between requesting page 1 and page 2, more items may have appeared on or been removed from page 1).

These endpoints will usually have an alternative way of querying without missing objects, however, often based off of modified times. See the individual endpoint pages for details.

Also note that on some endpoints, you won’t get back object_count and page_count, and you’re expected to just keep incrementing the page number until you get the BAD_PAGE error or you have enough data. These endpoints typically have a very large number of results (for example, the endpoint that lists every event on Eventbrite), and calculating the exact count would take too long.

Continuated Responses

In addition to standard pagination, some endpoints will also include continuation tokens. A continuation token is a string returned by the server that the client is expected to include in the next request to get the next page of results. In lieu of, or in addition to, the pagination items listed above, the following keys will be added to the pagination key in the response:

  • continuation: a string containing the continuation token
  • has_more_items: a boolean indicating if the next request will contain any results

The intended way to use continuation tokens is:

  1. Make an initial request to an endpoint.
  2. Store the token returned by the server, and include it in the next request
  3. When all records have been retrieved, the continuation key will not be present in the response.

For example, if the response for your initial request to the /v3/example/ endpoint looks like this:

{
    "pagination": {
        ...
        "continuation": "dGhpcyBpcyBwYWdlIDE",
        "has_more_items": true
    },
    "events": [
        ...
    ]
}

Then to receive the next page of the results for that endpoint, you would make a request to /v3/example/?continuation=dGhpcyBpcyBwYWdlIDE, which may yield a response like this:

{
    "pagination": {
        ...
        "has_more_items": false
    },
    "events": []
}

In this case, there is no continuation key, so there are no more results. The next request can be made without a continuation token to get new results.

In addition to continuation, we also include a has_more_items key to indicate to the client whether a subsequent request will yield any results. This is a convenience for the client, and subsequent requests would return no results.