Troubleshooting
"I get 401 UNAUTHENTICATED on every request"
Your credential is missing, malformed, revoked, or expired. Check:
- The header is exactly
Authorization: Bearer nws_...(note:Bearer, notBasicor anything else — this applies to/api/v1/*only). - The Credential hasn't been revoked (check the dashboard's Credential list — a revoked one is rejected immediately).
- If you set an expiry when creating it, that it hasn't passed.
"I get 403 SCOPE_DENIED"
Your Credential doesn't hold the scope the endpoint requires. See API Keys & Scopes for which scope each endpoint needs, then either issue a new Credential with the right scope or add it via the dashboard.
"I get 403 CAPABILITY_NOT_ENTITLED or QUOTA_EXHAUSTED"
Your Site's Plan doesn't include the capability, or you've used up this period's quota. Check
GET /api/v1/account/sites/{siteId}/entitlements (see Usage & Quotas) or the
dashboard's Usage page for your Site's actual current state.
"I get 404 on a resource I know exists"
If it belongs to a different Customer than the one your Credential's Site belongs to, this is expected — see Errors for why 404 doesn't distinguish "doesn't exist" from "not yours."
"I get 429 RATE_LIMITED"
Back off and retry, honoring Retry-After if present — see Rate Limits.
"hasMore is true but I stopped getting new items"
Make sure you're passing back the exact nextCursor value from the previous response, not a value
you constructed or modified — see Pagination.
Still stuck?
Double-check the request/response shape against the API Reference and the public OpenAPI document.