OpenFIGI API icon

OpenFIGI API

A free & open API for FIGI discovery

COMMUNITYAPI KEY0 INSTALLS
API Docs
OpenAPI Specificationv3.0
{
  "openapi": "3.0.0",
  "servers": [
    {
      "description": "Production Tier",
      "url": "https://api.openfigi.com/{basePath}",
      "variables": {
        "basePath": {
          "default": "v1",
          "enum": [
            "v1",
            "v2",
            "v3"
          ]
        }
      }
    }
  ],
  "info": {
    "contact": {
      "email": "support@openfigi.com",
      "name": "OpenFIGI API Support",
      "url": "https://openfigi.com/api"
    },
    "description": "A free & open API for FIGI discovery.",
    "license": {
      "name": "Apache 2.0",
      "url": "https://www.apache.org/licenses/LICENSE-2.0.html"
    },
    "termsOfService": "https://openfigi.com/docs/terms-of-service",
    "title": "OpenFIGI API",
    "version": "1.4.0",
    "x-apisguru-categories": [
      "open_data"
    ],
    "x-origin": [
      {
        "format": "openapi",
        "url": "https://api.openfigi.com/schema",
        "version": "3.0"
      }
    ],
    "x-providerName": "openfigi.com",
    "x-logo": {
      "url": "https://api.apis.guru/v2/cache/logo/https_apis.guru_assets_images_no-logo.svg"
    }
  },
  "security": [
    {},
    {
      "ApiKeyAuth": []
    }
  ],
  "paths": {
    "/mapping": {
      "post": {
        "description": "Allows mapping from third-party identifiers to FIGIs.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BulkMappingJob"
              }
            }
          },
          "description": "A list of third-party identifiers and extra filters."
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BulkMappingJobResult"
                }
              }
            },
            "description": "A list of FIGIs and their metadata."
          },
          "400": {
            "content": {
              "*/*": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "description": "Invalid request (body)."
          },
          "401": {
            "content": {
              "*/*": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "description": "API Key is invalid."
          },
          "406": {
            "content": {
              "*/*": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "description": "Unsupported 'Accept' type."
          },
          "413": {
            "content": {
              "*/*": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "description": "Too many mapping jobs in request."
          },
          "500": {
            "content": {
              "*/*": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "description": "Internal server error."
          }
        }
      }
    },
    "/mapping/values/{key}": {
      "get": {
        "description": "Get values for enum-like fields.",
        "parameters": [
          {
            "description": "Key of MappingJob for which to get possible values.",
            "in": "path",
            "name": "key",
            "required": true,
            "schema": {
              "enum": [
                "idType",
                "exchCode",
                "micCode",
                "currency",
                "marketSecDes",
                "securityType",
                "securityType2"
              ],
              "type": "string"
            },
            "style": "simple"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "values": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "The list of values."
          },
          "400": {
            "content": {
              "*/*": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "description": "Invalid request (key)."
          },
          "500": {
            "content": {
              "*/*": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "description": "Internal server error."
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "BulkMappingJob": {
        "items": {
          "$ref": "#/components/schemas/MappingJob"
        },
        "type": "array"
      },
      "BulkMappingJobResult": {
        "items": {
          "$ref": "#/components/schemas/MappingJobResult"
        },
        "type": "array"
      },
      "FigiResult": {
        "properties": {
          "compositeFIGI": {
            "nullable": true,
            "type": "string"
          },
          "exchCode": {
            "nullable": true,
            "type": "string"
          },
          "figi": {
            "type": "string"
          },
          "marketSector": {
            "nullable": true,
            "type": "string"
          },
          "metadata": {
            "description": "Exists when API is unable to show non-FIGI fields.",
            "nullable": true,
            "type": "string"
          },
          "name": {
            "nullable": true,
            "type": "string"
          },
          "securityDescription": {
            "nullable": true,
            "type": "string"
          },
          "securityType": {
            "nullable": true,
            "type": "string"
          },
          "securityType2": {
            "nullable": true,
            "type": "string"
          },
          "shareClassFIGI": {
            "nullable": true,
            "type": "string"
          },
          "ticker": {
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "MappingJob": {
        "description": "For V3: securityType2 is required when idType is BASE_TICKER or ID_EXCH_SYMBOL.  expiration is required when securityType2 is Option or Warrant.  maturity is required when securityType2 is Pool.",
        "properties": {
          "contractSize": {
            "$ref": "#/components/schemas/NullableNumberInterval"
          },
          "coupon": {
            "$ref": "#/components/schemas/NullableNumberInterval"
          },
          "currency": {
            "nullable": true,
            "type": "string"
          },
          "exchCode": {
            "nullable": true,
            "type": "string"
          },
          "expiration": {
            "$ref": "#/components/schemas/NullableDateInterval"
          },
          "idType": {
            "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",
              "ID_CUSIP_8_CHR",
              "OCC_SYMBOL",
              "UNIQUE_ID_FUT_OPT",
              "OPRA_SYMBOL",
              "TRADING_SYSTEM_IDENTIFIER",
              "ID_CINS",
              "ID_SHORT_CODE",
              "BASE_TICKER",
              "VENDOR_INDEX_CODE"
            ],
            "type": "string"
          },
          "idValue": {
            "default": "string",
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "integer"
              }
            ]
          },
          "includeUnlistedEquities": {
            "nullable": true,
            "type": "boolean"
          },
          "marketSecDes": {
            "nullable": true,
            "type": "string"
          },
          "maturity": {
            "$ref": "#/components/schemas/NullableDateInterval"
          },
          "micCode": {
            "nullable": true,
            "type": "string"
          },
          "optionType": {
            "enum": [
              "Put",
              "Call"
            ],
            "nullable": true,
            "type": "string"
          },
          "securityType": {
            "nullable": true,
            "type": "string"
          },
          "securityType2": {
            "nullable": true,
            "type": "string"
          },
          "stateCode": {
            "enum": [
              "AB",
              "AC",
              "AC",
              "AH",
              "AK",
              "AL",
              "AM",
              "AR",
              "AS",
              "AT",
              "AZ",
              "BC",
              "BJ",
              "CA",
              "CB",
              "CO",
              "CQ",
              "CT",
              "CZ",
              "DC",
              "DE",
              "EH",
              "FH",
              "FI",
              "FJ",
              "FL",
              "FO",
              "FS",
              "GA",
              "GD",
              "GF",
              "GM",
              "GS",
              "GU",
              "GX",
              "GZ",
              "HA",
              "HB",
              "HE",
              "HG",
              "HI",
              "HI",
              "HL",
              "HN",
              "HO",
              "HS",
              "IA",
              "ID",
              "IG",
              "IK",
              "IL",
              "IN",
              "IT",
              "JL",
              "JS",
              "JX",
              "KA",
              "KC",
              "KN",
              "KO",
              "KS",
              "KT",
              "KU",
              "KY",
              "LA",
              "LN",
              "MA",
              "MB",
              "MD",
              "ME",
              "ME",
              "MG",
              "MI",
              "MN",
              "MO",
              "MS",
              "MT",
              "MZ",
              "NB",
              "NC",
              "ND",
              "NE",
              "NG",
              "NH",
              "NJ",
              "NL",
              "NM",
              "NM",
              "NN",
              "NR",
              "NS",
              "NS",
              "NS",
              "NT",
              "NU",
              "NV",
              "NW",
              "NX",
              "NY",
              "OH",
              "OK",
              "ON",
              "ON",
              "OR",
              "OS",
              "OT",
              "OT",
              "OY",
              "PA",
              "PE",
              "PR",
              "QC",
              "QH",
              "QL",
              "RI",
              "SA",
              "SA",
              "SC",
              "SC",
              "SD",
              "SD",
              "SH",
              "SI",
              "SK",
              "SN",
              "SN",
              "ST",
              "SX",
              "SZ",
              "TA",
              "TG",
              "TJ",
              "TK",
              "TN",
              "TS",
              "TT",
              "TT",
              "TX",
              "TY",
              "UT",
              "VA",
              "VI",
              "VI",
              "VT",
              "WA",
              "WA",
              "WI",
              "WK",
              "WV",
              "WY",
              "XJ",
              "XZ",
              "YA",
              "YN",
              "YN",
              "YT",
              "YU",
              "ZJ"
            ],
            "nullable": true,
            "type": "string"
          },
          "strike": {
            "$ref": "#/components/schemas/NullableNumberInterval"
          }
        },
        "required": [
          "idType",
          "idValue"
        ],
        "type": "object"
      },
      "MappingJobResult": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/MappingJobResultFigiList"
          },
          {
            "$ref": "#/components/schemas/MappingJobResultFigiNotFound"
          }
        ]
      },
      "MappingJobResultFigiList": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/FigiResult"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "MappingJobResultFigiNotFound": {
        "properties": {
          "warning": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "NullableDateInterval": {
        "description": "At least one entry should be non-null.",
        "items": {
          "format": "date",
          "nullable": true,
          "type": "string"
        },
        "maxItems": 2,
        "minItems": 2,
        "nullable": true,
        "type": "array"
      },
      "NullableNumberInterval": {
        "description": "At least one entry should be non-null.",
        "items": {
          "nullable": true,
          "type": "number"
        },
        "maxItems": 2,
        "minItems": 2,
        "nullable": true,
        "type": "array"
      }
    },
    "securitySchemes": {
      "ApiKeyAuth": {
        "in": "header",
        "name": "X-OPENFIGI-APIKEY",
        "type": "apiKey"
      }
    }
  }
}