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`](/docs/mcp/tools/supply-chain); the [supply chain API overview](/supply-chain-api) 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).

```bash
curl "https://api.equibles.com/v1/stocks/THO/supply-chain?side=customers" \
  -H "Authorization: Bearer eq_your_api_key"
```

```python
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())
```

```javascript
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());
```

```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:

```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": 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).

```bash
curl "https://api.equibles.com/v1/stocks/NVDA/supply-chain/overlap?vs=AMD&limit=2" \
  -H "Authorization: Bearer eq_your_api_key"
```

```python
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())
```

```javascript
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());
```

```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:

```json
{
    "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
}
```