Overview
All programmatic access to the Limitless Exchange API requires authentication via scoped API tokens with HMAC-SHA256 request signing.Scoped API Tokens (HMAC)
Scoped API tokens are the authentication method for the Limitless Exchange API. Every request is authenticated by signing it with HMAC-SHA256 using your token’s secret. Tokens are scoped to control what actions they can perform.Scopes
| Scope | Description |
|---|---|
trading | Place and cancel orders. Required base scope for delegated_signing. |
account_creation | Create sub-account profiles under your partner account. |
delegated_signing | Server signs orders on behalf of sub-accounts (requires trading scope). Enables Web2 partners to submit orders without end users managing private keys. |
withdrawal | Withdraw ERC20 balances from managed server-wallet sub-accounts to partner-owned addresses. |
HMAC Request Signing
Required headers:| Header | Description |
|---|---|
lmts-api-key | Your token ID (received at token creation) |
lmts-timestamp | ISO-8601 timestamp (must be within 30 seconds of server time) |
lmts-signature | Base64-encoded HMAC-SHA256 signature |
SDK users should pass HMAC credentials to the SDK client (
hmacCredentials / hmac_credentials / WithHMACCredentials) and let the SDK build these headers automatically. Manual header signing is only needed when you call the REST API directly.Getting a Scoped API Token
Log in to Limitless Exchange
Go to limitless.exchange and connect your wallet.
Derive a token
Derive a scoped token via
POST /auth/api-tokens/derive. Pass the token field from the Privy authenticate response (not privy_access_token) in the identity header as Bearer <token>. The response includes a tokenId and secret. This is a one-time setup — use the HMAC credentials for all subsequent requests.trading scope is available to all users — no application required. For partner-level scopes (account_creation, delegated_signing), apply for programmatic API access to get your account enabled.
The token secret is returned once at creation time. Store it securely — it cannot be retrieved again.
Delegated Signing
With thedelegated_signing scope, partners can submit orders without providing signature and signatureType in the order payload. The server signs the order using a Privy server wallet linked to the target sub-account.
Use the onBehalfOf field in the order payload to specify which sub-account the order is for. The target profile must be linked to your partner account.
Checksummed Addresses
All Ethereum addresses in API requests must use checksummed format (EIP-55 mixed-case):x-accountheadermakerandsignerfields in orders
0x5aAeb6053F3E94C9b9A09f33669435E7Ef1BeAed
Your private key is still required for EIP-712 order signing (unless using delegated signing), but the scoped token handles request authentication.
Legacy API Keys
Existing API key users authenticate via theX-API-Key header:
| Method | Headers | Use Case |
|---|---|---|
| Scoped API Token (HMAC) | lmts-api-key, lmts-timestamp, lmts-signature | All new integrations — traders, bots, partners, delegated signing |
| API Key (deprecated) | X-API-Key: lmts_... | Legacy users only — no longer issued |