X-Api-Key header:
Create a staging API key
Sign in to the Stabyl staging app to create API keys for staging. Store the generated key when it is shown and use it only withhttps://api-staging.stabyl.com/v1.
Keep API keys in server-side systems only. Do not embed keys in browser, mobile, desktop, or user-controlled code.
Production API access
Production API access is not enabled by staging access. Your organization must complete KYB and receive an explicit invitation from Stabyl before provisioning production credentials. Follow the instructions in that invitation and use the resulting credentials only withhttps://api.stabyl.com/v1.
Do not copy a staging key into production configuration or treat successful
staging integration as production approval.
New keys use immutable scopes. The default scope set is trades:view,
trades:create, trades:execute, wallets:view, wallets:transfer, and
settlements:view. It excludes api-keys:view, webhooks:view, webhooks:manage, and
wallets:withdraw, so select those explicitly during key creation when you
need them. Selecting wallets:withdraw also requires completing account
authentication with an existing account passkey or withdrawal password.
Changing scopes requires replacing the key. An IP or CIDR allowlist is
optional.
A key can never do more than its stored scopes allow. It can do less if your
account’s own permissions are later reduced, because effective access is the
intersection of the two.
List Your API Keys
CallGET /partner/api/keys with an X-Api-Key credential explicitly granted
api-keys:view. Existing keys without this scope must be replaced if you want
to use them for inventory access.
data.keys, with active keys for the authenticated account
ordered newest first. Keys created through a browser session appear here too.
Each entry includes its name, key_last4, scopes, audience, authentication scheme,
IP allowlist, creation time, last-used time, and withdrawal authorization time
when present. Full credentials and secrets are never returned.
This endpoint does not list other accounts in your organization or grant permission
to create keys. Creation and revocation remain session operations. To list your
webhook endpoints, use GET /partner/webhooks with webhooks:view.
Key Handling Rules
Signed Withdrawal Requests
Withdrawal quote and submit calls require three additional headers:Public Endpoints
Only these Mintlify-documented routes do not require an API key:GET /partner/wallets/chainsGET /partner/wallets/fiat/banksPOST /simulate/fiat/depositsPOST /simulate/fiat/withdrawalsPOST /simulate/crypto/depositsPOST /simulate/crypto/withdrawalsPOST /simulate/kyb/statusPOST /simulate/notifications/product-updates
X-Api-Key or session cookie lets you
omit user_id. Without credentials, supply user_id. A supplied ID must match
the authenticated account; invalid credentials are rejected. When both an API
key and session are supplied, they must identify the same account. Signed API
keys retain their request-signature requirements. See
Sandbox Simulation.
All other documented routes require X-Api-Key.
Authentication Failures
If the same key works for reads but not withdrawal writes, confirm
wallets:withdraw is present and that the request was signed with the secret returned for that key.