Authorization: Bearer <key> header. Keys are created in Settings → API Keys in the Hyperclip app and authenticate as the user who created them — they can spend that user’s credits.
Key format
Example:
hck_live_AbCdEf123456.0123456789abcdefghijklmnopqrstuv
The prefix is shown in the UI so you can identify a key without seeing the full secret. If you leak the prefix in a log, your secret is still safe — revoke the key out of caution, but there’s no immediate compromise.
Sending the key
Bearer to the key (with the space) and pass it as the Authorization header.
Creating a key
1
Developers
Open the page from the sidebar or go directly to
/developer.2
Click New key
Choose a descriptive name. Up to 25 active keys per user.
3
(Optional) set caps
Monthly credit cap — blocks runs with HTTP 402 when exceeded. Useful for containing cost on an integration key. Per-run credit cap — blocks a single run whose estimated cost is higher than this value. Useful against misconfigured clients that loop.
4
Copy the secret
You see the full
hck_live_... key exactly once in the reveal dialog. Save it to your secret manager immediately.Scopes
Every key carries a list of scopes. Defaults:runs:write, runs:read.
A request without the required scope returns
403 insufficient_scope.
Revoking a key
Click the trash icon next to a key in Settings → API Keys, confirm, and the key is revoked instantly. In-flight requests authenticated with that key finish; new requests return401 revoked_api_key.
Revocation is a soft delete — the row stays in the database so you can still see the key’s usage history. The secret is destroyed and can no longer authenticate.
Rotating keys
Hyperclip does not auto-rotate keys. For a planned rotation:1
Create the replacement key
Mint a new key with the same caps and scopes as the old one.
2
Deploy the replacement
Roll the new secret out to your environment. Wait until all traffic is on the new key.
3
Revoke the old key
Revoke in the UI. Done.
Server-side only
Acceptable homes for keys:- Backend services, cron jobs, Lambda functions
- CI/CD secrets (GitHub Actions, Vercel/Netlify env vars)
- Secret managers (AWS Secrets Manager, Google Secret Manager, HashiCorp Vault, 1Password, Doppler)
.envcommitted to git- Single-page app JS bundles
- Browser extension packages
- Mobile app binaries
- Shared Slack messages
Rate limits
The API v1 has no per-second rate limiting at the HTTP layer. Abuse is self-limited by:- The credit balance on your account — runs cannot reserve credits beyond your balance.
- The monthly cap on the API key — a runaway loop blocks itself after hitting the cap.
- Payment declines — a failing autorefill auto-disables itself after one declined charge.
Security audit checklist
- Keys stored only in secret managers, not in source control
- Separate key per deployment target
- Monthly cap set on every key
- Per-run cap set on keys used by user-facing integrations
- Autorefill’s
topup_creditssized for your worst reasonable hour, not day - API calls proxied through your server, never the browser
- Key rotation procedure documented in your runbook