Skip to main content

API Keys

All Enterprise API requests are authenticated with an API key in the Authorization header:
Keys follow the format avoca_<64 hex characters> — the avoca_ prefix followed by a cryptographically random hex token. Keys are stored hashed; treat them like passwords and never commit them to source control.

Obtaining API Keys

API keys are managed in the Avoca dashboard:
  • Team-level keys: Settings → API Keys on your team (/team/[slug]/settings/api-keys)
  • Enterprise-level keys: Settings → API Keys on your enterprise (/enterprise/[slug]/settings/api-keys)
Only teams with enterprise access can generate API keys.

Key Types

Permissions

Each key is configured with permission scopes controlling which endpoints it can call. Calling an endpoint without the required permission returns 403 Forbidden.

Multi-team Behavior

  • Cross-team v1 endpoints (/api/v1/sessions, /api/v1/bookings, /api/v1/analytics/funnel) aggregate across all teams the key can access, with an optional team_id query filter.
  • Enterprise-scoped routes (/api/v1/enterprise/:enterpriseId/...) require an enterprise_all_teams key whose enterprise matches the path. The support-ticket feed additionally requires read:support_tickets.
  • Designated internal QA/test teams are excluded from multi-team aggregations by default; pass include_test_teams=true to include them. Explicitly team-addressed requests are never filtered.