Authentication
Authenticate with an API key or an OAuth access token, and grant only the scopes you need.
Every request needs a bearer token in the Authorization header: an API key for scripts that only read, or an OAuth access token when a person connects an integration or an AI agent.
API keys
Create an API key in the app under Settings › API keys. A key belongs to one workspace and can only read.
Authorization: Bearer crw_live_EXAMPLE_DO_NOT_USE
- Grant only the scopes your script needs.
- Store keys in a secret manager, never in a repository or browser client.
- Rotate keys when teammates, vendors, or automation ownership changes.
- An API key that calls an endpoint which writes gets HTTP 403.
OAuth access tokens
Integrations and AI agents that act for a person use OAuth 2.0 authorization codes with PKCE. Access tokens start with crw_oauth_at_.
- Writes and team management need an OAuth access token.
- The person must also hold the role an endpoint names: editor, or owner or admin.
- A token works in one workspace at a time.
- People can review and revoke connected apps in the app under Settings › Connected apps.
Scopes
A token carries scopes. Each endpoint lists the scopes that let you call it, and any one of them is enough.
sites:read- API keys
- Yes
- OAuth
- Yes
- Used for
- AI readiness, account context, client groups, crawl exclusion rules, effective settings, google, migrations, overview, regions, sitemaps, sites, tags, verification, weekly report settings, weekly reports, workspaces
urls:read- API keys
- Yes
- OAuth
- Yes
- Used for
- URLs, google, segments
issues:read- API keys
- Yes
- OAuth
- Yes
- Used for
- issues, redirect chains
alerts:read- API keys
- Yes
- OAuth
- Yes
- Used for
- alert trigger configs, alerts, custom extractions, incidents, notification settings
changes:read- API keys
- Yes
- OAuth
- Yes
- Used for
- URLs, changes
links:read- API keys
- Yes
- OAuth
- Yes
- Used for
- internal link score, links
exports:read- API keys
- Yes
- OAuth
- Yes
- Used for
- exports
historical:read- API keys
- Yes
- OAuth
- Yes
- Used for
- GSC, historical
technology:read- API keys
- Yes
- OAuth
- Yes
- Used for
- technology
workspaces:read- API keys
- No
- OAuth
- Yes
- Used for
- workspaces
account:read- API keys
- No
- OAuth
- Yes
- Used for
- account context
sites:write- API keys
- No
- OAuth
- Yes
- Used for
- AI readiness, URL submissions, URLs, delete preview, migrations, segments, sitemaps, sites, verification
settings:write- API keys
- No
- OAuth
- Yes
- Used for
- bulk settings
alerts:write- API keys
- No
- OAuth
- Yes
- Used for
- alert policy, alert trigger configs, custom extractions, notification settings
exports:write- API keys
- No
- OAuth
- Yes
- Used for
- exports
workspace:write- API keys
- No
- OAuth
- Yes
- Used for
- client groups, tags
team:write- API keys
- No
- OAuth
- Yes
- Used for
- team
technology:write- API keys
- No
- OAuth
- Yes
- Used for
- technology
offline_access- API keys
- No
- OAuth
- Yes
- Used for
- refresh tokens for hosted connectors
Authentication errors
A missing, wrong, or under-scoped token gets HTTP 401 or 403 with a detail message that says which.
Last updated October 29, 2026