> ## Documentation Index
> Fetch the complete documentation index at: https://docs.itoflow.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Resolve canonical instrument identifiers in bulk

> Resolve up to 3,000 instruments in one call, for example every name in a holdings file before pricing it. Each item takes the evidence `GET /symbols/resolve` takes, and each row answers as that route would, in request order with `index`. A row that cannot be resolved fails alone; the call still answers 200. A row with `resolution_unavailable` was not finished within this call: send those rows again. A fault that sending a row again would not fix, such as a database failure, fails the call.

Operation ID: post__symbols_resolve_batch.



## OpenAPI

````yaml /openapi/itoflow-public.openapi.json post /symbols/resolve/batch
openapi: 3.1.0
info:
  description: >-
    All Itoflow APIs are experimental and may change without notice. Read-only
    operations marked interactive can be tried from the documentation; the
    others are reference-only.
  title: Itoflow Developer API
  version: 1.0.0
servers:
  - description: Itoflow API
    url: https://api.itoflow.ai
security: []
tags:
  - name: Account
  - name: Billing
  - name: Brokers
  - name: Chat
  - name: Connected MCP servers
  - name: GitHub
  - name: Market data
  - name: Monitors
  - name: Notifications
  - name: Portfolios
  - name: Risk runs
  - name: Sharing and data
  - name: Strategies
paths:
  /symbols/resolve/batch:
    post:
      tags:
        - Market data
      summary: Resolve canonical instrument identifiers in bulk
      description: >-
        Resolve up to 3,000 instruments in one call, for example every name in a
        holdings file before pricing it. Each item takes the evidence `GET
        /symbols/resolve` takes, and each row answers as that route would, in
        request order with `index`. A row that cannot be resolved fails alone;
        the call still answers 200. A row with `resolution_unavailable` was not
        finished within this call: send those rows again. A fault that sending a
        row again would not fix, such as a database failure, fails the call.


        Operation ID: post__symbols_resolve_batch.
      operationId: post__symbols_resolve_batch
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InstrumentResolveBatchRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InstrumentResolveBatchResponse'
          description: One resolution row per item
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Invalid batch request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Authentication required
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: >-
            A fault that sending the rows again would not fix, such as a
            database failure
      security:
        - bearerAuth: []
