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