Betfair Accounts API

AccountAPING - account funds, details, statement, and app keys.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/betfair-accounts-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

betfair-accounts-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Betfair Exchange API (API-NG) Accounts API
  description: 'OpenAPI description of the request/response HTTP surface of the Betfair Exchange API (API-NG). Betfair exposes the exchange as lightweight JSON-RPC and REST operations over HTTPS. This document models the per-operation REST surface (each operation is an HTTP POST whose JSON body carries the operation parameters) for the Betting API (SportsAPING), the Accounts API (AccountAPING), and the Heartbeat API (HeartbeatAPING), plus the Betfair identity SSO login endpoints and the Historic Data API. The same operations are also callable as JSON-RPC 2.0 at the corresponding /json-rpc/v1 endpoints (method names like "SportsAPING/v1.0/listMarketCatalogue").

    Authentication uses two headers on every exchange call: X-Application (your Application Key) and X-Authentication (a session token / ssoid obtained from the identity SSO login). The real-time Exchange Stream API is a separate raw SSL/TCP socket protocol (CRLF-delimited JSON, NOT WebSocket) and is described in asyncapi/betfair-asyncapi.yml, not here.

    Endpoints modeled here are grounded in Betfair''s published API reference; request/response schemas are simplified to the primary fields and marked as representative where full field sets are large.'
  version: 1.0.0
  contact:
    name: API Evangelist
    email: kin@apievangelist.com
    url: https://apievangelist.com
  license:
    name: API documentation - Betfair Developer Program Terms
    url: https://developer.betfair.com/
servers:
- url: https://api.betfair.com/exchange
  description: Betfair Exchange API-NG (Betting, Accounts, Heartbeat)
security:
- appKey: []
  sessionToken: []
tags:
- name: Accounts
  description: AccountAPING - account funds, details, statement, and app keys.
paths:
  /account/rest/v1.0/getAccountFunds/:
    post:
      operationId: getAccountFunds
      tags:
      - Accounts
      summary: Get account funds
      description: Returns the available-to-bet amount, exposure, and balance for the account wallet.
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                wallet:
                  type: string
                  enum:
                  - UK
                  - AUSTRALIAN
      responses:
        '200':
          description: Account funds.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountFundsResponse'
        default:
          $ref: '#/components/responses/AccountError'
  /account/rest/v1.0/getAccountDetails/:
    post:
      operationId: getAccountDetails
      tags:
      - Accounts
      summary: Get account details
      description: Returns the account's details - name, currency, locale, region, timezone, and discount rate.
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
      responses:
        '200':
          description: Account details.
          content:
            application/json:
              schema:
                type: object
        default:
          $ref: '#/components/responses/AccountError'
  /account/rest/v1.0/getAccountStatement/:
    post:
      operationId: getAccountStatement
      tags:
      - Accounts
      summary: Get account statement
      description: Returns the account statement - a ledger of financial transactions on the account.
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                locale:
                  type: string
                fromRecord:
                  type: integer
                recordCount:
                  type: integer
                itemDateRange:
                  $ref: '#/components/schemas/TimeRange'
                includeItem:
                  type: string
                  enum:
                  - ALL
                  - DEPOSITS_WITHDRAWALS
                  - EXCHANGE
                  - POKER_ROOM
      responses:
        '200':
          description: Account statement.
          content:
            application/json:
              schema:
                type: object
        default:
          $ref: '#/components/responses/AccountError'
  /account/rest/v1.0/listCurrencyRates/:
    post:
      operationId: listCurrencyRates
      tags:
      - Accounts
      summary: List currency rates
      description: Returns a list of currency rates based on a given base currency.
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                fromCurrency:
                  type: string
      responses:
        '200':
          description: Currency rates.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
        default:
          $ref: '#/components/responses/AccountError'
  /account/rest/v1.0/getDeveloperAppKeys/:
    post:
      operationId: getDeveloperAppKeys
      tags:
      - Accounts
      summary: Get developer app keys
      description: Returns the application keys owned by the developer/vendor calling the operation.
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
      responses:
        '200':
          description: Developer application keys.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
        default:
          $ref: '#/components/responses/AccountError'
components:
  schemas:
    TimeRange:
      type: object
      properties:
        from:
          type: string
          format: date-time
        to:
          type: string
          format: date-time
    ApiError:
      type: object
      description: Betfair APINGException / AccountAPINGException envelope. In JSON-RPC the error is returned under the JSON-RPC "error" member; in REST it is the HTTP 400 body.
      properties:
        faultcode:
          type: string
        faultstring:
          type: string
        detail:
          type: object
          properties:
            APINGException:
              type: object
              properties:
                errorCode:
                  type: string
                  enum:
                  - TOO_MUCH_DATA
                  - INVALID_INPUT_DATA
                  - INVALID_SESSION_INFORMATION
                  - NO_APP_KEY
                  - NO_SESSION
                  - INVALID_APP_KEY
                  - TOO_MANY_REQUESTS
                  - SERVICE_BUSY
                  - TIMEOUT_ERROR
                  - INVALID_JSON
                  - ACCESS_DENIED
                errorDetails:
                  type: string
                requestUUID:
                  type: string
    AccountFundsResponse:
      type: object
      properties:
        availableToBetBalance:
          type: number
        exposure:
          type: number
        retainedCommission:
          type: number
        exposureLimit:
          type: number
        discountRate:
          type: number
        pointsBalance:
          type: integer
        wallet:
          type: string
  responses:
    AccountError:
      description: Accounts API error. Returns an AccountAPINGException with an errorCode such as INVALID_SESSION_INFORMATION or NO_APP_KEY.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
  securitySchemes:
    appKey:
      type: apiKey
      in: header
      name: X-Application
      description: The developer Application Key (delayed or live).
    sessionToken:
      type: apiKey
      in: header
      name: X-Authentication
      description: The session token (ssoid) obtained from identity SSO login.