API Authentication: Bearer Keys and Scopes

Authenticate to the FoxCue API with a scoped workspace API key in the Authorization header. Key expiry, revocation and the full list of permission scopes.

Every FoxCue API request (except the discovery endpoints) needs a workspace API key in the Authorization header as a bearer token. Owners create keys in Settings → Developers. Each key has a name, an expiry and a set of scopes.

Authorization: Bearer <workspace API key>

Send requests to https://app.foxcue.com/api/v1. https://app.foxcue.com is the hosted FoxCue app URL.

Rules

  • Keys go in the Authorization header only. Keys in URLs are never accepted.
  • Browser sign-in cookies can't authenticate the API, and keys can't sign in to the app.
  • The full key is shown once. FoxCue stores only a hash.
  • Keys expire after 1–365 days (default 90). The app offers 30 Days, 90 Days and 1 Year.
  • Owners can revoke any key. Removing an owner, or resetting their sign-in, invalidates their keys.
  • Use one key per integration.

See Create an API key for the steps.

Scopes

Scopes are independent: a key gets exactly what you select. For read-only access, select the :read scopes.

ScopeAllows
brands:read / brands:writeBrands, brand kits, offerings, CTAs, styles
sources:read / sources:writeSources and documents
knowledge:read / knowledge:writeSource history, passage search, context, people
strategy:read / strategy:writeSilos, topics, targets, evidence, briefs
performance:read / performance:writeYouTube connections, publications, reports, sync jobs
scripts:read / scripts:writeScripts, versions, collections
outputs:readSaved outputs
generation:writeStart AI generation and renders. Can incur provider charges.
jobs:read / jobs:writePoll jobs / cancel jobs
media:read / media:writeDownload / upload files

Existing keys don't gain new scopes automatically when new ones are added.

Frequently asked questions

Are API keys the same as my OpenAI or ElevenLabs keys?

No. Workspace API keys only access FoxCue. AI provider keys are configured on the server.

On this page