Company fundamentals built from SEC filings — revenue disaggregated by the axes an issuer tags, the KPIs and non-GAAP reconciliations it states in writing, management's guidance, valuation multiples against a peer cohort, and the two verified narrative risk flags. Reported figures stay sourced to a filing, arithmetic ones are labelled by their basis, and a missing or unproved input comes back null rather than estimated. Every endpoint here is keyed to one ticker and returns a single object — none of them page, so none carry a meta block.
/v1/stocks/
Revenue disaggregated by business segment, geography, and product/service, built from the dimensional XBRL facts the issuer tags in its own filings — annual fiscal years only, latest restated values. Each axis carries its unit, a periodEnds list oldest first, and one entry per member whose values align to those period ends by index; a null means the member was not reported that period, never zero. segmentOperatingIncome and segmentOperatingMargin are filled only when the issuer tags operating income on the same business-segment axis, and the margin axis is explicitly derived (income ÷ revenue × 100, unit: "%"). Members can overlap hierarchically — a parent line tagged alongside its children — so never sum them: consolidatedRevenue carries the real per-year totals. An axis comes back with no members when the company reports revenue only as a consolidated total.
Parameters: {ticker} (path). No query parameters — any other name returns 400 with invalid_parameter.
curl "https://api.equibles.com/v1/stocks/NVDA/revenue-breakdown" \
-H "Authorization: Bearer eq_your_api_key"import requests
r = requests.get(
"https://api.equibles.com/v1/stocks/NVDA/revenue-breakdown",
headers={"Authorization": "Bearer eq_your_api_key"},
)
print(r.json())const res = await fetch("https://api.equibles.com/v1/stocks/NVDA/revenue-breakdown", {
headers: { Authorization: "Bearer eq_your_api_key" },
});
console.log(await res.json());Response (trimmed — the two most recent fiscal years and two members per axis):
{
"ticker": "NVDA",
"companyName": "Nvidia Corp",
"segments": {
"unit": "USD",
"periodEnds": [
"2025-01-26",
"2026-01-25"
],
"members": [
{
"member": "nvda:ComputeAndNetworkingSegmentMember",
"label": "Compute and Networking Segment",
"values": [
116193000000.0,
193479000000.0
]
},
{
"member": "nvda:GraphicsSegmentMember",
"label": "Graphics Segment",
"values": [
14304000000.0,
22459000000.0
]
}
]
},
"geographies": {
"unit": "USD",
"periodEnds": [
"2025-01-26",
"2026-01-25"
],
"members": [
{
"member": "country:US",
"label": "United States",
"values": [
77482000000.0,
149617000000.0
]
},
{
"member": "country:TW",
"label": "Taiwan",
"values": [
23600000000.0,
42345000000.0
]
}
]
},
"products": {
"unit": "USD",
"periodEnds": [
"2025-01-26",
"2026-01-25"
],
"members": [
{
"member": "nvda:DataCenterMember",
"label": "Data Center",
"values": [
115186000000.0,
193737000000.0
]
},
{
"member": "nvda:ComputeMember",
"label": "Compute",
"values": [
102196000000.0,
162361000000.0
]
}
]
},
"segmentOperatingIncome": {
"unit": "USD",
"periodEnds": [
"2025-01-26",
"2026-01-25"
],
"members": [
{
"member": "nvda:ComputeAndNetworkingSegmentMember",
"label": "Compute and Networking Segment",
"values": [
82875000000.0,
130141000000.0
]
},
{
"member": "nvda:GraphicsSegmentMember",
"label": "Graphics Segment",
"values": [
5085000000.0,
9156000000.0
]
}
]
},
"segmentOperatingMargin": {
"unit": "%",
"periodEnds": [
"2025-01-26",
"2026-01-25"
],
"members": [
{
"member": "nvda:ComputeAndNetworkingSegmentMember",
"label": "Compute and Networking Segment",
"values": [
71.325294983346673207508197570,
67.263630678264824606288020920
]
},
{
"member": "nvda:GraphicsSegmentMember",
"label": "Graphics Segment",
"values": [
35.549496644295302013422818790,
40.767620998263502382118527090
]
}
]
},
"consolidatedRevenue": [
{
"periodEnd": "2025-01-26",
"unit": "USD",
"value": 130497000000.0
},
{
"periodEnd": "2026-01-25",
"unit": "USD",
"value": 215938000000.0
}
]
}
/v1/stocks/
The company's own key performance indicators — subscribers, units delivered, backlog, ARR, adjusted EBITDA, free cash flow, same-store sales — extracted from its written Item-2.02 8-K earnings releases and 10-K/10-Q MD&A, the operational and non-GAAP figures XBRL does not carry. Earnings-call transcripts are deliberately not a KPI figure source. Each entry in data is one metric as a time series: points oldest first, each with the stated value on the company's own scale (unit rides the series), the written source, the verbatim quote, and periodShape — Quarter, Annual, YearToDate, Instant, or None when the wording is ambiguous. yoYPercent is filled only against an exactly comparable prior-year period, so it is often null. bridge carries the GAAP-to-non-GAAP reconciliation when the release stated one for that metric.
Parameters: {ticker} (path); metric (optional — return one metric on its own, matched case-insensitively against the company's own labels; a name matching several metrics returns 400 naming the candidates, a name matching none returns 404 listing every metric on file).
curl "https://api.equibles.com/v1/stocks/NVDA/kpis" \
-H "Authorization: Bearer eq_your_api_key"import requests
r = requests.get(
"https://api.equibles.com/v1/stocks/NVDA/kpis",
headers={"Authorization": "Bearer eq_your_api_key"},
)
print(r.json())const res = await fetch("https://api.equibles.com/v1/stocks/NVDA/kpis", {
headers: { Authorization: "Bearer eq_your_api_key" },
});
console.log(await res.json());{
"ticker": "NVDA",
"companyName": "Nvidia Corp",
"data": [
{
"name": "Remaining share repurchase authorization",
"unit": "USD billions",
"isNonGaap": false,
"latestValueFormatted": "$38.5B",
"latestPeriodText": "As of the end of the first quarter of fiscal 2027",
"yoYPercent": null,
"points": [
{
"periodLabel": "As of the end of the first quarter of fiscal 2027",
"value": 38.500000,
"valueFormatted": "$38.5B",
"filedDate": "2026-05-20",
"source": "release",
"sourceQuote": "As of the end of the first quarter, the company had $38.5 billion remaining under its share repurchase authorization.",
"isAnnual": false,
"periodShape": "Instant",
"sourceDocumentId": "9ab0a248-e65a-46ad-abc2-db37abbf4a22"
}
],
"bridge": null
}
]
}
/v1/stocks/
The GAAP-to-non-GAAP reconciliations a company states in its earnings releases — adjusted EBITDA, adjusted EPS, adjusted operating income and the like — verifier-approved and newest filing first. Each item is one measure: the GAAP starting line, every stated adjustment in position order, and the non-GAAP result, with the period wording, the stated scale in unit, and the verbatim quote (gaapValue plus the adjustments equals nonGaapValue, on that scale). The /kpis endpoint carries the same bridge inline beside a metric; this one returns the reconciliations on their own. filingsExamined makes an empty data interpretable — greater than zero means the filings were read and stated no reconciliation, as NVIDIA's response shows, while zero means the company has not been processed yet.
Parameters: {ticker} (path); limit (maximum source filings to read, newest first — default 6, maximum 20; a larger value is clamped to 20, while zero or a negative value returns 400).
curl "https://api.equibles.com/v1/stocks/NVDA/non-gaap-bridge?limit=2" \
-H "Authorization: Bearer eq_your_api_key"import requests
r = requests.get(
"https://api.equibles.com/v1/stocks/NVDA/non-gaap-bridge?limit=2",
headers={"Authorization": "Bearer eq_your_api_key"},
)
print(r.json())const res = await fetch("https://api.equibles.com/v1/stocks/NVDA/non-gaap-bridge?limit=2", {
headers: { Authorization: "Bearer eq_your_api_key" },
});
console.log(await res.json());{
"ticker": "NVDA",
"companyName": "Nvidia Corp",
"filingsExamined": 4,
"newestExaminedFiledDate": "2026-05-20",
"data": []
}
The same call for a filer with reconciliations on file — GET /v1/stocks/PAYC/non-gaap-bridge?limit=1, trimmed to the newest filing's first two items:
{
"ticker": "PAYC",
"companyName": "Paycom Software, Inc.",
"filingsExamined": 6,
"newestExaminedFiledDate": "2026-08-06",
"data": [
{
"nonGaapMetricName": "Non-GAAP net income per share, diluted",
"period": "the three months ended June 30, 2026",
"fiscalYear": 2026,
"fiscalQuarter": 2,
"nonGaapValue": 2.780000,
"gaapMetricName": "Earnings per share, diluted",
"gaapValue": 2.340000,
"unit": "USD per share",
"sourceQuote": "Earnings per share, diluted $ 2.34 $ 1.58 $ 5.43 $ 4.06 Non-cash stock-based compensation expense 0.38 0.68 0.65 1.08 Gain on modification of naming rights agreement — — (0.19) — Income tax effect on non-GAAP adjustments 0.06 (0.20) 0.07 (0.27) Non-GAAP net income per share, diluted $ 2.78 $ 2.06 $ 5.96 $ 4.87",
"fromTable": false,
"form": "10-Q",
"filedDate": "2026-08-06",
"adjustments": [
{
"label": "Non-cash stock-based compensation expense",
"amount": 0.380000,
"position": 0
},
{
"label": "Gain on modification of naming rights agreement",
"amount": 0.000000,
"position": 1
},
{
"label": "Income tax effect on non-GAAP adjustments",
"amount": 0.060000,
"position": 2
}
]
},
{
"nonGaapMetricName": "Non-GAAP net income",
"period": "the three months ended June 30, 2026",
"fiscalYear": 2026,
"fiscalQuarter": 2,
"nonGaapValue": 127.700000,
"gaapMetricName": "Net income",
"gaapValue": 107.400000,
"unit": "millions",
"sourceQuote": "Net income $ 107.4 $ 89.5 $ 263.1 $ 228.9 Non-cash stock-based compensation expense 17.6 38.4 31.6 60.6 Gain on modification of naming rights agreement — — (9.0) — Income tax effect on non-GAAP adjustments 2.8 (11.3) 3.3 (15.2) Non-GAAP net income $ 127.7 $ 116.6 $ 289.0 $ 274.3",
"fromTable": false,
"form": "10-Q",
"filedDate": "2026-08-06",
"adjustments": [
{
"label": "Non-cash stock-based compensation expense",
"amount": 17.600000,
"position": 0
},
{
"label": "Gain on modification of naming rights agreement",
"amount": 0.000000,
"position": 1
},
{
"label": "Income tax effect on non-GAAP adjustments",
"amount": 2.800000,
"position": 2
}
]
}
]
}
/v1/stocks/
Forward guidance ranges issued by management, extracted from Item-2.02 8-K earnings releases and earnings-call transcripts — some issuers guide only verbally on the call, so form can be Earnings Call, and those rows carry no filingUrl. Rows come newest release first, so the first ones are the current outlook. Each carries the guided low/high/midpoint, the unit (USD, USD/share, or percent — a percent row's value is stated in percent, e.g. 74.4), the GAAP/non-GAAP basis, the verbatim quote, and changeVsPrior measured only against guidance announced in an earlier release. Revenue and diluted-EPS rows also carry the reported actual and a Below/Within/Above actualVerdict once the guided period's XBRL facts land, with actualIsDerived marking a Q4 figure computed as full year minus the nine-month year-to-date; non-GAAP guidance is never scored against GAAP actuals. periodEnded is tri-state: true once the period has certainly closed, false while it is still open, and null for rows stating no normalized period (an open-ended target like "annualized savings when fully implemented"), which cannot be judged either way. The true/false judgement is deliberately conservative — a January or February fiscal-year filer's row stays false for a while after the real close. coverage reports how many source documents the lane has read, so an empty data with documentsExamined above zero means the documents stated no guidance; coverage.stalenessNote is set when the newest guidance on record trails the newest examined document by more than one quarterly filing cycle — the later documents were read and state no newer guidance — and is null while the record is fresh.
Parameters: {ticker} (path). No query parameters — any other name returns 400 with invalid_parameter.
curl "https://api.equibles.com/v1/stocks/NVDA/guidance" \
-H "Authorization: Bearer eq_your_api_key"import requests
r = requests.get(
"https://api.equibles.com/v1/stocks/NVDA/guidance",
headers={"Authorization": "Bearer eq_your_api_key"},
)
print(r.json())const res = await fetch("https://api.equibles.com/v1/stocks/NVDA/guidance", {
headers: { Authorization: "Bearer eq_your_api_key" },
});
console.log(await res.json());Response (trimmed to two of the 32 rows — the current outlook, and a closed period already scored against its actual):
{
"ticker": "NVDA",
"companyName": "Nvidia Corp",
"data": [
{
"filedDate": "2026-05-20",
"form": "8-K",
"filingUrl": "https://www.sec.gov/Archives/edgar/data/0001045810/0001045810-26-000051.txt",
"metric": "Revenue",
"metricKind": "Revenue",
"period": "second quarter of fiscal 2027",
"fiscalYear": 2027,
"fiscalQuarter": 2,
"low": 89180000000.0000,
"high": 92820000000.0000,
"midpoint": 91000000000.0000,
"unit": "USD",
"basis": "Unspecified",
"fromTable": false,
"quote": "Revenue is expected to be $91.0 billion, plus or minus 2%.",
"periodEnded": false,
"actual": null,
"actualVerdict": null,
"actualIsDerived": false,
"priorActual": 81615000000.0,
"priorActualIsAnnual": false,
"midpointVsPriorPercent": 11.499111682901427433682533850,
"changeVsPrior": "Initiated"
},
{
"filedDate": "2025-10-31",
"form": "Earnings Call",
"filingUrl": null,
"metric": "Total revenue",
"metricKind": "Revenue",
"period": "fourth quarter",
"fiscalYear": 2026,
"fiscalQuarter": 4,
"low": 63700000000.0000,
"high": 66300000000.0000,
"midpoint": 65000000000.0000,
"unit": "USD",
"basis": "Unspecified",
"fromTable": false,
"quote": "Total revenue is expected to be $65 billion, plus or minus 2%.",
"periodEnded": false,
"actual": 68127000000.0,
"actualVerdict": "Above",
"actualIsDerived": true,
"priorActual": null,
"priorActualIsAnnual": false,
"midpointVsPriorPercent": null,
"changeVsPrior": null
}
],
"coverage": {
"documentsExamined": 12,
"coverageStartDate": "2024-04-30",
"coverageEndDate": "2026-05-20",
"stalenessNote": null
}
}
/v1/stocks/
Trailing-twelve-month EV/Revenue, EV/EBIT and P/E with the inputs behind them and a peer cohort's median and quartiles. TTM figures sum four consecutive discrete fiscal quarters and each carries its window end, so you can see how stale it is; enterprise value uses same-date, definitionally non-overlapping debt and cash and reports that balance-sheet date. The subject is excluded from its own peers: sizeBanded true means the cohort is the similar-size market-cap band (marketCapFloor to marketCapCeiling) rather than the whole industry, companyCount stays the industry-wide count while peerCompanyCount is the cohort, and each ratio's own sample count rides beside it — a median and its quartiles stay null below three reporting peers. A missing or unproved input yields a null ratio, never an estimate, and a company with no computable ratio at all returns 404. REITs additionally carry P/FFO and P/AFFO from the company's own SEC-stated reconciliation, and any filer with a verified reconciliation carries evToAdjustedEbitda over its own stated Adjusted EBITDA (adjustedEbitda in absolute USD, with adjustedEbitdaBasis and the verbatim adjustedEbitdaLabel); those fields are null for everyone else, as they are for NVIDIA below.
Parameters: {ticker} (path). No query parameters — any other name returns 400 with invalid_parameter.
curl "https://api.equibles.com/v1/stocks/NVDA/valuation-multiples" \
-H "Authorization: Bearer eq_your_api_key"import requests
r = requests.get(
"https://api.equibles.com/v1/stocks/NVDA/valuation-multiples",
headers={"Authorization": "Bearer eq_your_api_key"},
)
print(r.json())const res = await fetch("https://api.equibles.com/v1/stocks/NVDA/valuation-multiples", {
headers: { Authorization: "Bearer eq_your_api_key" },
});
console.log(await res.json());{
"ticker": "NVDA",
"companyName": "Nvidia Corp",
"industry": "Semiconductors",
"marketCap": 5111765703697.122,
"enterpriseValue": 5088545703697.12,
"ttmRevenue": 302969000000.0,
"ttmEbit": 197579000000.0,
"ttmEpsDiluted": 7.91,
"enterpriseValueBalanceSheetDate": "2026-07-26",
"ttmRevenueWindowEnd": "2026-07-26",
"ttmEbitWindowEnd": "2026-07-26",
"ttmEpsWindowEnd": "2026-07-26",
"evToRevenue": 16.80,
"evToEbit": 25.75,
"peRatio": 26.81,
"priceToFfo": null,
"priceToAffo": null,
"ffoPerShare": null,
"affoPerShare": null,
"ffoBasis": null,
"affoBasis": null,
"ffoLabel": null,
"affoLabel": null,
"evToAdjustedEbitda": null,
"adjustedEbitda": null,
"adjustedEbitdaBasis": null,
"adjustedEbitdaLabel": null,
"industryContext": {
"industry": "Semiconductors",
"companyCount": 61,
"peerCompanyCount": 3,
"sizeBanded": true,
"marketCapFloor": 511176570369.7122,
"marketCapCeiling": 51117657036971.22,
"evToRevenueCompanyCount": 3,
"evToEbitCompanyCount": 3,
"peCompanyCount": 3,
"priceToFfoCompanyCount": 0,
"priceToAffoCompanyCount": 0,
"evToAdjustedEbitdaCompanyCount": 0,
"evToRevenueMedian": 18.77,
"evToRevenueP25": 15.12,
"evToRevenueP75": 20.90,
"evToEbitMedian": 53.05,
"evToEbitP25": 35.26,
"evToEbitP75": 86.27,
"peMedian": 59.17,
"peP25": 40.14,
"peP75": 91.40,
"priceToFfoMedian": null,
"priceToFfoP25": null,
"priceToFfoP75": null,
"priceToAffoMedian": null,
"priceToAffoP25": null,
"priceToAffoP75": null,
"evToAdjustedEbitdaMedian": null,
"evToAdjustedEbitdaP25": null,
"evToAdjustedEbitdaP75": null
}
}
/v1/stocks/
EV/Revenue, EV/EBIT, EV/EBITDA and P/E recomputed point-in-time at each past quarter's filing date, oldest first, over roughly ten years. Every sample uses only facts filed by its asOf date and that day's raw close, so the series never back-projects today's figures. The series carries one sample per publication date: when one filing first publishes several quarters (a post-IPO catch-up 10-K), only the newest quarter it made public appears. A completed full-history reconciliation for the exact primary price series preserves samples across its split; anchors before a pending, unattributed, or stale-series split are omitted because their raw-close basis remains unproved. omittedAnchorCount says how many anchors were dropped in total and omittedForUnprovenSplitBasisCount how many fell to that split-basis rule alone, so a short series is explained rather than silent. A quarter missing an input returns null for that ratio, never an estimate, and names the gap: evMissingReason says why enterprise value itself was not computable (NoCloseNearSampleDate, MissingShareCount, MissingSameDateDebt or MissingSameDateCash; null when EV computed) and peMissingReason why P/E was not (NoCloseNearSampleDate, IncompleteTtmEps or NonPositiveTtmEps). An EV ratio can still be null with a null evMissingReason when EV computed but that ratio's earnings leg did not — evToEbit needs the exact TTM EBIT chain, and evToEbitda additionally the company's tagged depreciation-and-amortization family for every TTM quarter.
For REITs the response also prices the company's own stated FFO and AFFO — priceToFfo and priceToAffo, re-resolved point-in-time from the approved SEC-filed non-GAAP reconciliations as they existed at each sample date. These are company-defined measures, so each priced sample states its aggregation basis (ffoBasis/affoBasis: "TTM" for four consecutive stated fiscal quarters, or a stated full year like "FY2024"), and the response-level ffoLabel/affoLabel carry the company's verbatim name for each measure. All of these fields are null for non-REITs. Any filer with a verified reconciliation also prices evToAdjustedEbitda — the sample's same-date enterprise value over the company's own stated Adjusted EBITDA — with a per-point adjustedEbitdaBasis and the response-level adjustedEbitdaLabel; these are null without one.
Parameters: {ticker} (path). No query parameters — any other name returns 400 with invalid_parameter.
curl "https://api.equibles.com/v1/stocks/NVDA/valuation-multiples/history" \
-H "Authorization: Bearer eq_your_api_key"import requests
r = requests.get(
"https://api.equibles.com/v1/stocks/NVDA/valuation-multiples/history",
headers={"Authorization": "Bearer eq_your_api_key"},
)
print(r.json())const res = await fetch("https://api.equibles.com/v1/stocks/NVDA/valuation-multiples/history", {
headers: { Authorization: "Bearer eq_your_api_key" },
});
console.log(await res.json());Response (trimmed to the two most recent of the 9 samples returned):
{
"ticker": "NVDA",
"companyName": "Nvidia Corp",
"omittedAnchorCount": 31,
"omittedForUnprovenSplitBasisCount": 31,
"ffoLabel": null,
"affoLabel": null,
"adjustedEbitdaLabel": null,
"points": [
{
"label": "FY2027 Q1",
"asOf": "2026-05-20",
"close": 223.4700,
"peRatio": 34.22,
"evToRevenue": 21.17,
"evToEbit": 33.07,
"evToEbitda": null,
"priceToFfo": null,
"priceToAffo": null,
"ffoBasis": null,
"affoBasis": null,
"evToAdjustedEbitda": null,
"adjustedEbitdaBasis": null,
"evMissingReason": null,
"peMissingReason": null
},
{
"label": "FY2027 Q2",
"asOf": "2026-08-26",
"close": 209.6600,
"peRatio": 26.51,
"evToRevenue": 16.60,
"evToEbit": 25.46,
"evToEbitda": null,
"priceToFfo": null,
"priceToAffo": null,
"ffoBasis": null,
"affoBasis": null,
"evToAdjustedEbitda": null,
"adjustedEbitdaBasis": null,
"evMissingReason": null,
"peMissingReason": null
}
]
}
A REIT response with the extracted multiples populated — GET /v1/stocks/ARE/valuation-multiples/history, trimmed to two of the 27 samples returned:
{
"ticker": "ARE",
"companyName": "Alexandria Real Estate Equities, Inc.",
"omittedAnchorCount": 13,
"omittedForUnprovenSplitBasisCount": 0,
"ffoLabel": "Funds from operations per share attributable to Alexandria Real Estate Equities, Inc.'s common stockholders – diluted",
"affoLabel": "Funds from operations per share attributable to Alexandria Real Estate Equities, Inc.'s common stockholders – diluted, as adjusted",
"adjustedEbitdaLabel": null,
"points": [
{
"label": "FY2026 Q1",
"asOf": "2026-04-27",
"close": 45.5600,
"peRatio": null,
"evToRevenue": 6.82,
"evToEbit": null,
"evToEbitda": null,
"priceToFfo": 5.92,
"priceToAffo": 5.06,
"ffoBasis": "FY2025",
"affoBasis": "FY2025",
"evToAdjustedEbitda": null,
"adjustedEbitdaBasis": null,
"evMissingReason": null,
"peMissingReason": "NonPositiveTtmEps"
},
{
"label": "FY2026 Q2",
"asOf": "2026-08-03",
"close": 53.0300,
"peRatio": null,
"evToRevenue": 7.60,
"evToEbit": null,
"evToEbitda": null,
"priceToFfo": 6.90,
"priceToAffo": 5.89,
"ffoBasis": "FY2025",
"affoBasis": "FY2025",
"evToAdjustedEbitda": null,
"adjustedEbitdaBasis": null,
"evMissingReason": null,
"peMissingReason": "NonPositiveTtmEps"
}
]
}
A filer with a verified Adjusted EBITDA reconciliation prices evToAdjustedEbitda the same way: GET /v1/stocks/NGVT/valuation-multiples/history, trimmed to the three most recent of the 27 samples returned:
{
"ticker": "NGVT",
"companyName": "Ingevity Corp",
"omittedAnchorCount": 13,
"omittedForUnprovenSplitBasisCount": 0,
"ffoLabel": null,
"affoLabel": null,
"adjustedEbitdaLabel": "Adjusted EBITDA from continuing operations (Non-GAAP)",
"points": [
{
"label": "FY2025 Q4",
"asOf": "2026-02-26",
"close": 70.5200,
"peRatio": null,
"evToRevenue": 3.10,
"evToEbit": 8.50,
"evToEbitda": null,
"priceToFfo": null,
"priceToAffo": null,
"ffoBasis": null,
"affoBasis": null,
"evToAdjustedEbitda": 9.70,
"adjustedEbitdaBasis": "TTM",
"evMissingReason": null,
"peMissingReason": "NonPositiveTtmEps"
},
{
"label": "FY2026 Q1",
"asOf": "2026-05-07",
"close": 74.0700,
"peRatio": null,
"evToRevenue": 3.13,
"evToEbit": null,
"evToEbitda": null,
"priceToFfo": null,
"priceToAffo": null,
"ffoBasis": null,
"affoBasis": null,
"evToAdjustedEbitda": 9.88,
"adjustedEbitdaBasis": "TTM",
"evMissingReason": null,
"peMissingReason": "NonPositiveTtmEps"
},
{
"label": "FY2026 Q2",
"asOf": "2026-07-30",
"close": 70.1900,
"peRatio": 46.48,
"evToRevenue": 3.03,
"evToEbit": null,
"evToEbitda": null,
"priceToFfo": null,
"priceToAffo": null,
"ffoBasis": null,
"affoBasis": null,
"evToAdjustedEbitda": 9.43,
"adjustedEbitdaBasis": "TTM",
"evMissingReason": null,
"peMissingReason": null
}
]
}
/v1/stocks/
A company's disclosed customer-concentration risk — statements like "one customer accounted for 26% of revenue" — read from the filing's own narrative text and verified before publication. Each figure carries its basis (Revenue or Receivables), the customer count, the percentage as a 0–100 number, the verbatim period wording and quote. headline repeats the newest period's highest revenue-basis percentage, falling back to any basis. figures lists revenue before receivables, then the newest disclosed period, then the largest percentage. hasDisclosure false is never a statement of no risk: missReason says why — tagged-xbrl when the issuer's current structured XBRL takes precedence over the narrative row (NVIDIA and Apple among them, whose figure is available through the MCP tool instead), nothing-found when the latest scanned filing stated nothing, with lastScannedForm and lastScannedFiledDate naming it, or not-processed when the company's filings have not been examined yet. A newer verified narrative supersedes stale tags.
Parameters: {ticker} (path). No query parameters — any other name returns 400 with invalid_parameter.
curl "https://api.equibles.com/v1/stocks/NVDA/customer-concentration" \
-H "Authorization: Bearer eq_your_api_key"import requests
r = requests.get(
"https://api.equibles.com/v1/stocks/NVDA/customer-concentration",
headers={"Authorization": "Bearer eq_your_api_key"},
)
print(r.json())const res = await fetch("https://api.equibles.com/v1/stocks/NVDA/customer-concentration", {
headers: { Authorization: "Bearer eq_your_api_key" },
});
console.log(await res.json());{
"ticker": "NVDA",
"companyName": "Nvidia Corp",
"hasDisclosure": false,
"form": null,
"filedDate": null,
"filingUrl": null,
"headline": null,
"figures": [],
"missReason": "tagged-xbrl",
"lastScannedForm": null,
"lastScannedFiledDate": null
}
A filer that leaves the disclosure in narrative text — GET /v1/stocks/ANET/customer-concentration, whose filings name two end customers each above 10% of revenue:
{
"ticker": "ANET",
"companyName": "Arista Networks, Inc.",
"hasDisclosure": true,
"form": "10-Q",
"filedDate": "2026-05-06",
"filingUrl": "https://www.sec.gov/Archives/edgar/data/0001596532/0001596532-26-000078.txt",
"headline": {
"basis": "Revenue",
"customerCount": 1,
"percent": 26.00,
"period": "the year ended December 31, 2025",
"quote": "Sales to one end customer represented 16%, 15%, and 21% of our total revenue, and sales to the other end customer represented 26%, 20%, and 18% of our total revenue for the years ended December 31, 2025, 2024, and 2023, respectively."
},
"figures": [
{
"basis": "Revenue",
"customerCount": 1,
"percent": 26.00,
"period": "the year ended December 31, 2025",
"quote": "Sales to one end customer represented 16%, 15%, and 21% of our total revenue, and sales to the other end customer represented 26%, 20%, and 18% of our total revenue for the years ended December 31, 2025, 2024, and 2023, respectively."
},
{
"basis": "Revenue",
"customerCount": 1,
"percent": 16.00,
"period": "the year ended December 31, 2025",
"quote": "Sales to one end customer represented 16%, 15%, and 21% of our total revenue, and sales to the other end customer represented 26%, 20%, and 18% of our total revenue for the years ended December 31, 2025, 2024, and 2023, respectively."
}
],
"missReason": null,
"lastScannedForm": null,
"lastScannedFiledDate": null
}
/v1/stocks/
Whether the company's latest examined SEC filing states substantial doubt about its ability to continue as a going concern, with the verbatim disclosure, the source filing, and the history of examined filings newest first showing when doubt appeared, was alleviated, or cleared. Flags come from each company's 10-K/10-Q narrative and are verified before publication; a filing with no going-concern language counts as no doubt and carries an empty quote, which is what clears a flag. currentStatus is null when there is no active or resolved flag, and when it is present flaggedDate is the newest filing still stating doubt while firstFlaggedDate marks where that episode began. Coverage starts at coverageStartDate — filings older than it were never examined, so an earlier doubt episode is invisible here, not disproven — and examined is false when nothing has been checked yet.
Parameters: {ticker} (path). No query parameters — any other name returns 400 with invalid_parameter.
curl "https://api.equibles.com/v1/stocks/NVDA/going-concern" \
-H "Authorization: Bearer eq_your_api_key"import requests
r = requests.get(
"https://api.equibles.com/v1/stocks/NVDA/going-concern",
headers={"Authorization": "Bearer eq_your_api_key"},
)
print(r.json())const res = await fetch("https://api.equibles.com/v1/stocks/NVDA/going-concern", {
headers: { Authorization: "Bearer eq_your_api_key" },
});
console.log(await res.json());{
"ticker": "NVDA",
"companyName": "Nvidia Corp",
"examined": true,
"coverageStartDate": "2026-05-20",
"currentStatus": null,
"history": [
{
"filedDate": "2026-05-20",
"form": "10-Q",
"filingUrl": "https://www.sec.gov/Archives/edgar/data/0001045810/0001045810-26-000052.txt",
"substantialDoubt": false,
"alleviated": false,
"quote": ""
}
]
}