Skip to content
Docs
Developers

REST API reference

Every public REST operation, generated from the published OpenAPI contract.

Try it environment

https://dev.edel-api.xyz

Changing the environment clears the bearer token, request body and parameters.

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.

Limit order request
{
  "accountId": "{{accountId}}",
  "marketId": "{{marketId}}",
  "clientOrderId": "example-order-1",
  "side": "buy",
  "orderType": "limit",
  "price": "65000",
  "quantity": "0.001",
  "postOnly": false
}
StatusMeaning
202Accepted for processing
400Invalid request
401Unauthorized
403Forbidden
409Request rejected by the existing venue contract
429Rate limit exceeded
503Service or requested capability unavailable

System

3 operations.

MethodPathOperationAccessSummary
GET/healthgetServiceHealthNoneGet service health
GET/readygetServiceReadinessNoneGet service readiness
GET/openapi.jsongetOpenApiDocumentNoneFetch the OpenAPI document

Affiliates

1 operations.

MethodPathOperationAccessSummary
GET/v1/affiliate/availabilitygetAffiliateAvailabilityNoneGet public affiliate availability

Orders

6 operations.

MethodPathOperationAccessSummary
POST/v1/ordersplaceOrderBearer tokenPlace an order
POST/v1/orders/batchplaceOrderBatchBearer tokenPlace a LIMIT order batch
POST/v1/orders/batch/cancelcancelOrderBatchBearer tokenCancel an order batch
POST/v1/orders/previewpreviewOrderBearer tokenPreview an order
GET/v1/orders/{orderId}getOrderBearer tokenGet an order
POST/v1/orders/{orderId}/cancelcancelOrderBearer tokenCancel an order

Withdrawals

4 operations.

MethodPathOperationAccessSummary
POST/v1/withdrawalscreateWithdrawalBearer tokenRequest a withdrawal
GET/v1/withdrawals/{withdrawalId}getWithdrawalBearer tokenGet a withdrawal
POST/v1/withdrawals/{withdrawalId}/authorizeauthorizeWithdrawalBearer tokenAuthorize a withdrawal
POST/v1/withdrawals/{withdrawalId}/confirmconfirmDfnsWithdrawalBearer tokenConfirm an owner-signed withdrawal step

Auth

9 operations.

MethodPathOperationAccessSummary
GET/v1/auth/capabilitiesgetAuthCapabilitiesNoneGet authentication capabilities
POST/v1/auth/social/registerinitiateSocialAuthRegistrationNoneStart Google/OIDC registration
POST/v1/auth/social/register/recoverrecoverSocialAuthRegistrationNoneResolve a Google registration outcome
POST/v1/auth/register/completecompleteAuthRegistrationNoneComplete DFNS end-user registration
POST/v1/auth/login/initinitiateAuthLoginNoneStart passkey login
POST/v1/auth/login/completecompleteAuthLoginNoneComplete passkey login
POST/v1/auth/social/logincompleteSocialAuthLoginNoneLog in with Google/OIDC
POST/v1/auth/mapping/recoverrecoverAuthMappingBearer tokenRecover a DFNS account mapping
GET/v1/api-keys/currentgetCurrentApiKeyBearer tokenRead the authenticated API key metadata

Realtime access

3 operations.

MethodPathOperationAccessSummary
POST/v1/realtime/ticketmintRealtimeTicketBearer tokenMint a realtime connection ticket
PUT/v1/realtime/ticketrotateRealtimeTicketNoneRotate a realtime connection ticket
DELETE/v1/realtime/ticketrevokeRealtimeTicketFamilyNoneRevoke a realtime ticket family

Markets

5 operations.

MethodPathOperationAccessSummary
GET/v1/marketslistMarketsNoneList markets
GET/v1/markets/{marketId}getMarketSnapshotNoneGet a market snapshot
GET/v1/markets/{marketId}/statsgetMarketStatsNoneGet market stats
GET/v1/markets/{marketId}/bookgetMarketBookNoneGet the order book
GET/v1/markets/{marketId}/candlesgetMarketCandlesNoneGet market candles

Leaderboard

1 operations.

MethodPathOperationAccessSummary
GET/v1/leaderboardgetLeaderboardNoneGet the projected realized-PnL leaderboard

Market Data

1 operations.

MethodPathOperationAccessSummary
GET/v1/market-data/candidate-marketslistMarketDataCandidateMarketsNoneList market-data candidate markets

Accounts

23 operations.

