Skip to main content
The Timeless API is a REST API served over HTTPS. All requests and responses use JSON, and all endpoints require authentication. Base URL:

Authentication

Authenticate by including your API token in the Authorization header using the Bearer scheme.
You can generate API tokens from your Timeless dashboard. Tokens are 64-character hex strings. Keep them secret — treat them like passwords. If authentication fails, the API returns a 401 response:

Errors

The API uses standard HTTP status codes. All error responses share the same structure:
Validation errors include a details array identifying the invalid fields:

Rate limiting

Requests are rate limited per API token and IP address. The default limits are: Every response includes rate limit headers: When you exceed the limit, the API returns 429 with a Retry-After header indicating how many seconds to wait.

Plan limits

On top of the limits above, each account has daily limits that depend on its plan. They apply per user across all of that user’s API tokens and MCP connections. Credits stay the usage budget: a free trial ends when its credits are used up. The call window lasts 24 hours from its first request, and the upload count resets at 00:00 UTC. Going over the daily call limit returns 429 with Retry-After, and going over the upload limit returns 403 upload_limit_exceeded. Accounts on a limited plan also get an X-Timeless-Notice response header (and, over MCP, an extra text block on each tool result) with a link to upgrade.

Pagination

List endpoints use cursor-based pagination. Responses include:
Pass cursor as a query parameter to fetch the next page. Control page size with limit (1-100, default 25).
When has_more is false, you have reached the end of the list.

Resource IDs

All resources use prefixed IDs to make them easy to identify at a glance: Some endpoints support an expand query parameter that includes related resources inline instead of requiring separate requests. For example, to include documents with meetings:
When a field is expandable but not requested, it is omitted from the response entirely.