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.
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