components:
  schemas:
    InstrumentResolveBatchRequest:
      additionalProperties: false
      properties:
        items:
          description: >-
            Identifier evidence for each instrument, with the same fields as the
            `GET /symbols/resolve` query. Rows come back in this order.
          example:
            - exchange: US
              ticker: AAPL
            - isin: US5949181045
            - mic: XNAS
              ticker: QQQ
          items:
            $ref: '#/components/schemas/InstrumentResolveBatchItem'
          maxItems: 3000
          minItems: 1
          type: array
      required:
        - items
      type: object
    InstrumentResolveBatchResponse:
      properties:
        results:
          description: >-
            One row per item, in request order. A row answers as `GET
            /symbols/resolve` would, plus `index`; `resolution_unavailable`
            means send that row again.
          items:
            $ref: '#/components/schemas/InstrumentResolveBatchRow'
          type: array
      required:
        - results
      type: object
    Error:
      properties:
        available:
          description: Optional available amount or value
          type: string
        billing_action:
          $ref: '#/components/schemas/BillingAction'
        code:
          description: Machine-readable error code
          type: string
        currentVersion:
          description: Current server-side version, when relevant
          type: number
        details:
          description: Optional structured error details
        error:
          description: Error type or code
          type: string
        expectedVersion:
          description: Client-provided expected version, when relevant
          type: number
        message:
          description: Human-readable error message
          type: string
        requested:
          description: Optional requested amount or value
          type: string
        usage:
          description: Optional usage metadata for limit errors
      required:
        - error
      type: object
    InstrumentResolveBatchItem:
      additionalProperties: false
      properties:
        broker_symbol:
          maxLength: 80
          minLength: 1
          type: string
        company_name:
          maxLength: 500
          minLength: 1
          type: string
        currency:
          maxLength: 10
          minLength: 1
          type: string
        exchange:
          description: >-
            Supported Itoflow exchange code such as US or LSE; do not pass a
            venue name such as NASDAQ.
          maxLength: 20
          minLength: 1
          type: string
        isin:
          maxLength: 20
          minLength: 1
          type: string
        mic:
          description: >-
            ISO 10383 market identifier code used as venue evidence, such as
            XNAS.
          maxLength: 10
          minLength: 1
          type: string
        siq_symbol:
          maxLength: 70
          minLength: 1
          type: string
        ticker:
          description: >-
            Ticker on the supplied exchange or MIC. Letters followed by one dot,
            slash or space and one or two class letters use the dashed listing
            when it exists (BRK.B, BRK/B or BRK B becomes BRK-B). BRKB is not
            guessed. Other evidence must agree.
          maxLength: 80
          minLength: 1
          type: string
      type: object
    InstrumentResolveBatchRow:
      anyOf:
        - $ref: '#/components/schemas/InstrumentResolveBatchSuccessRow'
        - $ref: '#/components/schemas/InstrumentResolveBatchGenericFailureRow'
        - $ref: '#/components/schemas/InstrumentResolveBatchUnsupportedExchangeRow'
        - $ref: '#/components/schemas/InstrumentResolveBatchUnsupportedMicRow'
        - $ref: '#/components/schemas/InstrumentResolveBatchUnavailableRow'
    BillingAction:
      description: Action that resolves a billing-related rejection
      properties:
        href:
          type: string
        kind:
          enum:
            - upgrade
            - payment_method
            - spending_cap
            - billing
          type: string
        label:
          type: string
      required:
        - href
        - label
        - kind
      type: object
    InstrumentResolveBatchSuccessRow:
      allOf:
        - $ref: '#/components/schemas/InstrumentResolveSuccessResponse'
        - properties:
            index:
              description: Position of the row in `items`.
              minimum: 0
              type: integer
          required:
            - index
          type: object
    InstrumentResolveBatchGenericFailureRow:
      allOf:
        - $ref: '#/components/schemas/InstrumentResolveGenericFailureResponse'
        - properties:
            index:
              description: Position of the row in `items`.
              minimum: 0
              type: integer
          required:
            - index
          type: object
    InstrumentResolveBatchUnsupportedExchangeRow:
      allOf:
        - $ref: '#/components/schemas/InstrumentResolveUnsupportedExchangeResponse'
        - properties:
            index:
              description: Position of the row in `items`.
              minimum: 0
              type: integer
          required:
            - index
          type: object
    InstrumentResolveBatchUnsupportedMicRow:
      allOf:
        - $ref: '#/components/schemas/InstrumentResolveUnsupportedMicResponse'
        - properties:
            index:
              description: Position of the row in `items`.
              minimum: 0
              type: integer
          required:
            - index
          type: object
    InstrumentResolveBatchUnavailableRow:
      properties:
        error:
          enum:
            - resolution_unavailable
          type: string
        index:
          description: Position of the row in `items`.
          minimum: 0
          type: integer
        message:
          type: string
        ok:
          enum:
            - false
          type: boolean
      required:
        - error
        - index
        - message
        - ok
      type: object
    InstrumentResolveSuccessResponse:
      properties:
        instrument:
          $ref: '#/components/schemas/InstrumentResolveInstrument'
        ok:
          enum:
            - true
          type: boolean
      required:
        - instrument
        - ok
      type: object
    InstrumentResolveGenericFailureResponse:
      properties:
        error:
          enum:
            - canonical_currency_missing
            - exchange_or_mic_required
            - identifier_evidence_missing
            - instrument_identifier_conflict
            - instrument_identity_unresolved
          type: string
        message:
          type: string
        missing_evidence:
          items:
            type: string
          type: array
        ok:
          enum:
            - false
          type: boolean
      required:
        - error
        - message
        - ok
      type: object
    InstrumentResolveUnsupportedExchangeResponse:
      properties:
        error:
          enum:
            - unsupported_exchange
          type: string
        message:
          type: string
        ok:
          enum:
            - false
          type: boolean
        supported_exchanges:
          items:
            type: string
          type: array
      required:
        - error
        - message
        - ok
        - supported_exchanges
      type: object
    InstrumentResolveUnsupportedMicResponse:
      properties:
        error:
          enum:
            - unsupported_mic
          type: string
        message:
          type: string
        ok:
          enum:
            - false
          type: boolean
        supported_mics:
          items:
            type: string
          type: array
      required:
        - error
        - message
        - ok
        - supported_mics
      type: object
    InstrumentResolveInstrument:
      properties:
        broker_symbol:
          type: string
        currency:
          type: string
        exchange:
          type: string
        isin:
          type: string
        mic:
          type: string
        name:
          type: string
        siq_symbol:
          type: string
      required:
        - currency
        - exchange
        - name
        - siq_symbol
      type: object
  securitySchemes:
    bearerAuth:
      bearerFormat: JWT
      description: Itoflow access token issued for the Itoflow API.
      scheme: bearer
      type: http

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.