A company's customers, suppliers, competitors and partners as annual 10-K reports name them: its own latest 10-K, plus the 10-Ks of other listed companies that name it. Every statement carries the verbatim sentence and a link to the filing on sec.gov. Filings are read largest companies first, so a company missing from a list is not evidence that no relationship exists. The same data answers the MCP tools GetSupplyChain and GetSupplyChainOverlap; the supply chain API overview puts both side by side.
Both endpoints need the Pro plan. Other plans get a 200, not a 403: locked is true, upgradeUrl links to pricing, the counts are filled in, and every list is empty, so no company is named.
Supply chain
GET /v1/stocks/{ticker}/supply-chain
Returns the company's customers, suppliers, competitors and partners. Each company has a name, a ticker when it matched a listed company (MIC:TICKER outside the US, null when unlisted), and its statements: who stated it (statedBy, the filer's ticker, or its name when unlisted), whether that is the company's own 10-K (isOwnFiling), the filing (form, filedDate, filingUrl), the quote, and the role as written. A competitor's competitorNamedBy says whose 10-K names the rivalry: both, company (only the company's own), or competitor (only the competitor's).
When a filing states a share, share gives its percent (or percentFloor for "10% or more"), its basis (Revenue or Receivables) and its period as written. A revenue share also gets a value: amountUsd is the share times the annual revenue the same filing reports (revenueUsd, revenuePeriodEnd), a floor when isFloor is true. When the customer's own revenue covers an overlapping fiscal year, customerRevenueShare is that amount as a percent of it (customerRevenueUsd, customerRevenuePeriodEnd); it is derived, never stated by a filing.
annualReport is the company's own latest 10-K that was read, or null. namedOnlyByOthers is true for a company listed only outside the US, whose rows all come from US companies' 10-Ks. counts covers every company on each side, before the side, quantifiedOnly and limit filters. overview gives the summed revenue share the company states for its named customers (namedCustomerShare), its largestCustomer, and the mostReliantSupplier: the supplier whose own 10-K states the largest share of its revenue coming from this company.
Parameters: {ticker} (path, e.g. THO, or MIC:TICKER such as XPAR:SU for a listing outside the US); side (customers, suppliers, competitors or partners; default all four, and the other sides come back empty); quantifiedOnly (true keeps only companies with a stated share); lens (stated, the default, puts the largest stated share first; dependsOn puts first the companies with the largest share of this company's revenue; dependents puts first those that rely most on this company for their own revenue); limit (companies per side, default 50, max 500).
curl "https://api.equibles.com/v1/stocks/THO/supply-chain?side=customers" \
-H "Authorization: Bearer eq_your_api_key"import requests
r = requests.get(
"https://api.equibles.com/v1/stocks/THO/supply-chain?side=customers",
headers={"Authorization": "Bearer eq_your_api_key"},
)
print(r.json())const res = await fetch("https://api.equibles.com/v1/stocks/THO/supply-chain?side=customers", {
headers: { Authorization: "Bearer eq_your_api_key" },
});
console.log(await res.json());{
"ticker": "THO",
"companyName": "Thor Industries Inc",
"annualReport": {
"form": "10-K",
"filedDate": "2026-09-22",
"filingUrl": "https://www.sec.gov/Archives/edgar/data/0000730263/0000730263-26-000027.txt"
},
"namedOnlyByOthers": false,
"locked": false,
"upgradeUrl": null,
"counts": {
"customers": 1,
"suppliers": 2,
"competitors": 5,
"partners": 0
},
"overview": {
"namedCustomerShare": 13.00,
"namedCustomerShareIsFloor": false,
"namedCustomerCount": 1,
"namedCustomerPeriod": "fiscal 2026",
"largestCustomer": {
"name": "FreedomRoads, LLC",
"ticker": null,
"percent": 13.00,
"isFloor": false,
"period": "fiscal 2026"
},
"mostReliantSupplier": null
},
"customers": [
{
"name": "FreedomRoads, LLC",
"ticker": null,
"competitorNamedBy": null,
"statements": [
{
"statedBy": "THO",
"isOwnFiling": true,
"form": "10-K",
"filedDate": "2026-09-22",
"filingUrl": "https://www.sec.gov/Archives/edgar/data/0000730263/0000730263-26-000027.txt",
"quote": "One dealer, FreedomRoads, LLC, accounted for approximately 13.0% of our consolidated net sales in fiscal 2026 and for approximately 14.0% and 14.0% in fiscal 2025 and fiscal 2024, respectively.",
"role": "independent dealer",
"share": {
"percent": 13.00,
"percentFloor": null,
"basis": "Revenue",
"period": "fiscal 2026"
},
"value": {
"amountUsd": 1249058850.0,
"isFloor": false,
"revenueUsd": 9608145000.0,
"revenuePeriodEnd": "2026-07-31",
"customerRevenueShare": null,
"customerRevenueUsd": null,
"customerRevenuePeriodEnd": null
}
}
]
}
],
"suppliers": [],
"competitors": [],
"partners": []
}
Without Pro, the same company keeps its counts and overview shares, with no company named:
{
"ticker": "THO",
"companyName": "Thor Industries Inc",
"annualReport": {
"form": "10-K",
"filedDate": "2026-09-22",
"filingUrl": "https://www.sec.gov/Archives/edgar/data/0000730263/0000730263-26-000027.txt"
},
"namedOnlyByOthers": false,
"locked": true,
"upgradeUrl": "https://equibles.com/pricing",
"counts": {
"customers": 1,
"suppliers": 2,
"competitors": 5,
"partners": 0
},
"overview": {
"namedCustomerShare": 13.00,
"namedCustomerShareIsFloor": false,
"namedCustomerCount": 1,
"namedCustomerPeriod": "fiscal 2026",
"largestCustomer": {
"name": null,
"ticker": null,
"percent": 13.00,
"isFloor": false,
"period": "fiscal 2026"
},
"mostReliantSupplier": null
},
"customers": [],
"suppliers": [],
"competitors": [],
"partners": []
}
Supply chain overlap
GET /v1/stocks/{ticker}/supply-chain/overlap
Shows which of the company's suppliers and customers also supply or buy from its competitors. Only competitors that matched a listed company take part. A supplier or customer matches a competitor's when both resolved to the same listed company or, when either is unlisted, when their written names match, so one company written two ways that resolve differently counts as two.
competitors lists them with namedBy (as competitorNamedBy above), sharedCount, and ownFilingRead. When ownFilingRead is false, the competitor's own 10-K is not read yet, and a supplier or customer only that filing would name is unknown. suppliers and customers list every company on that side, shared ones first, each with sharedWith: the competitors that name it too, by ticker (by name when one has none), empty when none. The counts (competitorCount, unreadCompetitorCount, supplierCount, sharedSupplierCount, customerCount, sharedCustomerCount) cover every row before limit.
With vs, focus compares the company with that one competitor: for suppliers and for customers, both, onlyCompany and onlyCompetitor, each with its count. A vs that is not one of the listed competitors returns a 400 naming the ones you can use.
Parameters: {ticker} (path, e.g. NVDA, or MIC:TICKER); vs (one competitor's ticker as competitors shows it, e.g. AMD); limit (companies per list, default 50, max 500).
curl "https://api.equibles.com/v1/stocks/NVDA/supply-chain/overlap?vs=AMD&limit=2" \
-H "Authorization: Bearer eq_your_api_key"import requests
r = requests.get(
"https://api.equibles.com/v1/stocks/NVDA/supply-chain/overlap?vs=AMD&limit=2",
headers={"Authorization": "Bearer eq_your_api_key"},
)
print(r.json())const res = await fetch("https://api.equibles.com/v1/stocks/NVDA/supply-chain/overlap?vs=AMD&limit=2", {
headers: { Authorization: "Bearer eq_your_api_key" },
});
console.log(await res.json());{
"ticker": "NVDA",
"companyName": "Nvidia Corp",
"locked": false,
"upgradeUrl": null,
"competitorCount": 15,
"unreadCompetitorCount": 3,
"supplierCount": 9,
"sharedSupplierCount": 3,
"customerCount": 4,
"sharedCustomerCount": 3,
"competitors": [
{
"name": "Broadcom",
"ticker": "AVGO",
"namedBy": "company",
"ownFilingRead": true,
"sharedCount": 4
},
{
"name": "Qualcomm Incorporated",
"ticker": "QCOM",
"namedBy": "both",
"ownFilingRead": true,
"sharedCount": 3
}
],
"suppliers": [
{
"name": "Taiwan Semiconductor Manufacturing Company Limited",
"ticker": "TSM",
"sharedWith": [
"AVGO",
"QCOM",
"AMD"
]
},
{
"name": "Rambus Inc",
"ticker": "RMBS",
"sharedWith": [
"AVGO",
"QCOM"
]
}
],
"customers": [
{
"name": "CDW Corp",
"ticker": "CDW",
"sharedWith": [
"AVGO",
"HPE",
"MSFT"
]
},
{
"name": "Hewlett Packard Enterprise Co",
"ticker": "HPE",
"sharedWith": [
"AVGO",
"INTC"
]
}
],
"focus": {
"competitor": {
"name": "Advanced Micro Devices, Inc.",
"ticker": "AMD",
"namedBy": "both",
"ownFilingRead": true,
"sharedCount": 2
},
"suppliers": {
"bothCount": 2,
"onlyCompanyCount": 7,
"onlyCompetitorCount": 8,
"both": [
{
"name": "Taiwan Semiconductor Manufacturing Company Limited",
"ticker": "TSM"
},
{
"name": "Samsung Electronics Co., Ltd.",
"ticker": null
}
],
"onlyCompany": [
{
"name": "Coherent Corp.",
"ticker": "COHR"
},
{
"name": "Fabrinet",
"ticker": "FN"
}
],
"onlyCompetitor": [
{
"name": "GLOBALFOUNDRIES Inc.",
"ticker": "GFS"
},
{
"name": "Tongfu Microelectronics Co., Ltd.",
"ticker": "XSHE:002156"
}
]
},
"customers": {
"bothCount": 0,
"onlyCompanyCount": 4,
"onlyCompetitorCount": 2,
"both": [],
"onlyCompany": [
{
"name": "CDW Corp",
"ticker": "CDW"
},
{
"name": "CoreWeave, Inc.",
"ticker": "CRWV"
}
],
"onlyCompetitor": [
{
"name": "Fortinet, Inc.",
"ticker": "FTNT"
},
{
"name": "OpenAI",
"ticker": null
}
]
}
}
}
Without Pro, the same request ignores vs, and only the counts come back:
{
"ticker": "NVDA",
"companyName": "Nvidia Corp",
"locked": true,
"upgradeUrl": "https://equibles.com/pricing",
"competitorCount": 15,
"unreadCompetitorCount": 3,
"supplierCount": 9,
"sharedSupplierCount": 3,
"customerCount": 4,
"sharedCustomerCount": 3,
"competitors": [],
"suppliers": [],
"customers": [],
"focus": null
}