Returns a company's debt at the individual-borrowing level, straight from the debt footnote of 10-K / 10-Q filings: every note, bond, term loan, and debenture the filer tagged on the XBRL debt-instrument axis, with face amount, carrying amount, stated and effective interest rate, variable-rate spread, fair value, conversion price, and more, data that never appears on the face of the balance sheet.
Each period entry carries two arrays:
instruments: one entry per tranche (e.g. "Fixed Rate Senior Notes Due August 2028"). When the filer crossed the tranche with a debt-type axis, debtType names it (e.g. us-gaap:SeniorNotesMember). Sorted by face amount descending.types: aggregates by debt type (Senior Notes total, Commercial Paper, Term Loans). These are rollups across tranches and must never be summed together with instruments.Monetary values default to US dollars. Pass the currency parameter to receive any supported ISO 4217 currency instead: values not already in that currency (e.g. EUR-denominated notes) are converted at the period-end spot rate, and the per-period fx block records the exact rate(s) applied so each conversion is reproducible. Pass currency=original for as-filed values. Interest rates are fractions of 1 (0.048 = 4.8%) and are never converted.
What this data can tell you:
Data honesty notes:
dueYear is derived from the member name ("…Due2030…", "…DueApril2025…"), not from a tagged maturity date; it is null when the name carries no year token.4.8 instead of 0.048); such values are re-scaled to fractions and the entry is flagged normalized: true.Q4.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-end snapshots; quarter returns the snapshot at each quarter end (Q4 = the fiscal-year-end snapshot).
limit integer optional Maximum number of periods to return (may be clamped by subscription tier).
curl 'https://api.stockfit.io/v1/api/footnotes/debt-structure?symbol=AAPL&cik=320193&cusip=037833100&composite_figi=BBG000B9XRY4&share_class_figi=BBG001S5N8V8¤cy=USD' \
-H 'Authorization: Bearer YOUR_API_TOKEN'Per-tranche and per-type debt detail, organized by period
period string (date) The fiscal period end date (YYYY-MM-DD), the balance-sheet date the values are measured at
fiscalYear integer The company's fiscal year (handles non-December year-ends).
fiscalPeriod string (enum) Fiscal period of a reported value: `FY` (annual) or `Q1`-`Q4` (quarterly).
FY, Q1, Q2, Q3, Q4instruments array of object One entry per debt tranche, sorted by face amount descending. Fields the filer did not tag are omitted, not serialized as `null`.
member string Raw XBRL member QName of the tranche
name string Derived display label
debtType string | null Debt-type member the filer crossed this tranche with; null when not tagged
debtTypeName string | null Derived display label of `debtType`
dueYear integer | null Maturity year DERIVED from the member name ("…Due2030…"); null when the name carries no year token. Not a tagged maturity date.
currency string | null Currency of the monetary values after conversion (the requested `currency` unless listed in `fx.unconverted`); null when the entry's values remain in mixed currencies or no monetary field is present
normalized boolean Only present (as `true`) when a rate value was re-scaled from a mis-tagged whole percent (`4.8`) to a fraction (`0.048`).
faceAmount number Principal amount at issuance
carryingAmount number Balance-sheet carrying amount (net of discounts/issuance costs)
longTermDebt number Long-term debt attributed to this tranche
fairValue number Disclosed fair value
unamortizedDiscount number Unamortized discount remaining
conversionPrice number Convertible-debt conversion price per share
statedRate number Stated (coupon) interest rate as a fraction of 1
effectiveRate number Effective interest rate as a fraction of 1
variableSpread number Basis spread over the variable benchmark rate as a fraction of 1
weightedAverageRate number Weighted-average interest rate as a fraction of 1
redemptionPrice number Redemption price as a fraction of principal (1.0 = 100%)
types array of object Aggregates by debt type (Senior Notes, Commercial Paper, ...), rollups across tranches, served separately so they are never summed with `instruments`. Same fields as `instruments` minus `debtType`/`dueYear`.
member string Raw XBRL member QName of the debt type
name string Derived display label
currency string | null normalized boolean Only present (as `true`) when a rate value was re-scaled from a mis-tagged whole percent.
faceAmount number carryingAmount number longTermDebt number fairValue number unamortizedDiscount number conversionPrice number statedRate number effectiveRate number variableSpread number weightedAverageRate number Weighted-average interest rate across the type as a fraction of 1
redemptionPrice number dateFiled string (date) | null SEC filing acceptance date of the newest filing contributing to this period. Use this to gate point-in-time data and avoid lookahead bias.
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 [
{
"period": "2025-05-31",
"fiscalYear": 2025,
"fiscalPeriod": {},
"instruments": [
{
"member": "orcl:Fixed-RateSeniorNotesDueAugust2028Member",
"name": "Fixed Rate Senior Notes Due August 2028",
"debtType": "us-gaap:SeniorNotesMember",
"debtTypeName": "Senior Notes",
"dueYear": 2028,
"currency": "USD",
"normalized": true,
"faceAmount": 1500000000,
"carryingAmount": 1500000000,
"longTermDebt": 1500000000,
"fairValue": 1430000000,
"unamortizedDiscount": 4000000,
"conversionPrice": 71.25,
"statedRate": 0.048,
"effectiveRate": 0.0494,
"variableSpread": 0.011,
"weightedAverageRate": 0.0435,
"redemptionPrice": 1
}
],
"types": [
{
"member": "us-gaap:CommercialPaperMember",
"name": "Commercial Paper",
"currency": "USD",
"normalized": true,
"faceAmount": 2300000000,
"carryingAmount": 2300000000,
"longTermDebt": 92355000000,
"fairValue": 88000000000,
"unamortizedDiscount": 350000000,
"conversionPrice": 71.25,
"statedRate": 0.048,
"effectiveRate": 0.0494,
"variableSpread": 0.011,
"weightedAverageRate": 0.0435,
"redemptionPrice": 1
}
],
"dateFiled": "2025-06-24",
"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
{}