Make the first authenticated check
x-api-key. Do not send it as Authorization: Bearer, place it in a URL or request body, expose it in browser-delivered code, or commit it to source control.
Use the right credential for each action
A dashboard session is not a substitute for an API key on a data request. An API key cannot manage dashboard billing or create another key.
Inspect the account before repeated work
Use the same key that will run the workload to check that account’s billing state and limits:GET /v1/billing/rates as the public current rate catalog; it is not account-specific billing state:
GET /v1/billing and GET /v1/limits describe the authenticated account context, so recheck them when changing keys or expanding a workload. For a repeated or expensive path, use POST /v1/billing/quote with that key: it estimates the requested path against the current account and budget gate. It is not a reservation or a promise for a later request.
Read metering and retry signals
For production requests, retainRequest-Id and traceparent when present. Also retain SECAPI-Meter-Class, SECAPI-Estimated-Cost, SECAPI-Token-Count, and Retry-After when supplied. They describe that response only; check billing and limits again before expanding a workload.
Rotate a key without interrupting callers
- Create a replacement key in the dashboard.
- Update the server-side secret where the application runs.
- Verify the replacement with
GET /v1/limits. - Revoke the old key after callers use the replacement.

