Skip to main content
All list endpoints return paginated responses with a consistent format.

Response Format

{
  "data": [...],
  "pagination": {
    "total": 142,
    "limit": 25,
    "offset": 0,
    "has_more": true
  }
}
FieldDescription
totalTotal number of results matching your query
limitNumber of results per page
offsetNumber of results skipped
has_moreWhether there are more results after this page

Query Parameters

ParameterDefaultMaxDescription
limit25100Number of results per page
offset0-Number of results to skip
sortcreated_at:desc-Sort field and direction

Sorting

Use the sort parameter with the format field:direction:
# Newest first (default)
GET /events?sort=created_at:desc

# Alphabetical by title
GET /events?sort=title:asc
Each endpoint supports specific sort fields — refer to the API reference for details.

Paginating Through All Results

async function fetchAll(url, headers) {
  const results = [];
  let offset = 0;
  const limit = 100;

  while (true) {
    const response = await fetch(`${url}?limit=${limit}&offset=${offset}`, { headers });
    const { data, pagination } = await response.json();
    results.push(...data);

    if (!pagination.has_more) break;
    offset += limit;
  }

  return results;
}

const events = await fetchAll('https://api.tickable.io/events', {
  'Authorization': 'Bearer tk_live_YOUR_API_KEY'
});
Use the maximum limit=100 when fetching all results to minimize the number of API calls.