Key format
Sandbox provider APIs don’t move real funds — use
sk_test_… keys against api-sandbox.teel.finance for end-to-end integration testing before switching to production credentials.sk_ prefix is recognized by GitHub secret scanning, GitGuardian, and TruffleHog — if you accidentally commit a key, you’ll get a leak notification. The visible live vs test distinction prevents the “prod creds in Slack” failure mode.
Issuing a key
API keys are issued by the Teel onboarding team. Email support@teel.finance (or your dedicated onboarding contact) to request:- A new
sk_test_…sandbox key - A new
sk_live_…production key (after KYB approval) - Additional keys for separate use cases (e.g. one per service)
- A scope change on an existing key
Scopes
Each key carries a subset of scopes. Default for a newly-minted key is read-only:
Webhook subscriptions are managed entirely through the API with the
webhooks:read / webhooks:write scopes — see the Webhooks guide.
Rotation
To roll a key, contact support@teel.finance. We issue a new key alongside the existing one and keep the previous key working for 7 days to give you time to redeploy. After the overlap window, the old key returns401.
Rotations are logged to the partner-visible audit feed under the same business.
Revocation
If you suspect compromise, contact support@teel.finance to revoke the key immediately. Active in-memory caches drain within 30 seconds; after that, every request with the revoked key returns401. Use revocation rather than rotation during incident response — rotation has a 7-day overlap window you don’t want when responding to a leak.
What happens if a key is compromised
- Blast radius is bounded by the key’s scopes — a key with
quotes:readonly cannot create payouts. Issue narrowly-scoped keys per use case so a leaked CI key can’t act as a leaked production key. - Teel only custodies funds via escrow + smart wallets. A captured key cannot drain a wallet — it can only place actions the holder of the key could place anyway, all of which are audited and rate-limited.
- Revoke first, investigate second. Rotation’s 7-day overlap is wrong for an active compromise; revoke + mint a new key + redeploy.
Storage
- Server-side only. Never embed a
sk_live_…key in a mobile app, browser bundle, or any artifact a partner of yours can read. Use a backend you control. - One secret per environment. Mirror the key into your env-vars / vault under names like
TEEL_API_KEY. Don’t share a key across staging and production. - CI secret scanning. Configure your CI to fail on
sk_live_/sk_test_substrings in commits. Most CI providers have built-in detectors for this prefix shape.
Error responses
Rate limiting
Per-key rate limits apply. Each response carries:429, also: Retry-After: <seconds>. Wait at least that long before the next request.
Specific limits per endpoint family + the per-key default are documented in the Errors & retries guide.
Dashboard authentication
The Teel dashboard is a separate, browser-only session and is not the API authentication path. Partner integrations should always use thesk_ API key pattern above — dashboard sessions are not accepted on api.teel.finance or api-sandbox.teel.finance.
If you build an internal tool that needs to act on behalf of multiple Teel accounts, request one sk_ key per account rather than reusing your own dashboard session.