Skip to main content

API Key Scopes

There are two types of API keys. Each key type uses its own set of routes:
  • Personal keys use /v1/me/ routes
  • Workspace keys use /v1/workspace/ routes
Using a key on the wrong route set will return a 403 error. Both route sets use the same request format — see Getting Started.
Personal KeyWorkspace Key
Routes/v1/me/*/v1/workspace/*
Created byAny workspace memberWorkspace admins only
Meetings accessYour own meetings + meetings shared
with you (directly or via shared tags)
All meetings across the workspace
Tasks accessTasks from your meetings + tasks from
shared meetings
All tasks across the workspace
Delete meetingsYour own meetings onlyAny meeting in the workspace
SearchFull-text meeting searchNot available
TagsList your tagsNot available
userEmail filterNot availableFilter results by a specific user’s email
Rate limit scope100 requests/min per key100 requests/min per key
Max keys3 per user10 per workspace
If you only need access to your own data, use a Personal key. Use a Workspace key when you need to query across all team members or filter by user.

Shared Meeting Access (Personal Keys)

Personal keys don’t just return your own meetings — they also include meetings that have been shared with you:
  • Directly shared — Meetings explicitly shared with you by a teammate
  • Shared via tags — Meetings tagged with a label that’s been shared with you
This applies to both meeting listing and task listing. Deleting meetings is restricted to meetings you own.

Rate Limiting

API requests are limited to 100 requests per minute per API key. Each key has its own independent quota regardless of type. When you exceed the limit, you’ll receive a 429 Too Many Requests response with these headers:
HeaderDescription
X-RateLimit-LimitMaximum requests allowed per window
X-RateLimit-RemainingRequests remaining in the current window
X-RateLimit-ResetUnix timestamp when the window resets

Error Responses

All errors return a JSON object with an error field:
{
  "error": "Description of what went wrong"
}

Status Codes

StatusMeaningCommon Causes
200SuccessRequest completed successfully
400Bad RequestInvalid parameters — malformed dates, bad cursor format, missing fields
401UnauthorizedMissing or invalid API key
403ForbiddenWrong key type for route, or insufficient access
404Not FoundMeeting or resource doesn’t exist
429Too Many RequestsRate limit exceeded — wait and retry
500Internal ErrorSomething went wrong on our end — please retry

Common Error Examples

Missing API key:
{ "error": "Missing API key. Use header: x-api-key: <your_api_key>" }
Wrong key type for route:
{ "error": "This endpoint requires a workspace-scoped API key." }
No access to a meeting:
{ "error": "Access denied. You do not have access to this meeting." }
Invalid query parameter:
{ "error": "Invalid startDate format" }