---
title: "List the part models the library stands behind"
method: GET
path: "/v1/library/parts"
tags: ["Library"]
---

# List the part models the library stands behind

`GET /v1/library/parts`

## Request

- Base URL: `https://electronics-architect.com`
- URL: `https://electronics-architect.com/v1/library/parts`
- Auth: HTTP bearer

Scope: `read`. Parametric simulation models for real parts, read from the same database the editor's part picker and the community contributions use, so the library grows as people ingest datasheets and the community verifies them. Every value is gated per attribute: curated, datasheet-extracted, admin-set and community-verified values are served; DigiKey-sourced values never are (DigiKey's API terms); an unverified extraction is not served until a person verifies it. Filter with `?type=` (see `types` in the response). Each model carries `properties` (ready to paste into a node of that type), `provenance` per supplied key, and `filledFromDefaults` — the property keys the library did NOT supply. Physics only: no pricing, stock or distributor links. `Cache-Control: private, max-age=300`.

## Query parameters

- `type` string

## Response `200`

The models.

- PartModelList
  - `count` integer
  - `type` string, nullable: The filter applied, or null for every model.
  - `types` string[]: Every node type the library has models for.
  - `note` string
  - `parts` PartModel[]
    - `mpn` string
    - `manufacturer` string
    - `type` string: The node type this model fills, e.g. `SMPS`.
    - `package` string
    - `notes` string
    - `grade` string
    - `datasheetUrl` string
    - `source` 'library'
    - `properties` object: The complete, schema-valid property block for a node of this type, SI base units.
    - `provenance` object: Per supplied key: curated | datasheet_extracted | community | admin | verified.
    - `filledFromDefaults` string[]: Property keys the library did not supply.
    - `updatedAt` string, nullable

## Other responses

- `400`: `type` is not one the library has models for; the message lists them.
- `401`: No key, a browser token instead of a key, an unknown key, or a revoked key (code KEY_REVOKED).
- `403`: The key lacks a required scope (INSUFFICIENT_SCOPE), or the call needs a plan the account does not have (PLAN_REQUIRED): on the Free plan, compare, exports, Monte Carlo jobs, AI synthesis, a design with more than one sheet, or a save, share or key past the Free limits; or a team key whose team is no longer paid for.
- `429`: RATE_LIMITED: the key's per-minute allowance is used up (or, before any key is recognised, too many requests from one address presented an unknown or revoked key). On the routes that solve inside the request (solve, verify, derating, compare, exports, ai/review, ai/synthesize) it can also be SOLVE_IN_PROGRESS: this account already has 3 calls of that kind running on the server that took the request (solves, AI reviews and syntheses are each counted separately). `Retry-After` is set either way; for SOLVE_IN_PROGRESS it is 2 s for solves and 30 s for AI reviews and syntheses.

---

[API](https://skmtc.dev/electronics-architect/apis/electronics-architect-api.md) · [All operations](https://skmtc.dev/electronics-architect/apis/electronics-architect-api/llms.txt) · [OpenAPI document](https://skmtc.dev/electronics-architect/apis/electronics-architect-api/revisions/98066184ba67?raw)
