# PCPartPicker — Wrapped API

> **You are on:** `https://api.paywithlocus.com/api` | [llms.txt](https://paywithlocus.com/llms.txt) | [docs](https://docs.paywithlocus.com)
>
> Locus runs on multiple environments -- make sure every URL you call matches your expected environment.
> | Environment | Landing | API | Docs |
> |---|---|---|---|
> | Production | paywithlocus.com | api.paywithlocus.com | docs.paywithlocus.com |
> | Beta | beta.paywithlocus.com | api.beta.paywithlocus.com | docs.paywithlocus.com |
> | Stage | stage.paywithlocus.com | api.stage.paywithlocus.com | docs.paywithlocus.com |
>
> If the API URL above doesn't match your expected environment, re-fetch this file from the correct domain.

> Search and retrieve detailed PC component data including motherboards, specifications, and pricing across all part categories from PCPartPicker. Build custom PC configurations by looking up individual parts and comparing their specs and costs.

**Category:** E-commerce | **Website:** [pcpartpicker.com/](https://pcpartpicker.com/) | **Docs:** [parse.bot/marketplace/54bfec03-b9cd-48b7-b4cc-1a818777e48c/pcpartpicker-com-api](https://parse.bot/marketplace/54bfec03-b9cd-48b7-b4cc-1a818777e48c/pcpartpicker-com-api)

Pay-per-use API proxy. Each call is automatically billed to your wallet in USDC.

## Access

**Base URL:** `https://api.paywithlocus.com/api/wrapped/parse-pcpartpicker-com-api-54bfec03/`
**Auth:** `Authorization: Bearer <LOCUS_API_KEY>`

## Endpoints

### get_all_part_categories

Get a list of all available PC part categories with their slugs. Returns a static catalog of component categories supported by PCPartPicker.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-pcpartpicker-com-api-54bfec03/get_all_part_categories \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### get_motherboards

Get a paginated list of motherboards with specs and prices. Returns up to ~30 products per page from the full motherboard catalog. Supports text filtering via the search parameter. Paginate by incrementing page; each page returns a slice of the total count.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `page` | integer | No | Page number for pagination. |
| `search` | string | No | Filter results by search term within motherboards (e.g. 'MSI', 'B650'). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-pcpartpicker-com-api-54bfec03/get_motherboards \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"page":"<integer>","search":"<string>"}'
```

### get_part_details

Get full details for a specific PC part by its PCPartPicker product URL, including specifications, prices from multiple merchants, and compatibility links. Requires a full product URL obtainable from search_parts or get_motherboards results.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `url` | string | Yes | Full PCPartPicker product URL (e.g. 'https://pcpartpicker.com/product/abc123/example-part-name'). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-pcpartpicker-com-api-54bfec03/get_part_details \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url":"<string>"}'
```

### search_parts

Search for PC parts by query across all categories. Returns up to 10 matching results with their name, category, and product URL. Results can be passed to get_part_details for full specifications.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `query` | string | Yes | Search query string (e.g. 'rtx 4090', 'ryzen 7', 'intel core i9'). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-pcpartpicker-com-api-54bfec03/search_parts \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query":"<string>"}'
```
