financialfilings-com ISINs API
Look up the company behind an ISIN.
Look up the company behind an ISIN.
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/financialfilings-com:financialfilings-com-isins-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: FinancialFilings ISINs API
version: 1.4.0
description: 'Filings and company data for listed companies across the G20 and Europe. Send your API key in the `X-API-Key` header on every request. New here? Start with the quickstart.
**Credits.** Every call costs credits, and each endpoint below shows its price. `X-Credits-Charged` on the response says what a call cost, and `GET /usage/` shows the month so far. A free account gets a monthly allowance. Webhooks are an Enterprise feature. Pricing: https://financialfilings.com/developers/
**Rate limits.** Responses carry `X-RateLimit-Burst-Limit` (a rate such as `50/second`), `X-RateLimit-Monthly-Limit`, `X-RateLimit-Monthly-Remaining` and `X-RateLimit-Monthly-Unit` (`requests` or `credits`). All four are strings and can be non-numeric (for example `Unlimited`); the last two are left out when they don''t apply.'
termsOfService: https://financialfilings.com/api-terms/
contact:
name: API Support
url: https://financialfilings.com/
email: api@financialfilings.com
servers:
- url: https://api.financialreports.eu
description: Production API Gateway
tags:
- name: ISINs
description: Look up the company behind an ISIN.
paths:
/isins/:
get:
operationId: isins_list
description: '**Cost:** 1 credit per request.
---
Search and resolve ISINs (International Securities Identification Numbers) to companies.'
summary: List ISINs
parameters:
- in: query
name: code
schema:
type: string
description: One ISIN, exact match.
- in: query
name: codes
schema:
type: string
description: Filter by multiple ISIN codes. Comma-separated (e.g., US1234567890,DE1234567890).
- in: query
name: company
schema:
type: integer
description: Filter by internal Company ID.
- in: query
name: is_primary
schema:
type: boolean
description: '`true`: only each company''s primary ISIN.'
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
- name: page_size
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
- in: query
name: search
schema:
type: string
description: Fuzzy search by ISIN code (e.g., 'US03').
tags:
- ISINs
security:
- ApiKeyAuth: []
- CognitoJWT: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedISINList'
examples:
Success:
value:
count: 123
next: http://api.example.org/accounts/?page=4
previous: http://api.example.org/accounts/?page=2
results:
- - code: US0378331005
is_primary: true
company:
id: 14
name: adidas AG
tagline: A leading global designer and marketer of athletic footwear, apparel, and accessories.
isins:
- DE000A1EWWW0
- US00687A1079
- US00687P1049
lei: 549300JSX0Z4CW0V5023
sub_industry_code: '1410'
oics_code: CL.GD.APR.AFW
country_code: DE
date_public: '2026-09-14'
figi: BBG000B9XRY4
composite_figi: BBG000B9Y5X2
share_class_figi: BBG001S5N8V8
security_type: Common Stock
security_type2: Common Stock
market_sector: Equity
exch_code: US
figi_last_updated: '2026-03-15T08:30:00+00:00'
description: Success
'403':
description: Missing or invalid API key, or the plan does not include this endpoint.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetail'
examples:
MissingCredentials:
summary: No X-API-Key header
value:
detail: Authentication credentials were not provided.
type: authentication_required
resolution: 'Send your API key in the X-API-Key request header, e.g. curl -H "X-API-Key: <your key>" https://api.financialreports.eu/filings/ . A browser address bar never sends this header. No key yet? Get a free one at https://financialfilings.com/accounts/api-dashboard/ .'
dashboard_url: https://financialfilings.com/accounts/api-dashboard/
InvalidKey:
summary: Unknown or inactive API key
value:
detail: Invalid or inactive API key.
PlanDoesNotPermit:
summary: Plan does not include this endpoint
value:
detail: Your current plan does not permit access. Requires a plan that includes **structured financials**.
'429':
description: Rate limit, plan quota or spend cap reached.
content:
application/json:
schema:
$ref: '#/components/schemas/RateLimitError'
examples:
BurstLimit:
summary: Too many requests per minute
value:
error: Too Many Requests
detail: Request was throttled. Expected available in 12 seconds.
retry_after_seconds: 12
scope: burst
type: burst_limit_exceeded
message: 'Rate limit reached: 120 requests per minute.'
resolution: 'Retry after 12 seconds (Retry-After header). Pay-as-you-go raises this to 50/sec: https://financialfilings.com/accounts/payg/'
rate_limit: 120/minute
payg_url: https://financialfilings.com/accounts/payg/
/isins/{code}/:
get:
operationId: isins_retrieve
description: '**Cost:** 1 credit per request.
---
Retrieve details for a specific ISIN.'
summary: Retrieve ISIN
parameters:
- in: path
name: code
schema:
type: string
pattern: ^[^/]+$
required: true
tags:
- ISINs
security:
- ApiKeyAuth: []
- CognitoJWT: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ISIN'
examples:
Success:
value:
code: US0378331005
is_primary: true
company:
id: 14
name: adidas AG
tagline: A leading global designer and marketer of athletic footwear, apparel, and accessories.
isins:
- DE000A1EWWW0
- US00687A1079
- US00687P1049
lei: 549300JSX0Z4CW0V5023
sub_industry_code: '1410'
oics_code: CL.GD.APR.AFW
country_code: DE
date_public: '2026-09-14'
figi: BBG000B9XRY4
composite_figi: BBG000B9Y5X2
share_class_figi: BBG001S5N8V8
security_type: Common Stock
security_type2: Common Stock
market_sector: Equity
exch_code: US
figi_last_updated: '2026-03-15T08:30:00+00:00'
description: Success
'403':
description: Missing or invalid API key, or the plan does not include this endpoint.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetail'
examples:
MissingCredentials:
summary: No X-API-Key header
value:
detail: Authentication credentials were not provided.
type: authentication_required
resolution: 'Send your API key in the X-API-Key request header, e.g. curl -H "X-API-Key: <your key>" https://api.financialreports.eu/filings/ . A browser address bar never sends this header. No key yet? Get a free one at https://financialfilings.com/accounts/api-dashboard/ .'
dashboard_url: https://financialfilings.com/accounts/api-dashboard/
InvalidKey:
summary: Unknown or inactive API key
value:
detail: Invalid or inactive API key.
PlanDoesNotPermit:
summary: Plan does not include this endpoint
value:
detail: Your current plan does not permit access. Requires a plan that includes **structured financials**.
'429':
description: Rate limit, plan quota or spend cap reached.
content:
application/json:
schema:
$ref: '#/components/schemas/RateLimitError'
examples:
BurstLimit:
summary: Too many requests per minute
value:
error: Too Many Requests
detail: Request was throttled. Expected available in 12 seconds.
retry_after_seconds: 12
scope: burst
type: burst_limit_exceeded
message: 'Rate limit reached: 120 requests per minute.'
resolution: 'Retry after 12 seconds (Retry-After header). Pay-as-you-go raises this to 50/sec: https://financialfilings.com/accounts/payg/'
rate_limit: 120/minute
payg_url: https://financialfilings.com/accounts/payg/
components:
schemas:
CompanyMinimal:
type: object
properties:
id:
type: integer
readOnly: true
description: Unique identifier for the company.
name:
type: string
readOnly: true
description: Company name.
tagline:
type: string
readOnly: true
description: A short, one-liner describing the company's value proposition.
isins:
type: array
items:
type: string
readOnly: true
description: Primary ISIN(s) for the company. Use the company detail endpoint for the full list.
lei:
type: string
readOnly: true
description: Legal Entity Identifier (ISO 17442).
sub_industry_code:
type:
- string
- 'null'
readOnly: true
description: ISIC classification code classifying the company.
oics_code:
type:
- string
- 'null'
readOnly: true
description: The company's primary OICS class code (public preview, OICS v0.3), e.g. `TC.SC.SEM.CHP`. Null when the company has no class under the current OICS version, including entity types that carry none (funds, shells, financing vehicles). The full label is the `oics` object on the full company representation.
country_code:
type: string
readOnly: true
description: ISO 3166-1 alpha-2 country code of the company's primary registration or headquarters.
date_public:
type:
- string
- 'null'
format: date
readOnly: true
description: 'Date this company record was last updated on the FinancialFilings platform. This is not the IPO or listing date: that is `date_ipo` on `GET /companies/{id}/`. With `id`, it is the `date_public_cursor` of an incremental company sync.'
required:
- country_code
- date_public
- id
- isins
- lei
- name
- oics_code
- sub_industry_code
- tagline
RateLimitError:
type: object
description: Body of a 429 response. The `Retry-After` header carries the same wait as `retry_after_seconds`. Only `detail` is always present.
properties:
detail:
type: string
description: A human-readable message describing the error.
error:
type: string
description: Always `Too Many Requests`.
retry_after_seconds:
type:
- integer
- 'null'
description: Seconds until the request may be retried, when known.
scope:
type:
- string
- 'null'
description: Which limit was hit, e.g. `burst`, `quota` or `payg_velocity`.
type:
type: string
description: Machine-readable error code, e.g. `burst_limit_exceeded`, `quota_limit_exceeded`, `daily_spend_cap_reached` or `monthly_spend_ceiling_reached`.
message:
type: string
description: A human-readable explanation of the limit.
resolution:
type: string
description: A human-readable hint on what to do next.
upgrade_url:
type: string
description: 'Where to upgrade: the pay-as-you-go card page for free accounts, else the plans page (quota errors).'
limit:
type: integer
description: The plan allowance that was used up (quota errors).
interval:
type: string
description: '`monthly` or `annual` (quota errors).'
resets_on:
type: string
format: date
description: UTC date the allowance resets (quota errors).
rate_limit:
type: string
description: The per-minute limit that refused the request, e.g. `120/minute` (burst errors).
payg_url:
type: string
description: Where to enable pay-as-you-go (quota and burst errors, when it applies).
dashboard_url:
type: string
description: Where to see current spend (spend-cap and spend-ceiling errors).
contact_url:
type: string
description: Where to ask for a higher limit (spend-cap and spend-ceiling errors).
required:
- detail
ISIN:
type: object
properties:
code:
type: string
readOnly: true
description: The 12-character International Securities Identification Number.
is_primary:
type: boolean
readOnly: true
description: Indicates if this is the primary ISIN for the company on this platform.
company:
allOf:
- $ref: '#/components/schemas/CompanyMinimal'
readOnly: true
description: The company associated with this ISIN.
figi:
type: string
readOnly: true
description: The 12-character Financial Instrument Global Identifier (FIGI) for this specific listing.
composite_figi:
type: string
readOnly: true
description: The composite FIGI representing the instrument across all exchanges in a given country.
share_class_figi:
type: string
readOnly: true
description: The share class FIGI representing the instrument globally, regardless of exchange.
security_type:
type: string
readOnly: true
description: Primary security type classification (e.g., Common Stock, ETP, REIT).
security_type2:
type: string
readOnly: true
description: Secondary security type classification providing additional granularity.
market_sector:
type: string
readOnly: true
description: Market sector classification from OpenFIGI (e.g., Equity, Govt, Corp).
exch_code:
type: string
readOnly: true
description: Exchange code where this security is listed (e.g., GY, US, LN).
figi_last_updated:
type:
- string
- 'null'
format: date-time
readOnly: true
description: Timestamp of the last successful FIGI data enrichment for this ISIN.
required:
- code
- company
- composite_figi
- exch_code
- figi
- figi_last_updated
- is_primary
- market_sector
- security_type
- security_type2
- share_class_figi
ErrorDetail:
type: object
properties:
detail:
type: string
description: A human-readable message describing the error.
type:
type: string
description: Machine-readable error code, e.g. `authentication_required`. Present on some errors only.
resolution:
type: string
description: A human-readable hint on how to fix the request. Present on some errors only.
error_type:
type: string
description: Machine-readable error code on validation errors. Present on some errors only.
required:
- detail
PaginatedISINList:
type: object
required:
- count
- results
properties:
count:
type: integer
example: 123
description: 'Total matching results. Exact for cheap queries, an estimate on broad or expensive ones. Do not use it to decide when to stop: follow `next` until it is null.'
next:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=4
previous:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=2
results:
type: array
items:
$ref: '#/components/schemas/ISIN'
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: X-API-Key
description: 'Server-to-server API key authentication. Provide your key in the `X-API-Key` request header. Keys can be generated and rotated from your account dashboard: https://financialfilings.com/profile/'
CognitoJWT:
type: http
scheme: bearer
bearerFormat: JWT
description: 'AWS Cognito-issued JWT access token. Provide the token in the `Authorization` header as: `Authorization: Bearer <access_token>`. Tokens are issued via the Cognito hosted UI or the OAuth2 authorization code flow at `https://auth.financialreports.eu`.'