Returns concentration-risk disclosures as time series: named-counterparty dependence (e.g. "Apple is 50% of revenue, up from 37% three years ago"), unnamed aggregates ("top ten customers"), and the same machinery for supplier, geographic, product, and credit concentration.
Unlike the other financials endpoints this response is series-major, not period-major: disclosures are grouped by (riskType, benchmark) category, e.g. customer × revenue vs customer × receivables, and each counterparty carries its own history. Grouping is by stable category, not raw XBRL member, so a filer switching benchmark members across years keeps one continuous series; the raw rider members are listed in riskTypeMembers / benchmarkMembers for auditability.
Counterparty names are the filer's own extension members (rfmd:AppleMember → "Apple"); no entity resolution is attempted, the label is the filer's own word. When the filer also tagged the dollar amount for the same counterparty and period (a minority of filers do), it attaches to the share point as revenue, converted per the currency parameter (spot for balance-date shares' amounts, period-average for flows) with the response-level fx audit block. Shares themselves are pure fractions and never converted.
What this data can tell you:
Data honesty notes:
share is a fraction of 1 (0.50 = 50%). Mis-tagged whole percents are re-scaled and the point flagged normalized: true.symbol string optional Stock ticker symbol. Identify the entity by exactly one of: symbol, cik, cusip, composite_figi, or share_class_figi. At least one is required.
cik integer optional SEC Central Index Key (CIK).
cusip string optional CUSIP identifier (9 characters).
composite_figi string optional Composite OpenFIGI identifier.
share_class_figi string optional Share-class OpenFIGI identifier.
currency string optional Currency to return all monetary values in (default USD).
Pass any ISO 4217 code from the table below, or original to disable conversion and receive every figure in its own as-reported currency. With a target currency, any line item not already in it is converted on the fly at the period-appropriate rate (spot for balance-sheet instants, period-average for income/cash-flow flows); values already in the target pass through untouched (no round-trip), and the per-period fx block records the rate(s) applied. A currency that cannot be priced for a given period leaves those facts native and flags them under fx.unconverted.
Accepted values
| Code | Currency |
|---|---|
original |
Return every value in its original as-reported currency (no conversion) |
USD |
US Dollar, default |
AED |
United Arab Emirates Dirham |
AFN |
Afghan Afghani |
ALL |
Albanian Lek |
AMD |
Armenian Dram |
ANG |
Netherlands Antillean Guilder |
AOA |
Angolan Kwanza |
ARS |
Argentine Peso |
AUD |
Australian Dollar |
AWG |
Aruban Florin |
AZN |
Azerbaijani Manat |
BAM |
Bosnia-Herzegovina Convertible Mark |
BBD |
Barbadian Dollar |
BDT |
Bangladeshi Taka |
BGN |
Bulgarian Lev |
BHD |
Bahraini Dinar |
BIF |
Burundian Franc |
BMD |
Bermudan Dollar |
BND |
Brunei Dollar |
BOB |
Bolivian Boliviano |
BRL |
Brazilian Real |
BSD |
Bahamian Dollar |
BTN |
Bhutanese Ngultrum |
BWP |
Botswanan Pula |
BYN |
Belarusian Ruble |
BZD |
Belize Dollar |
CAD |
Canadian Dollar |
CDF |
Congolese Franc |
CHF |
Swiss Franc |
CLP |
Chilean Peso |
CNY |
Chinese Yuan |
COP |
Colombian Peso |
CRC |
Costa Rican Colón |
CUP |
Cuban Peso |
CVE |
Cape Verdean Escudo |
CZK |
Czech Koruna |
DJF |
Djiboutian Franc |
DKK |
Danish Krone |
DOP |
Dominican Peso |
DZD |
Algerian Dinar |
EGP |
Egyptian Pound |
ERN |
Eritrean Nakfa |
ETB |
Ethiopian Birr |
EUR |
Euro |
FJD |
Fijian Dollar |
FKP |
Falkland Islands Pound |
GBP |
British Pound |
GEL |
Georgian Lari |
GHS |
Ghanaian Cedi |
GIP |
Gibraltar Pound |
GMD |
Gambian Dalasi |
GNF |
Guinean Franc |
GTQ |
Guatemalan Quetzal |
GYD |
Guyanaese Dollar |
HKD |
Hong Kong Dollar |
HNL |
Honduran Lempira |
HTG |
Haitian Gourde |
HUF |
Hungarian Forint |
IDR |
Indonesian Rupiah |
ILS |
Israeli New Shekel |
INR |
Indian Rupee |
IQD |
Iraqi Dinar |
IRR |
Iranian Rial |
ISK |
Icelandic Króna |
JMD |
Jamaican Dollar |
JOD |
Jordanian Dinar |
JPY |
Japanese Yen |
KES |
Kenyan Shilling |
KGS |
Kyrgyz Som |
KHR |
Cambodian Riel |
KMF |
Comorian Franc |
KPW |
North Korean Won |
KRW |
South Korean Won |
KWD |
Kuwaiti Dinar |
KYD |
Cayman Islands Dollar |
KZT |
Kazakhstani Tenge |
LAK |
Laotian Kip |
LBP |
Lebanese Pound |
LKR |
Sri Lankan Rupee |
LRD |
Liberian Dollar |
LSL |
Lesotho Loti |
LYD |
Libyan Dinar |
MAD |
Moroccan Dirham |
MDL |
Moldovan Leu |
MGA |
Malagasy Ariary |
MKD |
Macedonian Denar |
MMK |
Myanmar Kyat |
MNT |
Mongolian Tugrik |
MOP |
Macanese Pataca |
MRU |
Mauritanian Ouguiya |
MUR |
Mauritian Rupee |
MVR |
Maldivian Rufiyaa |
MWK |
Malawian Kwacha |
MXN |
Mexican Peso |
MYR |
Malaysian Ringgit |
MZN |
Mozambican Metical |
NAD |
Namibian Dollar |
NGN |
Nigerian Naira |
NIO |
Nicaraguan Córdoba |
NOK |
Norwegian Krone |
NPR |
Nepalese Rupee |
NZD |
New Zealand Dollar |
OMR |
Omani Rial |
PAB |
Panamanian Balboa |
PEN |
Peruvian Sol |
PGK |
Papua New Guinean Kina |
PHP |
Philippine Peso |
PKR |
Pakistani Rupee |
PLN |
Polish Zloty |
PYG |
Paraguayan Guarani |
QAR |
Qatari Riyal |
RON |
Romanian Leu |
RSD |
Serbian Dinar |
RUB |
Russian Ruble |
RWF |
Rwandan Franc |
SAR |
Saudi Riyal |
SBD |
Solomon Islands Dollar |
SCR |
Seychellois Rupee |
SDG |
Sudanese Pound |
SEK |
Swedish Krona |
SGD |
Singapore Dollar |
SHP |
St. Helena Pound |
SLE |
Sierra Leonean Leone |
SOS |
Somali Shilling |
SRD |
Surinamese Dollar |
SSP |
South Sudanese Pound |
STN |
São Tomé & Príncipe Dobra |
SVC |
Salvadoran Colón |
SYP |
Syrian Pound |
SZL |
Swazi Lilangeni |
THB |
Thai Baht |
TJS |
Tajikistani Somoni |
TMT |
Turkmenistani Manat |
TND |
Tunisian Dinar |
TOP |
Tongan Paʻanga |
TRY |
Turkish Lira |
TTD |
Trinidad & Tobago Dollar |
TWD |
New Taiwan Dollar |
TZS |
Tanzanian Shilling |
UAH |
Ukrainian Hryvnia |
UGX |
Ugandan Shilling |
UYU |
Uruguayan Peso |
UZS |
Uzbekistani Som |
VES |
Venezuelan Bolívar |
VND |
Vietnamese Dong |
VUV |
Vanuatu Vatu |
WST |
Samoan Tala |
XAF |
Central African CFA Franc |
XCD |
East Caribbean Dollar |
XDR |
Special Drawing Rights |
XOF |
West African CFA Franc |
XPF |
CFP Franc |
YER |
Yemeni Rial |
ZAR |
South African Rand |
ZMW |
Zambian Kwacha |
ZWG |
Zimbabwean Gold |
period string (enum) optional The reporting period: annual returns fiscal-year shares; quarter returns the shares each 10-Q tagged.
limit integer optional Maximum number of history points per series (may be clamped by subscription tier).
curl 'https://api.stockfit.io/v1/api/footnotes/concentration?symbol=AAPL&cik=320193&cusip=037833100&composite_figi=BBG000B9XRY4&share_class_figi=BBG001S5N8V8¤cy=USD' \
-H 'Authorization: Bearer YOUR_API_TOKEN'Concentration-risk series grouped by risk type and benchmark
groups array of object One group per (riskType, benchmark) category combination, groups with named counterparties first.
riskType string (enum) | null Stable category of the ConcentrationRiskByTypeAxis rider; `other` for unmapped members, null when the filer tagged no type.
customer, supplier, geographic, product, credit, reinsurer, governmentContracts, labor, lender, other, nullbenchmark string (enum) | null Stable category of the ConcentrationRiskByBenchmarkAxis rider, what the share is a percentage OF.
revenue, receivables, payables, costOfRevenue, assets, other, nullriskTypeMembers array of string Raw rider member QNames observed in this group.
benchmarkMembers array of string counterparties array of object One series per named counterparty, sorted by latest share descending.
member string Raw XBRL member QName, a filer extension naming the counterparty
name string Derived display label, the filer's own word, no entity resolution
history array of object Newest first, up to `limit` points.
period string (date) fiscalYear integer fiscalPeriod string (enum) Fiscal period of a reported value: `FY` (annual) or `Q1`-`Q4` (quarterly).
FY, Q1, Q2, Q3, Q4share number Concentration share as a fraction of 1
normalized boolean Only present (as `true`) when the share was re-scaled from a mis-tagged whole percent.
revenue number Disclosed dollar amount for this counterparty and period, when the filer tagged it
currency string | null Currency of `revenue` after conversion; only present beside `revenue`
dateFiled string (date) | null SEC filing acceptance date of the share's source filing, use to gate point-in-time access
aggregate object | null Share series tagged WITHOUT a named counterparty (e.g. "top ten customers combined"). Null when absent.
history array of object period string (date) fiscalYear integer fiscalPeriod string (enum) Fiscal period of a reported value: `FY` (annual) or `Q1`-`Q4` (quarterly).
FY, Q1, Q2, Q3, Q4share number normalized boolean dateFiled string (date) | null fx object Foreign-currency conversion audit for this period. Every monetary value in `facts` is in the requested `currency` (default **US dollars**). This block is absent when the period was already wholly in the target currency (e.g. a US filer with the default USD, nothing to convert). It is present when one or more line items were originally filed in a different currency and converted on the fly, and it records the exact rate(s) applied so the conversion can be reproduced. Rates come from the Frankfurter API (api.frankfurter.dev). Instant balance-sheet items use the spot rate at period end; flow income/cash-flow items use the day-weighted average rate over the period.
targetCurrency string The currency (ISO 4217) every `facts` value was converted INTO, the value of the request `currency` parameter (default USD). The literal `original` here means no conversion was requested: each fact stays in its as-reported currency (see `unconverted` for the per-fact mapping).
originalCurrencies array of string Every source currency (ISO 4217) that appeared in this period, the union of converted, unconverted, and already-in-target. The target currency itself is listed when some facts were natively in it (e.g. a foreign filer reporting some lines in USD alongside its converted local currency), so a mixed period reflects its true composition rather than appearing wholly converted.
rates array of object One entry per (source currency, method) actually applied. `rate` is the multiplier: `target = original * rate`.
from string ISO 4217 source currency that was converted.
method string (enum) `spot` for instant balance-sheet items (rate at period end); `average` for flow income/cash-flow items (day-weighted mean over the period).
spot, averagerate number Multiply the original-currency amount by this to get the `targetCurrency` amount.
effectiveDate string (date) Spot only: the date (YYYY-MM-DD) the applied rate was published (≤ period end).
start string (date) Average only: period start (YYYY-MM-DD).
end string (date) Average only: period end (YYYY-MM-DD).
unconverted map of string to array of string Facts that could NOT be converted (no published rate within tolerance, or an unsupported code/date), grouped by the currency they remain in: each key is a source ISO 4217 code, each value lists the curated fact names in `facts` still in that currency (NOT `targetCurrency`). Absent when everything converted. Use it to know exactly which figures to treat as native currency.
* array of string {
"groups": [
{
"riskType": "customer",
"benchmark": "revenue",
"riskTypeMembers": [
"us-gaap:CustomerConcentrationRiskMember"
],
"benchmarkMembers": [
"us-gaap:SalesRevenueNetMember",
"us-gaap:RevenueFromContractWithCustomerMember"
],
"counterparties": [
{
"member": "rfmd:AppleMember",
"name": "Apple",
"history": [
{
"period": "2026-03-28",
"fiscalYear": 2026,
"fiscalPeriod": {},
"share": 0.5,
"normalized": true,
"revenue": 3800000000,
"currency": "USD",
"dateFiled": "2026-05-15"
}
]
}
],
"aggregate": {
"history": [
{
"period": "string",
"fiscalYear": 0,
"fiscalPeriod": {},
"share": 0,
"normalized": true,
"dateFiled": "string"
}
]
}
}
],
"fx": {}
}Invalid parameters or symbol not found
error string Human-readable error message
{}Feature not available on current plan
error string Human-readable error message
{}