Skip to main content
Glama

OpenFIGI API MCP Server

models.py6.04 kB
# generated by fastapi-codegen: # filename: openapi.yaml # timestamp: 2025-06-29T07:57:41+00:00 from __future__ import annotations from datetime import date from enum import Enum from typing import List, Optional, Union from pydantic import BaseModel, Field, RootModel class FigiResult(BaseModel): compositeFIGI: Optional[str] = None exchCode: Optional[str] = None figi: Optional[str] = None marketSector: Optional[str] = None metadata: Optional[str] = Field( None, description='Exists when API is unable to show non-FIGI fields.' ) name: Optional[str] = None securityDescription: Optional[str] = None securityType: Optional[str] = None securityType2: Optional[str] = None shareClassFIGI: Optional[str] = None ticker: Optional[str] = None class IdType(Enum): ID_ISIN = 'ID_ISIN' ID_BB_UNIQUE = 'ID_BB_UNIQUE' ID_SEDOL = 'ID_SEDOL' ID_COMMON = 'ID_COMMON' ID_WERTPAPIER = 'ID_WERTPAPIER' ID_CUSIP = 'ID_CUSIP' ID_BB = 'ID_BB' ID_ITALY = 'ID_ITALY' ID_EXCH_SYMBOL = 'ID_EXCH_SYMBOL' ID_FULL_EXCHANGE_SYMBOL = 'ID_FULL_EXCHANGE_SYMBOL' COMPOSITE_ID_BB_GLOBAL = 'COMPOSITE_ID_BB_GLOBAL' ID_BB_GLOBAL_SHARE_CLASS_LEVEL = 'ID_BB_GLOBAL_SHARE_CLASS_LEVEL' ID_BB_SEC_NUM_DES = 'ID_BB_SEC_NUM_DES' ID_BB_GLOBAL = 'ID_BB_GLOBAL' TICKER = 'TICKER' ID_CUSIP_8_CHR = 'ID_CUSIP_8_CHR' OCC_SYMBOL = 'OCC_SYMBOL' UNIQUE_ID_FUT_OPT = 'UNIQUE_ID_FUT_OPT' OPRA_SYMBOL = 'OPRA_SYMBOL' TRADING_SYSTEM_IDENTIFIER = 'TRADING_SYSTEM_IDENTIFIER' ID_CINS = 'ID_CINS' ID_SHORT_CODE = 'ID_SHORT_CODE' BASE_TICKER = 'BASE_TICKER' VENDOR_INDEX_CODE = 'VENDOR_INDEX_CODE' class OptionType(Enum): Put = 'Put' Call = 'Call' class StateCode(Enum): AB = 'AB' AC = 'AC' AC_1 = 'AC' AH = 'AH' AK = 'AK' AL = 'AL' AM = 'AM' AR = 'AR' AS = 'AS' AT = 'AT' AZ = 'AZ' BC = 'BC' BJ = 'BJ' CA = 'CA' CB = 'CB' CO = 'CO' CQ = 'CQ' CT = 'CT' CZ = 'CZ' DC = 'DC' DE = 'DE' EH = 'EH' FH = 'FH' FI = 'FI' FJ = 'FJ' FL = 'FL' FO = 'FO' FS = 'FS' GA = 'GA' GD = 'GD' GF = 'GF' GM = 'GM' GS = 'GS' GU = 'GU' GX = 'GX' GZ = 'GZ' HA = 'HA' HB = 'HB' HE = 'HE' HG = 'HG' HI = 'HI' HI_1 = 'HI' HL = 'HL' HN = 'HN' HO = 'HO' HS = 'HS' IA = 'IA' ID = 'ID' IG = 'IG' IK = 'IK' IL = 'IL' IN = 'IN' IT = 'IT' JL = 'JL' JS = 'JS' JX = 'JX' KA = 'KA' KC = 'KC' KN = 'KN' KO = 'KO' KS = 'KS' KT = 'KT' KU = 'KU' KY = 'KY' LA = 'LA' LN = 'LN' MA = 'MA' MB = 'MB' MD = 'MD' ME = 'ME' ME_1 = 'ME' MG = 'MG' MI = 'MI' MN = 'MN' MO = 'MO' MS = 'MS' MT = 'MT' MZ = 'MZ' NB = 'NB' NC = 'NC' ND = 'ND' NE = 'NE' NG = 'NG' NH = 'NH' NJ = 'NJ' NL = 'NL' NM = 'NM' NM_1 = 'NM' NN = 'NN' NR = 'NR' NS = 'NS' NS_1 = 'NS' NS_2 = 'NS' NT = 'NT' NU = 'NU' NV = 'NV' NW = 'NW' NX = 'NX' NY = 'NY' OH = 'OH' OK = 'OK' ON = 'ON' ON_1 = 'ON' OR = 'OR' OS = 'OS' OT = 'OT' OT_1 = 'OT' OY = 'OY' PA = 'PA' PE = 'PE' PR = 'PR' QC = 'QC' QH = 'QH' QL = 'QL' RI = 'RI' SA = 'SA' SA_1 = 'SA' SC = 'SC' SC_1 = 'SC' SD = 'SD' SD_1 = 'SD' SH = 'SH' SI = 'SI' SK = 'SK' SN = 'SN' SN_1 = 'SN' ST = 'ST' SX = 'SX' SZ = 'SZ' TA = 'TA' TG = 'TG' TJ = 'TJ' TK = 'TK' TN = 'TN' TS = 'TS' TT = 'TT' TT_1 = 'TT' TX = 'TX' TY = 'TY' UT = 'UT' VA = 'VA' VI = 'VI' VI_1 = 'VI' VT = 'VT' WA = 'WA' WA_1 = 'WA' WI = 'WI' WK = 'WK' WV = 'WV' WY = 'WY' XJ = 'XJ' XZ = 'XZ' YA = 'YA' YN = 'YN' YN_1 = 'YN' YT = 'YT' YU = 'YU' ZJ = 'ZJ' class MappingJobResultFigiList(BaseModel): data: Optional[List[FigiResult]] = None class MappingJobResultFigiNotFound(BaseModel): warning: Optional[str] = None class NullableDateInterval(RootModel[Optional[List[date]]]): root: Optional[List[date]] = Field( None, description='At least one entry should be non-null.', max_length=2, min_length=2, ) class NullableNumberInterval(RootModel[Optional[List[float]]]): root: Optional[List[float]] = Field( None, description='At least one entry should be non-null.', max_length=2, min_length=2, ) class MappingValuesKeyGetResponse(BaseModel): values: Optional[List[str]] = None class Key(Enum): idType = 'idType' exchCode = 'exchCode' micCode = 'micCode' currency = 'currency' marketSecDes = 'marketSecDes' securityType = 'securityType' securityType2 = 'securityType2' class MappingJob(BaseModel): contractSize: Optional[NullableNumberInterval] = None coupon: Optional[NullableNumberInterval] = None currency: Optional[str] = None exchCode: Optional[str] = None expiration: Optional[NullableDateInterval] = None idType: IdType idValue: Union[str, int] includeUnlistedEquities: Optional[bool] = None marketSecDes: Optional[str] = None maturity: Optional[NullableDateInterval] = None micCode: Optional[str] = None optionType: Optional[OptionType] = None securityType: Optional[str] = None securityType2: Optional[str] = None stateCode: Optional[StateCode] = None strike: Optional[NullableNumberInterval] = None class MappingJobResult( RootModel[Union[MappingJobResultFigiList, MappingJobResultFigiNotFound]] ): root: Union[MappingJobResultFigiList, MappingJobResultFigiNotFound] class BulkMappingJob(RootModel[List[MappingJob]]): root: List[MappingJob] class BulkMappingJobResult(RootModel[List[MappingJobResult]]): root: List[MappingJobResult]

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ag2-mcp-servers/openfigi-api'

If you have feedback or need assistance with the MCP directory API, please join our Discord server