OpenFIGI Filter API
The Filter API from OpenFIGI — 1 operation(s) for filter.
The Filter API from OpenFIGI — 1 operation(s) for filter.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/openfigi-filter-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 3.2.0
info:
title: OpenFIGI Filter API
description: A free & open API for FIGI discovery.
termsOfService: https://openfigi.com/docs/terms-of-service
contact:
name: OpenFIGI API Support
url: https://www.openfigi.com/feedback
email: support@openfigi.com
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0.html
version: 2.0.0
servers:
- url: https://api.openfigi.com/{basePath}
description: Production Tier
variables:
basePath:
default: v3
enum:
- v3
- v2
security:
- {}
- ApiKeyAuth: []
tags:
- name: Filter
paths:
/filter:
post:
description: Search for FIGIs using key words and other filters. The results are listed alphabetically by FIGI and include the number of results.
requestBody:
description: Filter query object
content:
application/json:
schema:
$ref: '#/components/schemas/FilterRequest'
examples:
simple:
$ref: '#/components/examples/simpleFilterRequest'
responses:
'200':
description: A list of FIGIs and their metadata.
content:
application/json:
schema:
$ref: '#/components/schemas/FilterResponse'
'400':
description: Invalid request (body).
content:
text/html; charset=utf-8:
schema:
type: string
examples:
generic:
value: Bad request.
invalid_enum:
value: Invalid enum field.
'401':
description: Unauthorized.
content:
text/html; charset=utf-8:
schema:
type: string
example: Invalid API key.
'405':
description: Method Not Allowed.
content:
text/html; charset=utf-8:
schema:
type: string
example: Invalid HTTP method.
'406':
description: Not Acceptable.
content:
text/html; charset=utf-8:
schema:
type: string
example: Unsupported 'Accept' type.
'415':
description: Unsupported Media Type.
content:
text/html; charset=utf-8:
schema:
type: string
example: Invalid Content-Type. Should be text/json or application/json with valid charset.
'429':
description: Too Many Requests.
content:
text/html; charset=utf-8:
schema:
type: string
example: Rate limit reached. Please back off your requests.
'500':
description: Internal Server Error.
content:
text/html; charset=utf-8:
schema:
type: string
example: Internal server error.
'503':
description: Service Unavailable.
content:
text/html; charset=utf-8:
schema:
type: string
example: Service Unavailable.
tags:
- Filter
components:
schemas:
NullableDateInterval:
maxItems: 2
minItems: 2
type:
- array
- 'null'
description: At least one entry should be non-null.
items:
type:
- string
- 'null'
format: date
StateCode:
type:
- string
- 'null'
enum:
- AB
- 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
- 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
- MG
- MI
- MN
- MO
- MS
- MT
- MZ
- NB
- NC
- ND
- NE
- NG
- NH
- NJ
- NL
- NM
- NN
- NR
- NS
- NT
- NU
- NV
- NW
- NX
- NY
- OH
- OK
- 'ON'
- OR
- OS
- OT
- OY
- PA
- PE
- PR
- QC
- QH
- QL
- RI
- SA
- SC
- SD
- SH
- SI
- SK
- SN
- ST
- SX
- SZ
- TA
- TG
- TJ
- TK
- TN
- TS
- TT
- TX
- TY
- UT
- VA
- VI
- VT
- WA
- WI
- WK
- WV
- WY
- XJ
- XZ
- YA
- YN
- YT
- YU
- ZJ
NullableNumberInterval:
maxItems: 2
minItems: 2
type:
- array
- 'null'
description: At least one entry should be non-null.
items:
type:
- number
- 'null'
FilterResponse:
type: array
items:
$ref: '#/components/schemas/FilterResponseElement'
FilterResponseElement:
type: object
properties:
total:
type: number
example: 1255917
allOf:
- $ref: '#/components/schemas/SearchResponseElement'
SearchResponseElement:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/FigiResult'
error:
type:
- string
- 'null'
example: query must be a non-empty string.
next:
type:
- string
- 'null'
example: QW9JSVFhUkFkQ3hDUWtjd01EQkNPVmszVnprPSAx.zqwblbHbOpBKhinclIlmUiLeMkflobBlSuWyA1Q10Ac=
SearchRequest:
type: object
properties:
query:
type: string
example: Apple
start:
type: string
description: The number of results returned for any given request is fixed. When more results are accessible, the response will contain a next property whose value should be sent in succeeding requests as the value of the start property. This will notify the API to return the next "page" of results.
example: QW9Fc1FrSkhNREF3TVZKWVJrUTAgMQ==.dannV9BsO7PRuiC2NdA2wVaJLH3fRpeeWnu3HNM73t0=
description: At least one property in the request object must be populated.
allOf:
- $ref: '#/components/schemas/CommonSearchMappingRequest'
FigiResult:
type: object
properties:
figi:
type: string
example: BBG000B9XVV8
securityType:
type:
- string
- 'null'
example: Common Stock
marketSector:
type:
- string
- 'null'
example: Equity
ticker:
type:
- string
- 'null'
example: AAPL
name:
type:
- string
- 'null'
example: APPLE INC
exchCode:
type:
- string
- 'null'
example: UN
shareClassFIGI:
type:
- string
- 'null'
example: BBG001S5N8V8
compositeFIGI:
type:
- string
- 'null'
example: BBG000B9XRY4
securityType2:
type:
- string
- 'null'
example: Common Stock
securityDescription:
type:
- string
- 'null'
example: AAPL
metadata:
type:
- string
- 'null'
description: Exists when API is unable to show non-FIGI fields.
CommonSearchMappingRequest:
type: object
properties:
exchCode:
type:
- string
- 'null'
example: US
micCode:
type:
- string
- 'null'
currency:
type:
- string
- 'null'
marketSecDes:
type:
- string
- 'null'
securityType:
type:
- string
- 'null'
example: Equity Option
securityType2:
type:
- string
- 'null'
example: Option
includeUnlistedEquities:
type:
- boolean
- 'null'
optionType:
type:
- string
- 'null'
enum:
- Put
- Call
strike:
$ref: '#/components/schemas/NullableNumberInterval'
contractSize:
$ref: '#/components/schemas/NullableNumberInterval'
coupon:
$ref: '#/components/schemas/NullableNumberInterval'
expiration:
$ref: '#/components/schemas/NullableDateInterval'
maturity:
$ref: '#/components/schemas/NullableDateInterval'
stateCode:
$ref: '#/components/schemas/StateCode'
FilterRequest:
type: object
allOf:
- $ref: '#/components/schemas/SearchRequest'
examples:
simpleFilterRequest:
summary: Simple filter request
value:
query: ibm
exchCode: US
securitySchemes:
ApiKeyAuth:
type: apiKey
name: X-OPENFIGI-APIKEY
in: header