# Orchestral Tools — 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 Orchestral Tools' collection of virtual instruments, samples, and bundles by series, genre, and price to find exactly what you need. Add products to your cart and view detailed specifications, pricing, and availability for each instrument.

**Category:** Music | **Website:** [orchestraltools.com/](https://orchestraltools.com/) | **Docs:** [parse.bot/marketplace/219bfe73-1e22-48d1-bbb6-2fbce22cf2e2/orchestraltools-com-api](https://parse.bot/marketplace/219bfe73-1e22-48d1-bbb6-2fbce22cf2e2/orchestraltools-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-orchestraltools-com-api-219bfe73/`
**Auth:** `Authorization: Bearer <LOCUS_API_KEY>`

## Endpoints

### add_to_cart

Add an item to the shopping cart using its hub product ID. Returns the current cart state including any error or success messages. The hub_product_id is obtained from get_product_details. Does not require authentication for guest carts.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `name` | string | Yes | Product name (e.g. Berlin Strings). |
| `store_id` | string | Yes | Hub product ID (e.g. 4015 for Berlin Strings). Obtain from hub_product_id field in get_product_details response. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-orchestraltools-com-api-219bfe73/add_to_cart \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"<string>","store_id":"<string>"}'
```

### get_all_products

Full-text search across the Orchestral Tools product catalog with optional filters for type, genre, series, and price. Returns paginated results ordered by relevance. Each product summary exposes a slug for detail lookup. Server-side filtering is limited to the declared params; finer filtering is client-side over the returned list.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `genre` | string | No | Filter by genre. Values from get_filter_options genres (e.g. Strings, Brass, Woodwinds, Percussion, Piano, Choir, Epic, Full Orchestra). |
| `page` | integer | No | Page number for pagination (1-based). |
| `price_max` | number | No | Maximum price in EUR to filter by. |
| `query` | string | No | Search query for product titles and descriptions. Use * for all products. |
| `series` | string | No | Filter by product series. Values from get_filter_options series (e.g. Berlin Strings, Metropolis Ark, Artist Series). |
| `type` | string | No | Filter by product type. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-orchestraltools-com-api-219bfe73/get_all_products \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"genre":"<string>","page":"<integer>","price_max":"<number>","query":"<string>","series":"<string>","type":"<string>"}'
```

### get_bundles

Retrieve all product bundles available in the catalog. Returns the same product summary shape as get_all_products, pre-filtered to type=bundle.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-orchestraltools-com-api-219bfe73/get_bundles \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### get_filter_options

Retrieve all available filter options for series, genres, and studios. Each option has a label (display name) and value (backtick-wrapped string for use in get_all_products filtering). Use these values to populate filter parameters.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-orchestraltools-com-api-219bfe73/get_filter_options \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### get_free_instruments

Retrieve all free virtual instruments available for download from the SINEfactory and other free offerings. These instruments have price_eur of 0 and can be downloaded without purchase.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-orchestraltools-com-api-219bfe73/get_free_instruments \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### get_price

Get current pricing information for a product using its hub product ID. The hub_product_id is obtained from get_product_details and differs from the store_id in catalog listings. Returns price in cents.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `store_id` | string | Yes | Hub product ID (e.g. 4015 for Berlin Strings, 4011 for Metropolis Ark 3). Obtain from hub_product_id field in get_product_details response. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-orchestraltools-com-api-219bfe73/get_price \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"store_id":"<string>"}'
```

### get_product_details

Retrieve full detail for a single product by its URL slug. Returns metadata, hub_product_id (required for pricing and cart operations), highlights, specs, and child instruments for collections. The slug is the last path segment of the product URL on orchestraltools.com.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `slug` | string | Yes | Product slug from the URL path (e.g. berlin-strings, metropolis-ark-3, symphonic-sphere). |

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