Introduction
BetDEX provides both a RESTful API and a Stream API (websocket) to ensure seamless, easy integration between the BetDEX Exchange and client applications. The RESTful API is an HTTP-based API which lets you read/GET event, market & price data, and write/POST orders. The Websocket API (wss) provides you instant notifications when there are changes to Markets, Prices, Events & your Orders. This documentation covers the BetDEX Exchange API for real-time market data, trade execution, and account management. Use the REST APIs to manage events, markets, sessions, wallets, and orders, or connect to the Stream API for real-time updates.REST API
Endpoints for managing events, markets, sessions, wallets, and orders.
Stream API
Subscribe to real-time event, market, order, and wallet updates over WebSocket.
Environments
Sandbox
REST:
https://sandbox.api.btdx.io/Stream: wss://sandbox.stream.btdx.ioProduction
REST:
https://prod.api.btdx.io/Stream: wss://prod.stream.btdx.ioGetting Started
In order to use our APIs, you require:- An ‘App ID’
- A ‘Wallet ID’
- An ‘API Key’
The server / base URL for any calls on production is https://prod.api.btdx.io/
Authentication
Using your ‘App ID’, ‘Wallet ID’ & ‘API Key’, initiate a ‘session’ by calling:POST https://prod.api.btdx.io/sessions using the App id & API key provided in the request body:
accessToken:
accessToken as the authorization value in the request header for all subsequent API calls.
| Token | Lifetime | Notes |
|---|---|---|
accessToken | 30 minutes | Used to authenticate all API requests |
refreshToken | 1 week | Use with POST /sessions/refresh to extend the session for another 30 minutes |
Placing Your First Bet
Using your sessionaccessToken as the authorization value in the request header, place an ‘order’ by calling: POST https://prod.api.btdx.io/orders using the App id & API key provided in the request body:
- walletId is what you were given when you generated your API key, and can always be found at https://betdex.com/account?tab=api-key
- marketId is the unique market id number that you wish to bet on. You can find these using GET/markets
- side is For (Back) or Against (Lay)
- outcomeId is the outcome (team, participant, selection) you wish to back or lay, again obtained in GET/markets
- price is your desired odds/price
- stake is your desired backer stake
- Note, this is always from the backer’s perspective
- So if you are laying, this is your desired profit, not your risk
- Meaning if you wish to Lay/Against Team A risking $1000 @ 1.5, your stake input (profit) must be $2000
- keepWhenInPlay is true if you wish for any unmatched stake to remain open when the event starts & market moves to in play; or false if you wish it to be cancelled
- matchBehavior is RetainUnmatched if you wish for any unmatched stake (after the order is processed) to remain unmatched as open liquidity at the price given; or CancelUnmatched if you wish us to cancel anything that does not get immediately matched
- reference is an optional string field you can provide if you wish
Error Messages
The BetDEX API uses standard HTTP status codes to indicate successful or error responses.| Status Code | Description |
|---|---|
200 | OK — Request succeeded |
400 | Bad Request — The request was invalid or malformed |
401 | Unauthorized — Authentication failed or token expired |
404 | Not Found — The requested resource does not exist |
500 | Internal Server Error — Something went wrong on the server |