sk_hopper_ followed by 32 random bytes, base64url-encoded. The gateway stores only a SHA-256 hash and a display prefix (sk_hopper_ plus the next 4 characters). The full key is shown exactly once, at creation — copy it then, because it cannot be retrieved later.
Create and revoke
Manage keys at withhopper.com/console/keys. Key management is dashboard-only; there is no self-serve key API. Revocation is immediate — the next request with a revoked key returns 401api_key_disabled.
Passing the key
Every HTTP route reads the key from theAuthorization header.
Storage
Keep the key in an environment variable on your server. Never ship it in client-side code — a key in a browser bundle or mobile app is public, and anyone holding it spends your credits. If a key leaks, revoke it in the console and mint a new one.401 responses
No key on the request:api_key_disabled and message “This API key has been disabled.”
At WebSocket upgrade the same envelope is written as a raw HTTP response before the upgrade completes; a missing key there returns 401 invalid_api_key with message “Provide an API key via the Authorization header or ?api_key=.”
If key verification itself is temporarily down, requests return 503 verify_unavailable. Retry within seconds; the key is fine.