Capital.com Public API Accounts API

Account information, preferences, and demo top-up.

OpenAPI Specification

capital-com-public-api-accounts-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Capital.com REST Accounts API
  description: The Capital.com REST API provides programmatic access to the Capital.com trading engine, including positions, working orders, deal confirmations, account information, account switching, transaction history, account preferences (leverage, hedging mode), market navigation, instruments, and historical price data. Authentication uses an API key plus login credentials to create a session that returns CST and X-SECURITY-TOKEN headers, which expire after ten minutes of inactivity.
  version: v1
  contact:
    name: Capital.com API Support
    url: https://open-api.capital.com
servers:
- url: https://api-capital.backend-capital.com
  description: Capital.com production REST API server
- url: https://demo-api-capital.backend-capital.com
  description: Capital.com demo (sandbox) REST API server
security:
- apiKey: []
  sessionToken: []
  securityToken: []
tags:
- name: Accounts
  description: Account information, preferences, and demo top-up.
paths:
  /api/v1/accounts:
    get:
      operationId: listAccounts
      summary: List Accounts
      description: Returns all accounts available to the authenticated client.
      tags:
      - Accounts
      responses:
        '200':
          description: A list of accounts
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericObject'
  /api/v1/accounts/preferences:
    get:
      operationId: getAccountPreferences
      summary: Get Account Preferences
      description: Returns account preferences, including leverage and hedging mode.
      tags:
      - Accounts
      responses:
        '200':
          description: Account preferences
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericObject'
    put:
      operationId: updateAccountPreferences
      summary: Update Account Preferences
      description: Updates account preferences such as leverage or hedging mode.
      tags:
      - Accounts
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenericObject'
      responses:
        '200':
          description: Preferences updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericObject'
  /api/v1/accounts/topUp:
    post:
      operationId: topUpDemoAccount
      summary: Adjust Demo Account Balance
      description: Adjusts the balance of a demo account for testing.
      tags:
      - Accounts
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenericObject'
      responses:
        '200':
          description: Demo balance adjusted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericObject'
components:
  schemas:
    GenericObject:
      type: object
      description: Generic JSON object response.
      additionalProperties: true
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: X-CAP-API-KEY
      description: Capital.com API key required for all calls.
    sessionToken:
      type: apiKey
      in: header
      name: CST
      description: Client session token returned after creating a session.
    securityToken:
      type: apiKey
      in: header
      name: X-SECURITY-TOKEN
      description: Security token returned after creating a session.
externalDocs:
  description: Capital.com Public API Documentation
  url: https://open-api.capital.com
x-generated-from: https://open-api.capital.com
x-generated-by: claude-crawl-2026-05-08