Trading 212 Historical events API

Review your account's trading history. Access detailed records of past orders, dividend payments, and cash transactions, or generate downloadable CSV reports for analysis and record-keeping.

Operations 5

GET /api/v0/equity/history/dividends Get paid out dividends #
GET /api/v0/equity/history/exports List generated reports #
POST /api/v0/equity/history/exports Request a CSV report #
GET /api/v0/equity/history/orders Get historical orders data #
GET /api/v0/equity/history/transactions Get transactions #

Documentation

Specifications

Schemas & Data

Other Resources

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/trading212-historical-events-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 form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

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

OpenAPI Specification

trading212-historical-events-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: Welcome to the official API reference for the Trading 212 Public API!
  title: Trading 212 Public Historical events API
  version: v0
servers:
- url: https://demo.trading212.com
- url: https://live.trading212.com
tags:
- description: 'Review your account''s trading history. Access detailed records of past

    orders, dividend payments, and cash transactions, or generate downloadable

    CSV reports for analysis and record-keeping.'
  name: Historical events
paths:
  /api/v0/equity/history/dividends:
    get:
      description: '**Rate limit:** 6 req / 1m0s'
      operationId: dividends
      parameters:
      - description: Pagination cursor
        in: query
        name: cursor
        required: false
        schema:
          format: int64
          type: integer
      - description: Ticker filter
        in: query
        name: ticker
        required: false
        schema:
          type: string
      - description: 'Max items: 50'
        example: 21
        in: query
        name: limit
        required: false
        schema:
          default: 20
          format: int32
          type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedResponseHistoryDividendItem'
          description: OK
        '400':
          description: Bad filtering arguments
        '401':
          description: Bad API key
        '403':
          description: Scope( history:dividends ) missing for API key
        '408':
          description: Timed-out
        '429':
          description: 'Limited: 6 / 1m0s'
      security:
      - authWithSecretKey: []
        legacyApiKeyHeader: []
      summary: Get paid out dividends
      tags:
      - Historical events
  /api/v0/equity/history/exports:
    get:
      description: 'Retrieves a list of all requested CSV reports and their current status.


        **Asynchronous Workflow:**


        1. Call `POST /history/exports` to request a report. You will receive a

        `reportId`.


        2. Periodically call this endpoint (`GET /history/exports`) to check the

        `status` of the report corresponding to your `reportId`.


        3. Once the status is `Finished`, the `downloadLink` field will contain

        a URL to download the CSV file.


        **Rate limit:** 1 req / 1m0s'
      operationId: getReports
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/ReportResponse'
                type: array
          description: OK
        '400':
          description: Bad filtering arguments
        '401':
          description: Bad API key
        '403':
          description: Missing Permissions
        '408':
          description: Timed-out
        '429':
          description: 'Limited: 1 / 1m0s'
      security:
      - authWithSecretKey: []
        legacyApiKeyHeader: []
      summary: List generated reports
      tags:
      - Historical events
    post:
      description: 'Initiates the generation of a CSV report containing historical account

        data. This is an asynchronous operation. The response will include a

        `reportId` which you can use to track the status of the generation

        process using the `GET /history/exports` endpoint.


        **Rate limit:** 1 req / 30s'
      operationId: requestReport
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PublicReportRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnqueuedReportResponse'
          description: OK
        '400':
          description: Bad filtering arguments
        '401':
          description: Bad API key
        '403':
          description: Missing Permissions
        '408':
          description: Timed-out
        '429':
          description: 'Limited: 1 / 30s'
      security:
      - authWithSecretKey: []
        legacyApiKeyHeader: []
      summary: Request a CSV report
      tags:
      - Historical events
  /api/v0/equity/history/orders:
    get:
      description: '**Rate limit:** 6 req / 1m0s'
      operationId: orders_1
      parameters:
      - description: Pagination cursor
        in: query
        name: cursor
        required: false
        schema:
          format: int64
          type: integer
      - description: Ticker filter
        in: query
        name: ticker
        required: false
        schema:
          type: string
      - description: 'Max items: 50'
        example: 21
        in: query
        name: limit
        required: false
        schema:
          default: 20
          format: int32
          type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedResponseHistoricalOrder'
          description: OK
        '400':
          description: Bad filtering arguments
        '401':
          description: Bad API key
        '403':
          description: Scope( history:orders ) missing for API key
        '408':
          description: Timed-out
        '429':
          description: 'Limited: 6 / 1m0s'
      security:
      - authWithSecretKey: []
        legacyApiKeyHeader: []
      summary: Get historical orders data
      tags:
      - Historical events
  /api/v0/equity/history/transactions:
    get:
      description: 'Fetch superficial information about movements to and from your account


        **Rate limit:** 6 req / 1m0s'
      operationId: transactions
      parameters:
      - description: Pagination cursor
        in: query
        name: cursor
        required: false
        schema:
          type: string
      - description: Retrieve transactions starting from the specified time
        in: query
        name: time
        required: false
        schema:
          format: date-time
          type: string
      - description: 'Max items: 50'
        example: 21
        in: query
        name: limit
        required: false
        schema:
          default: 20
          format: int32
          type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedResponseHistoryTransactionItem'
          description: OK
        '400':
          description: Bad filtering arguments
        '401':
          description: Bad API key
        '403':
          description: Scope( history:transactions ) missing for API key
        '408':
          description: Timed-out
        '429':
          description: 'Limited: 6 / 1m0s'
      security:
      - authWithSecretKey: []
        legacyApiKeyHeader: []
      summary: Get transactions
      tags:
      - Historical events
