REST API reference
Every public REST operation, generated from the published OpenAPI contract.
REST API
Edel PERPS External REST API, version 0.1.0. The reference lists 82 operations in 12 groups, generated from the published REST OpenAPI.
Use the base URL supplied for your environment (see environments and endpoints). Operations marked "Bearer token" take the session bearer or an API key as described in authentication. Schema coverage does not guarantee that an operation is enabled in your environment. Live market and account updates belong on the realtime reference.
Try it. Each operation has a console that sends requests from your browser to the environment chosen in the environment selector at the top of this page: Devnet (the default), Testnet or Mainnet. Devnet is available for development with test funds. Testnet and Mainnet are coming soon and are not available for trading or funding. Published URLs identify those environments and do not establish launch availability. A Mainnet request that changes state asks for a second confirmation. Account operations need a bearer token; the console keeps it in this tab's memory only and clears it along with the request body and parameters when you change environment. Collapsing a console preserves its pending request and retry key.
Place an order
POST /v1/orders — Submits a new order to the matching engine. Requires an Idempotency-Key header; the response is accepted for asynchronous processing.
Parameters. Idempotency-Key (header, required).
Request variants. The body matches one of these shapes; unknown fields are rejected.
- Required:
accountId,marketId,clientOrderId,side,orderType,quantity - Required:
accountId,marketId,clientOrderId,side,orderType,notional - Required:
accountId,marketId,clientOrderId,side,orderType,price,quantity
Quantities and prices are decimal strings. Read the idempotency and retry rules in Order API and retries, and find every field in the REST OpenAPI.
{
"accountId": "{{accountId}}",
"marketId": "{{marketId}}",
"clientOrderId": "example-order-1",
"side": "buy",
"orderType": "limit",
"price": "65000",
"quantity": "0.001",
"postOnly": false
}| Status | Meaning |
|---|---|
202 | Accepted for processing |
400 | Invalid request |
401 | Unauthorized |
403 | Forbidden |
409 | Request rejected by the existing venue contract |
429 | Rate limit exceeded |
503 | Service or requested capability unavailable |
System
3 operations.
| Method | Path | Operation | Access | Summary |
|---|---|---|---|---|
GET | /health | getServiceHealth | None | Get service health |
GET | /ready | getServiceReadiness | None | Get service readiness |
GET | /openapi.json | getOpenApiDocument | None | Fetch the OpenAPI document |
Affiliates
1 operations.
| Method | Path | Operation | Access | Summary |
|---|---|---|---|---|
GET | /v1/affiliate/availability | getAffiliateAvailability | None | Get public affiliate availability |
Orders
6 operations.
| Method | Path | Operation | Access | Summary |
|---|---|---|---|---|
POST | /v1/orders | placeOrder | Bearer token | Place an order |
POST | /v1/orders/batch | placeOrderBatch | Bearer token | Place a LIMIT order batch |
POST | /v1/orders/batch/cancel | cancelOrderBatch | Bearer token | Cancel an order batch |
POST | /v1/orders/preview | previewOrder | Bearer token | Preview an order |
GET | /v1/orders/{orderId} | getOrder | Bearer token | Get an order |
POST | /v1/orders/{orderId}/cancel | cancelOrder | Bearer token | Cancel an order |
Withdrawals
4 operations.
| Method | Path | Operation | Access | Summary |
|---|---|---|---|---|
POST | /v1/withdrawals | createWithdrawal | Bearer token | Request a withdrawal |
GET | /v1/withdrawals/{withdrawalId} | getWithdrawal | Bearer token | Get a withdrawal |
POST | /v1/withdrawals/{withdrawalId}/authorize | authorizeWithdrawal | Bearer token | Authorize a withdrawal |
POST | /v1/withdrawals/{withdrawalId}/confirm | confirmDfnsWithdrawal | Bearer token | Confirm an owner-signed withdrawal step |
Auth
9 operations.
| Method | Path | Operation | Access | Summary |
|---|---|---|---|---|
GET | /v1/auth/capabilities | getAuthCapabilities | None | Get authentication capabilities |
POST | /v1/auth/social/register | initiateSocialAuthRegistration | None | Start Google/OIDC registration |
POST | /v1/auth/social/register/recover | recoverSocialAuthRegistration | None | Resolve a Google registration outcome |
POST | /v1/auth/register/complete | completeAuthRegistration | None | Complete DFNS end-user registration |
POST | /v1/auth/login/init | initiateAuthLogin | None | Start passkey login |
POST | /v1/auth/login/complete | completeAuthLogin | None | Complete passkey login |
POST | /v1/auth/social/login | completeSocialAuthLogin | None | Log in with Google/OIDC |
POST | /v1/auth/mapping/recover | recoverAuthMapping | Bearer token | Recover a DFNS account mapping |
GET | /v1/api-keys/current | getCurrentApiKey | Bearer token | Read the authenticated API key metadata |
Realtime access
3 operations.
| Method | Path | Operation | Access | Summary |
|---|---|---|---|---|
POST | /v1/realtime/ticket | mintRealtimeTicket | Bearer token | Mint a realtime connection ticket |
PUT | /v1/realtime/ticket | rotateRealtimeTicket | None | Rotate a realtime connection ticket |
DELETE | /v1/realtime/ticket | revokeRealtimeTicketFamily | None | Revoke a realtime ticket family |
Markets
5 operations.
| Method | Path | Operation | Access | Summary |
|---|---|---|---|---|
GET | /v1/markets | listMarkets | None | List markets |
GET | /v1/markets/{marketId} | getMarketSnapshot | None | Get a market snapshot |
GET | /v1/markets/{marketId}/stats | getMarketStats | None | Get market stats |
GET | /v1/markets/{marketId}/book | getMarketBook | None | Get the order book |
GET | /v1/markets/{marketId}/candles | getMarketCandles | None | Get market candles |
Leaderboard
1 operations.
| Method | Path | Operation | Access | Summary |
|---|---|---|---|---|
GET | /v1/leaderboard | getLeaderboard | None | Get the projected realized-PnL leaderboard |
Market Data
1 operations.
| Method | Path | Operation | Access | Summary |
|---|---|---|---|---|
GET | /v1/market-data/candidate-markets | listMarketDataCandidateMarkets | None | List market-data candidate markets |
Accounts
23 operations.
| Method | Path | Operation | Access | Summary |
|---|---|---|---|---|
GET | /v1/accounts/{accountId} | getAccountSnapshot | Bearer token | Get an account snapshot |
GET | /v1/accounts/{accountId}/positions | getAccountPositions | Bearer token | Get account positions |
GET | /v1/accounts/{accountId}/positions/history | getAccountPositionHistory | Bearer token | Get account position history |
GET | /v1/accounts/{accountId}/transfers | getAccountTransferHistory | Bearer token | Get account transfer history |
GET | /v1/accounts/{accountId}/affiliate/earnings | getAccountAffiliateEarnings | Bearer token | Get affiliate earnings for an account |
POST | /v1/accounts/{accountId}/affiliate/registration | registerAccountAffiliate | Bearer token | Register an affiliate account |
GET | /v1/accounts/{accountId}/kyc | getAccountKycStatus | Bearer token | Get account KYC status |
POST | /v1/accounts/{accountId}/kyc/skip | skipAccountKyc | Bearer token | Skip optional account KYC |
GET | /v1/accounts/{accountId}/affiliate/profile | getAccountAffiliateProfile | Bearer token | Get an affiliate profile |
GET | /v1/accounts/{accountId}/fills | getAccountFillHistory | Bearer token | Get account fill history |
GET | /v1/accounts/{accountId}/orders | getAccountOrderHistory | Bearer token | Get account order history |
GET | /v1/accounts/{accountId}/orders/open | getAccountOpenOrders | Bearer token | Get live open orders |
POST | /v1/accounts/{accountId}/party/consent | ensureAccountReceiverConsent | Bearer token | Set up receiver-only USD.E consent |
GET | /v1/accounts/{accountId}/party | getAccountPartyOnboarding | Bearer token | Get DFNS-backed Canton Party onboarding status |
POST | /v1/accounts/{accountId}/party | initAccountPartyOnboarding | Bearer token | Initiate DFNS-backed Canton Party onboarding |
POST | /v1/accounts/{accountId}/party/complete | completeAccountPartyOnboarding | Bearer token | Complete DFNS-backed Canton Party onboarding |
POST | /v1/accounts/{accountId}/local-signing-wallet | createLocalSigningWallet | Bearer token | Create a local signing wallet |
POST | /v1/accounts/{accountId}/faucet-grant | requestAccountFaucetGrant | Bearer token | Request the account's test funds |
GET | /v1/accounts/{accountId}/local-signing-funding-intents | listLocalSigningFundingIntents | Bearer token | List owner funding intents |
POST | /v1/accounts/{accountId}/deposits | prepareLocalSigningDeposit | Bearer token | Prepare a deposit |
POST | /v1/accounts/{accountId}/deposits/confirm | confirmLocalSigningDeposit | Bearer token | Authorize a DFNS-signed Canton deposit |
PUT | /v1/accounts/{accountId}/favorites/{marketId} | putAccountMarketFavorite | Bearer token | Favorite a market |
DELETE | /v1/accounts/{accountId}/favorites/{marketId} | deleteAccountMarketFavorite | Bearer token | Unfavorite a market |
CCXT v2
21 operations.
| Method | Path | Operation | Access | Summary |
|---|---|---|---|---|
GET | /v2/markets | ccxtV2FetchMarkets | None | Fetch CCXT markets |
GET | /v2/markets/{symbol}/stats | ccxtV2FetchTickerAndFundingRate | None | Fetch a CCXT ticker and funding rate |
GET | /v2/markets/{symbol}/candles | ccxtV2FetchOhlcv | None | Fetch CCXT OHLCV |
GET | /v2/markets/{symbol}/book | ccxtV2FetchOrderBook | None | Fetch a CCXT order book |
GET | /v2/accounts/{accountId} | ccxtV2FetchBalance | Bearer token | Fetch a CCXT balance |
GET | /v2/accounts/{accountId}/positions | ccxtV2FetchPositions | Bearer token | Fetch CCXT positions |
POST | /v2/orders | ccxtV2CreateOrders | Bearer token | Create CCXT LIMIT orders |
POST | /v2/order | ccxtV2CreateOrder | Bearer token | Create one CCXT order |
POST | /v2/orders/{orderId}/cancel | ccxtV2CancelOrder | Bearer token | Cancel one CCXT order |
POST | /v2/orders/cancel | ccxtV2CancelOrders | Bearer token | Cancel CCXT orders |
GET | /v2/orders/{orderId} | ccxtV2FetchOrder | Bearer token | Fetch a CCXT order |
GET | /v2/accounts/{accountId}/orders | ccxtV2FetchOrders | Bearer token | Fetch CCXT orders |
GET | /v2/accounts/{accountId}/orders/open | ccxtV2FetchOpenOrders | Bearer token | Fetch CCXT open orders |
GET | /v2/accounts/{accountId}/fills | ccxtV2FetchMyTrades | Bearer token | Fetch CCXT private trades |
GET | /v2/not-implemented/fetch-trades | ccxtV2NotImplementedFetchTrades | None | NOT IMPLEMENTED: CCXT fetchTrades |
POST | /v2/not-implemented/cancel-all-orders | ccxtV2NotImplementedCancelAllOrders | None | NOT IMPLEMENTED: CCXT cancelAllOrders |
PUT | /v2/not-implemented/edit-order | ccxtV2NotImplementedEditOrder | None | NOT IMPLEMENTED: CCXT editOrder |
GET | /v2/not-implemented/fetch-funding-rate-history | ccxtV2NotImplementedFetchFundingRateHistory | None | NOT IMPLEMENTED: CCXT fetchFundingRateHistory |
GET | /v2/not-implemented/fetch-funding-history | ccxtV2NotImplementedFetchFundingHistory | None | NOT IMPLEMENTED: CCXT fetchFundingHistory |
PUT | /v2/not-implemented/set-leverage | ccxtV2NotImplementedSetLeverage | None | NOT IMPLEMENTED: CCXT setLeverage |
PUT | /v2/not-implemented/set-margin-mode | ccxtV2NotImplementedSetMarginMode | None | NOT IMPLEMENTED: CCXT setMarginMode |
Agent access
5 operations.
| Method | Path | Operation | Access | Summary |
|---|---|---|---|---|
POST | /v1/agent-connect/start | startAgentConnect | None | Start connecting an agent |
POST | /v1/agent-connect/complete | completeAgentConnect | None | Collect the API key of an approved agent |
POST | /v1/accounts/{accountId}/agent-connect/approve | approveAgentConnect | Bearer token | Approve an agent for the account |
GET | /v1/accounts/{accountId}/api-keys | listApiKeys | Bearer token | List the account's API keys |
DELETE | /v1/accounts/{accountId}/api-keys/{keyId} | revokeApiKey | Bearer token | Revoke an API key |