Skip to content

Authentication and request limits

Authenticate integration requests and understand shared team quotas.

Use the API origin supplied by your integration deployment. Keep x-api-key in a request header, never in a URL or public client bundle. No public origin or self-service key issuance is announced here. Your integration key authorizes API requests; it cannot sign a wallet transaction.

API Reference lists only the public integration contract. Account management and platform administration are separate interfaces.

Use GET /v1/rate-limits to inspect available request capacity and GET /v1/usage to inspect consumption. Both require an integration key in x-api-key. Limits apply to the authenticated key's team and are shared by all that team's integration keys. Neither route accepts a team identifier.

/v1/rate-limits returns scope: "team", unit: "requests", observedAt, canRequest, retryAfterSeconds, and minute/month windows containing limit, remaining and resetsAt. /v1/usage returns the same scope/unit/observation timestamp with used and resetsAt for each window. Responses use the standard { "success": true, "data": ... } envelope.

Windows are fixed UTC calendar minutes and months, rather than rolling durations. canRequest describes the snapshot, not reserved capacity; another request can consume capacity immediately afterward. Remaining capacity never becomes negative if an administrator lowers a limit below current usage.

These two authenticated reads do not consume trading quota and remain available when it is exhausted. Trading/status calls, including each SSE connection, count when admitted; SSE frames do not. An exhausted trading request receives HTTP 429 with Retry-After. Introspection returns HTTP 200 with the current blocked state. Revoked or expired keys cannot query either endpoint.

Usage and limit responses are private and non-cacheable. They contain no key secrets, other teams' usage, commercial pricing, limit-request workflow or administration operations. Concurrent SSE connection caps are independent of request quotas and are not included in these minute/month snapshots.