components:
  schemas:
    EnqueuedReportResponse:
      properties:
        reportId:
          format: int64
          type: integer
      type: object
    FillWalletImpact:
      properties:
        currency:
          type: string
        fxRate:
          type: number
        netValue:
          type: number
        realisedProfitLoss:
          type: number
        taxes:
          items:
            $ref: '#/components/schemas/Tax'
          type: array
      type: object
    ReportResponse:
      properties:
        dataIncluded:
          $ref: '#/components/schemas/ReportDataIncluded'
        downloadLink:
          type: string
        reportId:
          format: int64
          type: integer
        status:
          enum:
          - Queued
          - Processing
          - Running
          - Canceled
          - Failed
          - Finished
          type: string
        timeFrom:
          format: date-time
          type: string
        timeTo:
          format: date-time
          type: string
      type: object
    Instrument:
      description: Instrument information as given by /instruments endpoint.
      properties:
        currency:
          description: Instrument currency in ISO 4217 format.
          type: string
        isin:
          description: ISIN of the instrument.
          type: string
        name:
          description: Name of the instrument.
          type: string
        ticker:
          description: Unique instrument identifier.
          example: AAPL_US_EQ
          type: string
      type: object
    HistoryDividendItem:
      properties:
        amount:
          description: In account's primary currency.
          type: number
        amountInEuro:
          type: number
        currency:
          description: The account's primary currency.
          type: string
        grossAmountPerShare:
          description: In instrument currency
          type: number
        instrument:
          $ref: '#/components/schemas/Instrument'
        paidOn:
          format: date-time
          type: string
        quantity:
          type: number
        reference:
          type: string
        ticker:
          type: string
        tickerCurrency:
          type: string
        type:
          enum:
          - ORDINARY
          - BONUS
          - PROPERTY_INCOME
          - RETURN_OF_CAPITAL_NON_US
          - DEMERGER
          - INTEREST
          - CAPITAL_GAINS_DISTRIBUTION_NON_US
          - INTERIM_LIQUIDATION
          - ORDINARY_MANUFACTURED_PAYMENT
          - BONUS_MANUFACTURED_PAYMENT
          - PROPERTY_INCOME_MANUFACTURED_PAYMENT
          - RETURN_OF_CAPITAL_NON_US_MANUFACTURED_PAYMENT
          - DEMERGER_MANUFACTURED_PAYMENT
          - INTEREST_MANUFACTURED_PAYMENT
          - CAPITAL_GAINS_DISTRIBUTION_NON_US_MANUFACTURED_PAYMENT
          - INTERIM_LIQUIDATION_MANUFACTURED_PAYMENT
          - INTEREST_PAID_BY_US_OBLIGORS
          - INTEREST_PAID_BY_FOREIGN_CORPORATIONS
          - DIVIDENDS_PAID_BY_US_CORPORATIONS
          - DIVIDENDS_PAID_BY_FOREIGN_CORPORATIONS
          - CAPITAL_GAINS
          - REAL_PROPERTY_INCOME_AND_NATURAL_RESOURCES_ROYALTIES
          - OTHER_INCOME
          - QUALIFIED_INVESTMENT_ENTITY
          - TRUST_DISTRIBUTION
          - PUBLICLY_TRADED_PARTNERSHIP_DISTRIBUTION
          - CAPITAL_GAINS_DISTRIBUTION
          - RETURN_OF_CAPITAL
          - OTHER_DIVIDEND_EQUIVALENT
          - TAX_EVENT_1446F_FOR_PUBLICLY_TRADED_SECURITIES
          - PTP_UNCHARACTERISED_INCOME
          - MULTIPLE_1042S_TAX_COMPONENTS
          - DIVIDEND
          - SHORT_TERM_CAPITAL_GAINS
          - LONG_TERM_CAPITAL_GAINS
          - PROPERTY_INCOME_DISTRIBUTION
          - TAX_EXEMPTED
          - INTEREST_PAID_BY_US_OBLIGORS_MANUFACTURED_PAYMENT
          - INTEREST_PAID_BY_FOREIGN_CORPORATIONS_MANUFACTURED_PAYMENT
          - DIVIDENDS_PAID_BY_US_CORPORATIONS_MANUFACTURED_PAYMENT
          - DIVIDENDS_PAID_BY_FOREIGN_CORPORATIONS_MANUFACTURED_PAYMENT
          - CAPITAL_GAINS_MANUFACTURED_PAYMENT
          - REAL_PROPERTY_INCOME_AND_NATURAL_RESOURCES_ROYALTIES_MANUFACTURED_PAYMENT
          - OTHER_INCOME_MANUFACTURED_PAYMENT
          - QUALIFIED_INVESTMENT_ENTITY_MANUFACTURED_PAYMENT
          - TRUST_DISTRIBUTION_MANUFACTURED_PAYMENT
          - PUBLICLY_TRADED_PARTNERSHIP_DISTRIBUTION_MANUFACTURED_PAYMENT
          - CAPITAL_GAINS_DISTRIBUTION_MANUFACTURED_PAYMENT
          - RETURN_OF_CAPITAL_MANUFACTURED_PAYMENT
          - OTHER_DIVIDEND_EQUIVALENT_MANUFACTURED_PAYMENT
          - TAX_EVENT_1446F_FOR_PUBLICLY_TRADED_SECURITIES_MANUFACTURED_PAYMENT
          - PTP_UNCHARACTERISED_INCOME_MANUFACTURED_PAYMENT
          - MULTIPLE_1042S_TAX_COMPONENTS_MANUFACTURED_PAYMENT
          - DIVIDEND_MANUFACTURED_PAYMENT
          - SHORT_TERM_CAPITAL_GAINS_MANUFACTURED_PAYMENT
          - LONG_TERM_CAPITAL_GAINS_MANUFACTURED_PAYMENT
          - PROPERTY_INCOME_DISTRIBUTION_MANUFACTURED_PAYMENT
          - TAX_EXEMPTED_MANUFACTURED_PAYMENT
          type: string
      type: object
    ReportDataIncluded:
      properties:
        includeDividends:
          type: boolean
        includeInterest:
          type: boolean
        includeOrders:
          type: boolean
        includeTransactions:
          type: boolean
      type: object
    PaginatedResponseHistoryDividendItem:
      properties:
        items:
          items:
            $ref: '#/components/schemas/HistoryDividendItem'
          type: array
        nextPagePath:
          type: string
      type: object
    PaginatedResponseHistoricalOrder:
      properties:
        items:
          items:
            $ref: '#/components/schemas/HistoricalOrder'
          type: array
        nextPagePath:
          type: string
      type: object
    Fill:
      properties:
        filledAt:
          format: date-time
          type: string
        id:
          format: int64
          type: integer
        price:
          type: number
        quantity:
          type: number
        tradingMethod:
          enum:
          - TOTV
          - OTC
          type: string
        type:
          enum:
          - TRADE
          - STOCK_SPLIT
          - STOCK_DISTRIBUTION
          - FOP
          - FOP_CORRECTION
          - CUSTOM_STOCK_DISTRIBUTION
          - EQUITY_RIGHTS
          - SCRIP_STOCK_DIVIDENDS
          - STOCK_DIVIDENDS
          - STOCK_ACQUISITION
          - CASH_AND_STOCK_ACQUISITION
          - SPIN_OFF
          type: string
        walletImpact:
          $ref: '#/components/schemas/FillWalletImpact'
      type: object
    PublicReportRequest:
      properties:
        dataIncluded:
          $ref: '#/components/schemas/ReportDataIncluded'
        timeFrom:
          format: date-time
          type: string
        timeTo:
          format: date-time
          type: string
      type: object
    PaginatedResponseHistoryTransactionItem:
      properties:
        items:
          items:
            $ref: '#/components/schemas/HistoryTransactionItem'
          type: array
        nextPagePath:
          type: string
      type: object
    Order:
      properties:
        createdAt:
          description: The ISO 8601 formatted date of when the order was created.
          format: date-time
          type: string
        currency:
          description: The currency used for the order in ISO 4217 format.
          type: string
        extendedHours:
          description: If true, the order is eligible for execution outside regular trading hours.
          type: boolean
        filledQuantity:
          description: The number of shares that have been successfully executed. Applicable to quantity orders.
          type: number
        filledValue:
          description: 'The total monetary value of the executed portion of the order. Applicable to orders placed by value.Note: Placing orders by value is not currently supported via the API but can be done through other Trading 212 platforms.'
          type: number
        id:
          description: A unique, system-generated identifier for the order.
          format: int64
          type: integer
        initiatedFrom:
          description: How the order was initiated.
          enum:
          - API
          - IOS
          - ANDROID
          - WEB
          - SYSTEM
          - AUTOINVEST
          - INSTRUMENT_AUTOINVEST
          type: string
        instrument:
          $ref: '#/components/schemas/Instrument'
        limitPrice:
          description: Applicable to LIMIT and STOP_LIMIT orders.
          type: number
        quantity:
          description: The total number of shares requested. Applicable to quantity orders.
          type: number
        side:
          description: Indicates whether the order is BUY or SELL.
          enum:
          - BUY
          - SELL
          type: string
        status:
          description: The current state of the order in its lifecycle.
          enum:
          - LOCAL
          - UNCONFIRMED
          - CONFIRMED
          - NEW
          - CANCELLING
          - CANCELLED
          - PARTIALLY_FILLED
          - FILLED
          - REJECTED
          - REPLACING
          - REPLACED
          type: string
        stopPrice:
          description: Applicable to STOP and STOP_LIMIT orders.
          type: number
        strategy:
          description: The strategy used to place the order, either by QUANTITY or VALUE. The API currently only supports placing orders by QUANTITY.
          enum:
          - QUANTITY
          - VALUE
          type: string
        ticker:
          description: Unique instrument identifier. Get from the /instruments endpoint
          example: AAPL_US_EQ
          type: string
        timeInForce:
          $ref: '#/components/schemas/TimeValidity'
        type:
          enum:
          - LIMIT
          - STOP
          - MARKET
          - STOP_LIMIT
          type: string
        value:
          description: The total monetary value of the order. Applicable to value orders.
          type: number
      type: object
    Tax:
      properties:
        chargedAt:
          format: date-time
          type: string
        currency:
          type: string
        name:
          enum:
          - COMMISSION_TURNOVER
          - CURRENCY_CONVERSION_FEE
          - FINRA_FEE
          - FRENCH_TRANSACTION_TAX
          - PTM_LEVY
          - STAMP_DUTY
          - STAMP_DUTY_RESERVE_TAX
          - TRANSACTION_FEE
          type: string
        quantity:
          type: number
      type: object
    HistoricalOrder:
      properties:
        fill:
          $ref: '#/components/schemas/Fill'
        order:
          $ref: '#/components/schemas/Order'
      type: object
    TimeValidity:
      description: "Specifies how long the order remains active: \n* DAY: The order will automatically expire if not executed by midnight in the time zone of the instrument's exchange.\n* GOOD_TILL_CANCEL: The order remains active indefinitely until it is either filled or explicitly cancelled by you."
      enum:
      - DAY
      - GOOD_TILL_CANCEL
      type: string
    HistoryTransactionItem:
      properties:
        amount:
          description: Amount in the currency of the transaction
          type: number
        currency:
          description: Currency of the transaction
          type: string
        dateTime:
          format: date-time
          type: string
        reference:
          description: ID
          type: string
        type:
          enum:
          - WITHDRAW
          - DEPOSIT
          - FEE
          - TRANSFER
          type: string
      type: object
  securitySchemes:
    authWithSecretKey:
      description: Use your API Key as the username and your API Secret as the password
      scheme: basic
      type: http
    legacyApiKeyHeader:
      in: header
      name: Authorization
      type: apiKey