Bloomberg L.P. Mapping API

Map third-party identifiers to FIGIs.

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

bloomberg-lp-mapping-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: OpenFIGI Filter Mapping API
  description: 'The OpenFIGI API is the free, public REST API operated by Bloomberg as

    Registration Authority for the Object Management Group (OMG) Financial

    Instrument Global Identifier (FIGI) standard. It maps third-party

    identifiers (TICKER, ID_ISIN, ID_CUSIP, ID_SEDOL, ID_BB_GLOBAL, COMPOSITE_ID_BB_GLOBAL,

    etc.) to FIGIs and exposes search and filter endpoints across hundreds of

    millions of active and inactive securities.


    The /v3 API is JSON over HTTPS. Authentication is optional via the

    `X-OPENFIGI-APIKEY` header; supplying an API key raises rate limits.


    Note: /v2 is deprecated with a sunset date of July 1, 2026 — clients should

    migrate to /v3 endpoints and switch error handling from "error" to "warning"

    on no-match responses.

    '
  version: 3.0.0
  contact:
    name: OpenFIGI Support
    url: https://www.openfigi.com/api
  license:
    name: OpenFIGI Terms of Service
    url: https://www.openfigi.com/about/terms
servers:
- url: https://api.openfigi.com/v3
  description: OpenFIGI v3 production
security:
- {}
- ApiKeyAuth: []
tags:
- name: Mapping
  description: Map third-party identifiers to FIGIs.
paths:
  /mapping:
    post:
      operationId: mapIdentifiers
      summary: Map Third-Party Identifiers To FIGIs
      description: 'Map one or more third-party identifiers (ticker, ISIN, CUSIP, SEDOL,

        Bloomberg Global ID, etc.) to FIGI records. The request body is a JSON

        array of mapping jobs. Each job is processed independently and returns

        either matched data, a warning (no match), or an error.


        Without an API key: 25 requests/minute, up to 10 jobs per request.

        With an API key: 25 requests/6 seconds, up to 100 jobs per request.

        '
      tags:
      - Mapping
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              minItems: 1
              maxItems: 100
              items:
                $ref: '#/components/schemas/MappingJob'
            examples:
              ticker_lookup:
                summary: TICKER lookup for IBM US
                value:
                - idType: TICKER
                  idValue: IBM
                  exchCode: US
      responses:
        '200':
          description: Per-job mapping results, in the same order as the request.
          headers:
            X-RateLimit-Limit:
              schema:
                type: integer
            X-RateLimit-Remaining:
              schema:
                type: integer
            X-RateLimit-Reset:
              schema:
                type: integer
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/MappingJobResult'
              examples:
                ibm_us_match:
                  summary: TICKER=IBM, exchCode=US match
                  value:
                  - data:
                    - figi: BBG000BLNNH6
                      name: INTL BUSINESS MACHINES CORP
                      ticker: IBM
                      exchCode: US
                      compositeFIGI: BBG000BLNNH6
                      securityType: Common Stock
                      marketSector: Equity
                      shareClassFIGI: BBG001S5S399
                      securityType2: Common Stock
                      securityDescription: IBM
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/ServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
components:
  schemas:
    MappingJobResult:
      type: object
      description: 'Each result has exactly one of `data`, `warning`, or `error`.

        '
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/FigiRecord'
        warning:
          type: string
          description: Non-fatal condition such as "No identifier found."
        error:
          type: string
          description: Fatal error processing this job.
    FigiRecord:
      type: object
      properties:
        figi:
          type: string
          description: The 12-character Financial Instrument Global Identifier.
          example: BBG000BLNNH6
        name:
          type: string
          description: Long name of the instrument.
        ticker:
          type: string
        exchCode:
          type: string
        compositeFIGI:
          type: string
          description: Composite (country-level) FIGI for this instrument.
        uniqueID:
          type: string
        securityType:
          type: string
        marketSector:
          type: string
          description: Bloomberg market sector (Equity, Comdty, Govt, Corp, Index, Curncy, Pfd, Muni, M-Mkt).
        shareClassFIGI:
          type: string
          description: Share-class FIGI grouping multiple composite FIGIs for the same share class.
        uniqueIDFutOpt:
          type: string
          nullable: true
        securityType2:
          type: string
        securityDescription:
          type: string
        metadata:
          type: string
          nullable: true
    MappingJob:
      type: object
      required:
      - idType
      - idValue
      properties:
        idType:
          type: string
          description: The third-party identifier type.
          enum:
          - ID_ISIN
          - ID_BB_UNIQUE
          - ID_SEDOL
          - ID_COMMON
          - ID_WERTPAPIER
          - ID_CUSIP
          - ID_BB
          - ID_ITALY
          - ID_EXCH_SYMBOL
          - ID_FULL_EXCHANGE_SYMBOL
          - COMPOSITE_ID_BB_GLOBAL
          - ID_BB_GLOBAL_SHARE_CLASS_LEVEL
          - ID_BB_SEC_NUM_DES
          - ID_BB_GLOBAL
          - TICKER
          - BASE_TICKER
          - ID_CUSIP_8_CHR
          - OCC_SYMBOL
          - UNIQUE_ID_FUT_OPT
          - OPRA_SYMBOL
          - TRADING_SYSTEM_IDENTIFIER
          - ID_CINS
          - ID_BB_PROP
          - VENDOR_INDEX_CODE
        idValue:
          type: string
          description: The identifier value.
        exchCode:
          type: string
          description: Exchange code filter (e.g. US, LN, GR).
        micCode:
          type: string
          description: ISO 10383 Market Identifier Code filter.
        currency:
          type: string
          description: ISO 4217 currency code filter (e.g. USD, EUR).
        marketSecDes:
          type: string
          description: Bloomberg market sector description (e.g. Equity, Comdty, Govt, Corp, Index, Curncy).
        securityType:
          type: string
          description: Security type filter (e.g. Common Stock, Future, Option).
        securityType2:
          type: string
          description: Secondary security type filter.
        includeUnlistedEquities:
          type: boolean
          description: Whether to include unlisted equities in results.
        optionType:
          type: string
          enum:
          - Call
          - Put
        strike:
          type: array
          items:
            type: number
            nullable: true
          minItems: 2
          maxItems: 2
          description: Strike range as [min, max]; either bound may be null.
        contractSize:
          type: array
          items:
            type: number
            nullable: true
          minItems: 2
          maxItems: 2
        coupon:
          type: array
          items:
            type: number
            nullable: true
          minItems: 2
          maxItems: 2
        expiration:
          type: array
          items:
            type: string
            nullable: true
            format: date
          minItems: 2
          maxItems: 2
        maturity:
          type: array
          items:
            type: string
            nullable: true
            format: date
          minItems: 2
          maxItems: 2
        stateCode:
          type: string
  responses:
    Unauthorized:
      description: Invalid X-OPENFIGI-APIKEY.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorBody'
    TooManyRequests:
      description: Rate limit exceeded.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorBody'
    BadRequest:
      description: Malformed request (validation failed, schema mismatch, etc.).
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorBody'
    ServiceUnavailable:
      description: Service temporarily unavailable.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorBody'
    ServerError:
      description: Internal server error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorBody'
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-OPENFIGI-APIKEY
      description: 'Optional OpenFIGI API key. Sign up at https://www.openfigi.com/user/signup

        to receive a key and unlock higher rate limits.

        '