> ## Documentation Index
> Fetch the complete documentation index at: https://docs.partfinder.dev/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> The PartFinder API is served at https://api.partfinder.dev. Authenticate with `Authorization: Bearer $PARTFINDER_API_KEY`; create an account at https://console.partfinder.dev/sign-up and pick pay as you go or a monthly or yearly plan (see https://partfinder.dev/pricing), then create a key. Pay as you go starts with 100 free credits, once per person and per company.
> Install the PartFinder agent skill with `npx skills add https://docs.partfinder.dev` (skill file: https://docs.partfinder.dev/skill.md).
> The OpenAPI document at https://api.partfinder.dev/v1/openapi.json is the source of truth for request and response schemas.
> What each call costs and current plans: https://api.partfinder.dev/llms.txt.

# Find alternate parts

> Get up to five parts that could replace a manufacturer part number, each with its current stock, distributor count, lead time and lifecycle.

One call returns the parts that could replace a part, and what is on the shelf for each of them.
Use it when a part is short, end-of-life or single-sourced.
[Research a part](https://docs.partfinder.dev/part-lookup.md) carries the same list in its `alternates` field; this call returns it
without the rest of the report.

## The call

```python Python theme={null}
import os

import requests

response = requests.get(
    "https://api.partfinder.dev/v1/alternates",
    headers={"Authorization": f"Bearer {os.environ['PARTFINDER_API_KEY']}"},
    params={"mpn": "TPS54331DR"},
)
print(response.json())
```

```javascript JavaScript theme={null}
const response = await fetch("https://api.partfinder.dev/v1/alternates?mpn=TPS54331DR", {
  headers: { Authorization: `Bearer ${process.env.PARTFINDER_API_KEY}` },
});
console.log(await response.json());
```

```bash cURL theme={null}
curl "https://api.partfinder.dev/v1/alternates?mpn=TPS54331DR" \
  -H "Authorization: Bearer $PARTFINDER_API_KEY"
```

`mpn` is the only required parameter. Pass `manufacturer` only for a part number several
manufacturers make, such as `NE555N`.

> [!NOTE]
>
> The first call for a part can take several seconds; repeat calls are faster. Stock is current on
> every call.

## What comes back

```json theme={null}
{
  "as_of": "2026-09-29T07:28:59.267Z",
  "summary": "3 alternates for TPS54331DR: AP63301WU-7 (Diodes Incorporated), AP63300WU-7 (Diodes Incorporated), AP64351SP-13 (Diodes Incorporated). 3 of them are in stock at a distributor. Confirm fit against the datasheets before substituting.",
  "notice": "Informational only. ...",
  "part": { "mpn": "TPS54331DR", "manufacturer": null },
  "alternates": [
    {
      "mpn": "AP63301WU-7",
      "manufacturer": "Diodes Incorporated",
      "description": "Adjustable 3 A step-down regulator, 6-pin package",
      "match": "similar",
      "lifecycle": "Active",
      "supply": {
        "stock": { "value": 81702, "unit": "units" },
        "distributor_count": 3,
        "lead_time_median": { "value": 101, "unit": "days" }
      }
    }
  ]
}
```

Shortened to one alternate. The full field reference is the "Find alternate parts" page in the
API Reference tab, generated from our OpenAPI document.

* **`summary`** is one sentence you can relay as it is.
* **`alternates`** holds up to five parts. It never includes the part you asked about, or the same
  part in another package or ordering variant. It is **not ranked**: compare the entries on `match`,
  `supply` and the datasheets, not on their position. An empty list means none was found; that is
  an answer, not an error.
* **`match`** is how a supplier catalogue classifies the alternate against your part: `direct`,
  `parametric_equivalent`, `similar` or `upgrade`. It is `null` when there is no classification.
* **`lifecycle`** is where the alternate is in its life (`Active`, `NRND`, `EOL` and so on).
* **`supply`** is what distributors hold now; `distributor_count` counts distributors holding stock. A figure we could not read is `null` with a `reason`,
  never a zero.

> [!WARNING]
>
> An alternate is a candidate, not a qualification. Confirm pinout, package and electrical
> specifications against both datasheets before substituting.

## There is no compatibility score

This endpoint does not rate how well an alternate fits, how risky it is, or what it costs relative
to your part. We only publish what we can back with data, and for an alternate that is what it is,
how a catalogue classifies it, and what is on the shelf. For the full risk picture of an alternate,
call [Research a part](https://docs.partfinder.dev/part-lookup.md) with its part number.

## When the part number is wrong

The same checks as [Research a part](https://docs.partfinder.dev/part-lookup.md) run first, with the same errors (`404 part_not_found`, `422 not_a_specific_part`, `503 verification_unavailable`); `did_you_mean` carries real part numbers to retry with when there are any. Every code is on the [Errors](https://docs.partfinder.dev/errors.md) page.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.