For the complete documentation index, see llms.txt. This page is also available as Markdown.

BetDEX API

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.

You can see our docs here:

Getting Started

In order to use our APIs, you require:

  • an β€˜App ID’

  • a 'Wallet ID'

  • An β€˜API Key’

To get these, follow the steps outlined on How to get my 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:

The response provides an accessToken:

Include the session 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 session accessToken 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:

Where:

  • 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

Usage & Rate Limits

BetDEX strives to provide a strong experience for all API & website customers alike - we simply want to allow you to trade with us however you wish.

In order to maintain a robust Exchange product for all, general usage & rate limits of 500 requests per second will be applied.

This currently is across both GET & POST calls, but will be split out in the near-future.

Terms of Use

You can view the latest Terms of Use for using the BetDEX API here - https://terms.btdx.io/betdexApi/1.0.0.pdf

Last updated 25th May 2026

Last updated