Authenticate publishing, not public reads.
Publishing endpoints require an app-scoped publish key. Public release metadata and updater routes are unauthenticated in the currently shipped public-channel path.
Bearer or x-api-keyPublish scope
Bearer authorization
Authorization: Bearer {publish-key}
Bearer authorization is the recommended form and is used by the GitHub Action. The publishing service also accepts:
x-api-key: {publish-key}
Key checks
For each request, the service:
- applies an IP rate-limit bucket when a client address is available
- parses the public key prefix
- looks up the hashed key record
- verifies the token
- checks revocation and
publishscope - checks that the key’s app slug matches the route
- applies the verified-key rate-limit bucket
- updates the key’s last-used time
Rate-limit headers
Authenticated publishing responses include:
ratelimit-limit: 120
ratelimit-remaining: 119
ratelimit-reset: 42
The deployment can override the default limits. ratelimit-reset is seconds
until the current 60-second fixed window ends. A 429 response also includes
retry-after.
Dashboard authentication
Dashboard routes use the signed-in Accounts session and active organization.
Session-backed /api/dashboard/* routes are UI implementation, not an
alternative customer API.