StoneX Accounts API

Account information and management.

OpenAPI Specification

stonex-accounts-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: StoneX Clearing Accounts API
  description: The StoneX Clearing REST API provides programmatic access to accounts, trading, and document management for institutional clearing clients. Uses OAuth 2.0 authentication with JWT tokens (10-hour lifetime). Available in UAT and production environments.
  version: '1.0'
  contact:
    url: https://docs.clearing.stonex.com/
servers:
- url: https://api.clearing.stonex.com
  description: StoneX Clearing Production
- url: https://api.clearing.uat.stonex.com
  description: StoneX Clearing UAT (Test)
security:
- BearerAuth: []
tags:
- name: Accounts
  description: Account information and management.
paths:
  /accounts:
    get:
      operationId: listAccounts
      summary: List Accounts
      description: Retrieve a list of clearing accounts accessible to the authenticated client.
      tags:
      - Accounts
      parameters:
      - name: page
        in: query
        required: false
        schema:
          type: integer
        description: Page number.
      - name: page_size
        in: query
        required: false
        schema:
          type: integer
        description: Results per page.
      responses:
        '200':
          description: Accounts list returned successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountList'
        '401':
          description: Unauthorized.
  /accounts/{accountId}:
    get:
      operationId: getAccount
      summary: Get Account
      description: Retrieve details of a specific clearing account.
      tags:
      - Accounts
      parameters:
      - name: accountId
        in: path
        required: true
        schema:
          type: string
        description: Unique account identifier.
      responses:
        '200':
          description: Account details returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Account'
        '401':
          description: Unauthorized.
        '404':
          description: Account not found.
  /accounts/{accountId}/positions:
    get:
      operationId: getAccountPositions
      summary: Get Account Positions
      description: Retrieve current positions for a clearing account.
      tags:
      - Accounts
      parameters:
      - name: accountId
        in: path
        required: true
        schema:
          type: string
        description: Account identifier.
      responses:
        '200':
          description: Account positions returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PositionList'
        '401':
          description: Unauthorized.
        '404':
          description: Account not found.
  /accounts/{accountId}/balances:
    get:
      operationId: getAccountBalances
      summary: Get Account Balances
      description: Retrieve cash, margin, and P&L balances for a clearing account.
      tags:
      - Accounts
      parameters:
      - name: accountId
        in: path
        required: true
        schema:
          type: string
        description: Account identifier.
      responses:
        '200':
          description: Account balances returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Balance'
        '401':
          description: Unauthorized.
        '404':
          description: Account not found.
components:
  schemas:
    PositionList:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Position'
        account_id:
          type: string
        as_of:
          type: string
          format: date-time
    Position:
      type: object
      properties:
        account_id:
          type: string
          description: Account identifier.
        symbol:
          type: string
          description: Instrument symbol.
        quantity:
          type: number
          description: Position size (positive = long, negative = short).
        average_price:
          type: number
          description: Average cost basis.
        market_price:
          type: number
          description: Current market price.
        market_value:
          type: number
          description: Current market value.
        unrealized_pnl:
          type: number
          description: Unrealized profit and loss.
    AccountList:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Account'
        total:
          type: integer
        page:
          type: integer
        page_size:
          type: integer
    Balance:
      type: object
      properties:
        account_id:
          type: string
          description: Account identifier.
        cash_balance:
          type: number
          description: Cash balance.
        margin_used:
          type: number
          description: Margin currently in use.
        margin_available:
          type: number
          description: Available margin.
        unrealized_pnl:
          type: number
          description: Unrealized profit and loss.
        realized_pnl:
          type: number
          description: Realized profit and loss.
        currency:
          type: string
          description: Balance currency (ISO 4217).
        as_of:
          type: string
          format: date-time
          description: Balance timestamp.
    Account:
      type: object
      properties:
        id:
          type: string
          description: Unique account identifier.
        name:
          type: string
          description: Account name.
        account_type:
          type: string
          description: Account type classification.
        status:
          type: string
          enum:
          - active
          - inactive
          - suspended
          description: Account status.
        currency:
          type: string
          description: Base currency (ISO 4217).
        created_at:
          type: string
          format: date-time
          description: Account creation timestamp.
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: JWT token from /auth/token endpoint. Valid for 10 hours.