# Adafruit — 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.

> Browse and search the complete Adafruit electronics catalog to find product details, pricing, availability, and stock status across categories like magnets and motor components. Discover new arrivals and featured products to stay updated on the latest electronics and components available.

**Category:** E-commerce | **Website:** [adafruit.com/](https://adafruit.com/) | **Docs:** [parse.bot/marketplace/57232e0c-851a-459a-878c-857ead86fef7/adafruit-com-api](https://parse.bot/marketplace/57232e0c-851a-459a-878c-857ead86fef7/adafruit-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-adafruit-com-api-57232e0c/`
**Auth:** `Authorization: Bearer <LOCUS_API_KEY>`

## Endpoints

### get_category_products

Browse all products within a specific category. Returns category name and paginated product list up to the specified limit.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `category_id` | string | Yes | Numeric category ID to browse. |
| `limit` | integer | No | Max results to return. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-adafruit-com-api-57232e0c/get_category_products \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"category_id":"<string>","limit":"<integer>"}'
```

### get_featured_products

Retrieve featured products shown on the Adafruit featured page. Returns the full list of currently featured products with name, price, stock status, and thumbnail.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-adafruit-com-api-57232e0c/get_featured_products \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### get_new_products

Get a list of recently added products from the Adafruit new products page. Paginates internally to collect results up to the specified limit.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `limit` | integer | No | Max results to return. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-adafruit-com-api-57232e0c/get_new_products \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"limit":"<integer>"}'
```

### get_product_details

Fetch full details for a single product by product ID. Returns product name, pricing, stock status, technical specifications, images, variants, quantity discounts, datasheets, related products, and breadcrumb path. Returns stale_input with kind 'input_not_found' if the product page does not exist.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `product_id` | string | Yes | Numeric product ID (SKU) to fetch details for. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-adafruit-com-api-57232e0c/get_product_details \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"product_id":"<string>"}'
```

### get_product_stock_status

Check current availability and pricing for a product. Returns stock status, current price, and any quantity discounts. Returns stale_input with kind 'input_not_found' if the product page does not exist.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `product_id` | string | Yes | Numeric product ID (SKU). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-adafruit-com-api-57232e0c/get_product_stock_status \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"product_id":"<string>"}'
```

### list_all_categories

Retrieve all top-level shop categories and their featured products. Returns a flat list of category entries each with a name, ID, and sample of featured products.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-adafruit-com-api-57232e0c/list_all_categories \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### search_products

Search the Adafruit catalog by keyword. Supports sorting by best match or most recent, availability filtering, price range filtering, and category filtering. Paginates internally up to the specified limit.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `availability` | string | No | Availability filter as JSON array string: '["i"]' for In Stock, '["o"]' for Out of Stock, '["d"]' for Discontinued. Multiple values accepted. |
| `category_id` | string | No | Filter by category ID (numeric string). |
| `limit` | integer | No | Max results to return. |
| `price_ranges` | string | No | Price range filter as JSON array string: '["0"]' (<$5), '["1"]' ($5-$9.99), '["2"]' ($10-$24.99), '["3"]' ($25-$99.99), '["4"]' (>$100). Multiple values accepted. |
| `query` | string | Yes | Search keyword. |
| `sort` | string | No | Sort order. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-adafruit-com-api-57232e0c/search_products \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"availability":"<string>","category_id":"<string>","limit":"<integer>","price_ranges":"<string>","query":"<string>","sort":"<string>"}'
```
