Zapier and OAuth (preview). Awardee now also accepts OAuth access tokens (prefix
awo_live_) on every v1 endpoint, used by the Zapier integration and third-party apps acting on behalf of a member. OAuth tokens carry user-scoped permissions and require a requiredScopes check per endpoint, while personal API keys (prefix aw_live_) remain org-wide and unscoped — pick the model that matches your integration. Personal keys are still the canonical method for first-party automations; the OAuth flow is documented at /oauth/authorize and /api/oauth/token.Key format
Live keys start withaw_live_ followed by 32 hex characters:
Sending the key
Set theAuthorization header on every request. The scheme is Bearer.
Creating a key
In the dashboard, open Settings → API keys → New key. Each key has:- Name. Free-form. Use it to identify the integration that holds the key (
crm-sync-prod,analytics-etl,dev-laptop-ethan). - Expiration. Optional. If set, the key returns
401 api_key_expiredafter that timestamp. Recommended for short-lived integrations and CI. - Rate limits. Apply to the whole organization, not the individual key — every credential in the org shares one bucket (default 60 requests per minute and 1,000 per hour, configurable by Awardee staff). See Rate limits.
Revoking and pausing
- Revoke
- Pause
Permanent. The key is destroyed and cannot be reactivated. Subsequent requests get
401 api_key_revoked. Use this when a key has been exposed, when an integration is retired, or when an employee leaves.Auth error codes
Every authentication failure returns a JSON envelope with a stableerror code. Branch on the code, not on the human-readable message.
| Status | Code | Meaning | Fix |
|---|---|---|---|
| 401 | missing_api_key | No Authorization header on the request. | Add Authorization: Bearer aw_live_…. |
| 401 | invalid_api_key | Header present but value isn’t a recognized key. | Check for typos, trailing whitespace, or a key from a different environment. |
| 401 | api_key_revoked | The key was revoked in the dashboard. | Mint a new key and update the integration. |
| 401 | api_key_expired | The key passed its expires_at. | Mint a new key or extend the expiration. |
| 403 | api_key_paused | The key exists but is paused. | Resume it in the dashboard, or use a different key. |
Rotation
There is no in-place rotation. To rotate:Create the new key
Mint a fresh
aw_live_… and store it in your secrets manager alongside the old one.
