canonical: https://jentic.com/apis/openfigi.com/openfigi

# OpenFIGI API

OpenFIGI is the free public API maintained by Bloomberg's Open Source Office that maps third-party financial instrument identifiers - ISIN, CUSIP, SEDOL, ticker symbols - to the Financial Instrument Global Identifier (FIGI). The API exposes mapping, search, and filter operations across the global universe of equities, bonds, derivatives, and other instruments. Used by buy-side firms, fintech apps, and academic researchers as an open alternative to commercial security-master services. An optional X-OPENFIGI-APIKEY header increases the rate limit.

## For AI agents

Map ISIN, CUSIP, SEDOL, or tickers to FIGI identifiers and search Bloomberg's open instrument identifier dataset across four endpoints.

## Scope

Does not handle market quotes, trade execution, or fundamental data - use for instrument identifier mapping and FIGI search only.

## Capabilities

- Map external instrument identifiers (ISIN, CUSIP, SEDOL, ticker, etc.) to FIGI via POST /mapping with a list of jobs
- List the allowed values for any mapping key (idType, exchCode, marketSecDes) through `/mapping/values/{key}`
- Search the FIGI universe by free-text query via POST /search with optional filters
- Run filtered queries by name, ticker, exchange, or security type via POST /filter
- Resolve global cross-references for an instrument with one mapping request per identifier
- Build security-master enrichment pipelines that turn third-party identifiers into stable FIGIs

## Use cases

### Portfolio Identifier Enrichment

Enrich a portfolio file containing ISINs or tickers with FIGI identifiers so downstream systems can join across data vendors. POST /mapping accepts up to 100 jobs per request (without API key) and returns the matching FIGI for each, including share class and composite FIGI. Replaces costly commercial cross-reference services for many use cases.

Example prompt: POST /mapping with a body listing {idType: 'ID_ISIN', idValue: 'US0378331005'} and return the figi from the response.

### Instrument Discovery

Search the FIGI universe by company name or partial ticker via POST /search. Useful for fintech apps adding a security picker - the endpoint returns ranked matches with FIGI, name, exchange, and security type so users can disambiguate share classes and listings before placing orders or running analyses.

Example prompt: POST /search with body {query: 'Apple'} and return the top 10 results' name, ticker, and exchCode.

### Reference Data Lookup

Build a reference-data service that calls `/mapping/values/{key}` to fetch the canonical list of acceptable values for parameters like exchCode, idType, or marketSecDes. Useful for client-side validation in trading or research apps so users only submit accepted values.

Example prompt: GET `/mapping/values/exchCode` and return the full list of accepted exchange codes.

### Agent-Driven Security Master Updates

An AI agent maintaining a portfolio analytics dataset can use Jentic to discover the OpenFIGI mapping operation and submit identifier-resolution jobs in batch each time a new instrument appears. Jentic handles credential injection if the deployment uses an API key, so the agent's prompts stay free of secret material.

Example prompt: Through Jentic, find the operation for "map an instrument identifier to FIGI" and call /mapping with the new ISINs from the dataset.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/mapping` | Map external identifiers to FIGI in batch |
| GET | `/mapping/values/{key}` | List allowed values for a mapping parameter |
| POST | `/search` | Free-text search across the FIGI universe |
| POST | `/filter` | Filter instruments by structured criteria |

## Key resources

- **Mapping** — Resolve external identifiers to FIGI in batch
- **Mapping Values** — Reference values for mapping parameters
- **Search** — Free-text search across the FIGI instrument universe
- **Filter** — Structured filtering by name, ticker, exchange, and security type

## Why Jentic

- **Setup:** Wiring the OpenFIGI API by hand means managing the optional X-OPENFIGI-APIKEY for the elevated rate limit, setting it as a header, and building the batch job-array bodies for mapping yourself. Through Jentic you install once, import the OpenFIGI API from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** OpenFIGI mapping and search take their targets in the request body, so scope it by limiting the agent to the operations it needs, such as mapping identifiers to FIGIs or searching for an instrument. You choose the operations it may call, and nothing beyond that set runs.
- **Credential handling:** Your optional OpenFIGI X-OPENFIGI-APIKEY is stored once, encrypted, by your own Jentic One instance and injected as a header at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'map ISIN to FIGI' or 'search for an instrument', and Jentic returns the matching OpenFIGI operation with its job-array body schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Alpha Vantage** — Provides quotes and fundamentals once an instrument is resolved to a ticker via OpenFIGI
- **Finnhub** — Market data and fundamentals API that pairs with FIGI for cross-vendor identifier joins
- **Polygon.io** — Tick-level US market data API; OpenFIGI provides the cross-reference layer
- **Marketstack** — End-of-day equity prices that join cleanly to FIGI identifiers from OpenFIGI

## FAQ

### What authentication does the OpenFIGI API use?

OpenFIGI accepts an optional X-OPENFIGI-APIKEY request header that raises rate limits. Calls without a key still work at the public tier. Jentic stores the API key encrypted in your Jentic One instance and applies the header at execution so the value never reaches the agent's prompt context.

### Can I map multiple ISINs in one request with the OpenFIGI API?

Yes. POST /mapping accepts an array of mapping jobs in a single request - up to 10 per request without a key, and up to 100 per request with a key. Each job contains an idType and idValue plus optional filters like exchCode.

### What are the rate limits for the OpenFIGI API?

Without a key, /mapping permits 25 requests per 6 seconds and up to 10 jobs per request. With a key, the cap rises to 25 per 6 seconds with 100 jobs per request, plus higher daily ceilings - published on openfigi.com. /search and /filter share their own per-key limits.

### How do I search for an instrument with the OpenFIGI API through Jentic?

Use the Jentic search query "search for a financial instrument by name". Jentic returns POST /search with its body schema; the agent supplies the query string and any optional filters, and Jentic routes the call. Run it through Jentic One, the self-hosted execution layer.

### Is the OpenFIGI API free?

Yes. OpenFIGI is operated by Bloomberg as an open service and is free at every tier. An optional API key raises rate limits but does not introduce charges.

### What identifier types can OpenFIGI accept on the mapping endpoint?

OpenFIGI accepts ID_ISIN, ID_CUSIP, ID_SEDOL, ID_BB, TICKER, COMPOSITE_ID_BB_GLOBAL, and others. Call `/mapping/values/idType` for the full live list rather than hard-coding it, since the supported set changes over time.

### Can I limit what my agent is allowed to do with the OpenFIGI API?

Yes. Because OpenFIGI takes its targets in the request body rather than the URL, you scope access by choosing which operations your agent may call in your own self-hosted Jentic One instance. You decide whether it can only map identifiers to FIGIs, or also run POST /search, POST /filter, and the `/mapping/values` reference lookups, and nothing beyond that set runs. Since your own rules govern which operations and the optional API key the agent may use, an agent meant only for identifier enrichment can be blocked from search and filter calls entirely.