MethodPathOperationAccessSummary
GET/v1/accounts/{accountId}getAccountSnapshotBearer tokenGet an account snapshot
GET/v1/accounts/{accountId}/positionsgetAccountPositionsBearer tokenGet account positions
GET/v1/accounts/{accountId}/positions/historygetAccountPositionHistoryBearer tokenGet account position history
GET/v1/accounts/{accountId}/transfersgetAccountTransferHistoryBearer tokenGet account transfer history
GET/v1/accounts/{accountId}/affiliate/earningsgetAccountAffiliateEarningsBearer tokenGet affiliate earnings for an account
POST/v1/accounts/{accountId}/affiliate/registrationregisterAccountAffiliateBearer tokenRegister an affiliate account
GET/v1/accounts/{accountId}/kycgetAccountKycStatusBearer tokenGet account KYC status
POST/v1/accounts/{accountId}/kyc/skipskipAccountKycBearer tokenSkip optional account KYC
GET/v1/accounts/{accountId}/affiliate/profilegetAccountAffiliateProfileBearer tokenGet an affiliate profile
GET/v1/accounts/{accountId}/fillsgetAccountFillHistoryBearer tokenGet account fill history
GET/v1/accounts/{accountId}/ordersgetAccountOrderHistoryBearer tokenGet account order history
GET/v1/accounts/{accountId}/orders/opengetAccountOpenOrdersBearer tokenGet live open orders
POST/v1/accounts/{accountId}/party/consentensureAccountReceiverConsentBearer tokenSet up receiver-only USD.E consent
GET/v1/accounts/{accountId}/partygetAccountPartyOnboardingBearer tokenGet DFNS-backed Canton Party onboarding status
POST/v1/accounts/{accountId}/partyinitAccountPartyOnboardingBearer tokenInitiate DFNS-backed Canton Party onboarding
POST/v1/accounts/{accountId}/party/completecompleteAccountPartyOnboardingBearer tokenComplete DFNS-backed Canton Party onboarding
POST/v1/accounts/{accountId}/local-signing-walletcreateLocalSigningWalletBearer tokenCreate a local signing wallet
POST/v1/accounts/{accountId}/faucet-grantrequestAccountFaucetGrantBearer tokenRequest the account's test funds
GET/v1/accounts/{accountId}/local-signing-funding-intentslistLocalSigningFundingIntentsBearer tokenList owner funding intents
POST/v1/accounts/{accountId}/depositsprepareLocalSigningDepositBearer tokenPrepare a deposit
POST/v1/accounts/{accountId}/deposits/confirmconfirmLocalSigningDepositBearer tokenAuthorize a DFNS-signed Canton deposit
PUT/v1/accounts/{accountId}/favorites/{marketId}putAccountMarketFavoriteBearer tokenFavorite a market
DELETE/v1/accounts/{accountId}/favorites/{marketId}deleteAccountMarketFavoriteBearer tokenUnfavorite a market

CCXT v2

21 operations.

MethodPathOperationAccessSummary
GET/v2/marketsccxtV2FetchMarketsNoneFetch CCXT markets
GET/v2/markets/{symbol}/statsccxtV2FetchTickerAndFundingRateNoneFetch a CCXT ticker and funding rate
GET/v2/markets/{symbol}/candlesccxtV2FetchOhlcvNoneFetch CCXT OHLCV
GET/v2/markets/{symbol}/bookccxtV2FetchOrderBookNoneFetch a CCXT order book
GET/v2/accounts/{accountId}ccxtV2FetchBalanceBearer tokenFetch a CCXT balance
GET/v2/accounts/{accountId}/positionsccxtV2FetchPositionsBearer tokenFetch CCXT positions
POST/v2/ordersccxtV2CreateOrdersBearer tokenCreate CCXT LIMIT orders
POST/v2/orderccxtV2CreateOrderBearer tokenCreate one CCXT order
POST/v2/orders/{orderId}/cancelccxtV2CancelOrderBearer tokenCancel one CCXT order
POST/v2/orders/cancelccxtV2CancelOrdersBearer tokenCancel CCXT orders
GET/v2/orders/{orderId}ccxtV2FetchOrderBearer tokenFetch a CCXT order
GET/v2/accounts/{accountId}/ordersccxtV2FetchOrdersBearer tokenFetch CCXT orders
GET/v2/accounts/{accountId}/orders/openccxtV2FetchOpenOrdersBearer tokenFetch CCXT open orders
GET/v2/accounts/{accountId}/fillsccxtV2FetchMyTradesBearer tokenFetch CCXT private trades
GET/v2/not-implemented/fetch-tradesccxtV2NotImplementedFetchTradesNoneNOT IMPLEMENTED: CCXT fetchTrades
POST/v2/not-implemented/cancel-all-ordersccxtV2NotImplementedCancelAllOrdersNoneNOT IMPLEMENTED: CCXT cancelAllOrders
PUT/v2/not-implemented/edit-orderccxtV2NotImplementedEditOrderNoneNOT IMPLEMENTED: CCXT editOrder
GET/v2/not-implemented/fetch-funding-rate-historyccxtV2NotImplementedFetchFundingRateHistoryNoneNOT IMPLEMENTED: CCXT fetchFundingRateHistory
GET/v2/not-implemented/fetch-funding-historyccxtV2NotImplementedFetchFundingHistoryNoneNOT IMPLEMENTED: CCXT fetchFundingHistory
PUT/v2/not-implemented/set-leverageccxtV2NotImplementedSetLeverageNoneNOT IMPLEMENTED: CCXT setLeverage
PUT/v2/not-implemented/set-margin-modeccxtV2NotImplementedSetMarginModeNoneNOT IMPLEMENTED: CCXT setMarginMode

Agent access

5 operations.

MethodPathOperationAccessSummary
POST/v1/agent-connect/startstartAgentConnectNoneStart connecting an agent
POST/v1/agent-connect/completecompleteAgentConnectNoneCollect the API key of an approved agent
POST/v1/accounts/{accountId}/agent-connect/approveapproveAgentConnectBearer tokenApprove an agent for the account
GET/v1/accounts/{accountId}/api-keyslistApiKeysBearer tokenList the account's API keys
DELETE/v1/accounts/{accountId}/api-keys/{keyId}revokeApiKeyBearer tokenRevoke an API key