# Payoff — Wrapped API

> **You are on:** `https://api.beta.paywithlocus.com/api` | [llms.txt](https://beta.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 through 177,000+ structured financial products with advanced filtering to find Capital Protection, Yield Enhancement, Participation, Credit Risk, and Leverage instruments that match your criteria. Get comprehensive product details including terms, market data, key figures, and underlying instrument information for informed investment decisions.

**Category:** Finance & Markets | **Website:** [www.payoff.ch/en/productfinder](https://www.payoff.ch/en/productfinder) | **Docs:** [parse.bot/marketplace/3d0e43e3-fac1-45bd-bc4b-75c0975f18cc/payoff-ch-api](https://parse.bot/marketplace/3d0e43e3-fac1-45bd-bc4b-75c0975f18cc/payoff-ch-api)

Pay-per-use API proxy for Locus Pro. Each call burns credits from your workspace balance.

## Access

**Base URL:** `https://api.beta.paywithlocus.com/api/wrapped/credits/payoff/`
**Auth:** `Authorization: Bearer <LOCUS_CREDITS_SECRET_KEY>` (an `lcr_` secret key or a scoped `lcac_` agent credential)
**Required header:** `Idempotency-Key: <fresh UUID per call>`. A retry with the same key replays the stored result without a new charge.
**Response:** the provider response after any endpoint-specific normalization. `X-Locus-Credits-Charged` carries the charge and `X-Locus-Credits-Balance` the remaining balance. Insufficient credits return `402` before the provider is called.
**Pricing:** estimated costs below are USD. Locus debits the credit equivalent at your workspace rate.

Full call contract: https://docs.paywithlocus.com/api-reference/introduction

> Using a Pay With Locus wallet key (`claw_` prefix)? Wallet routes are documented separately: https://docs.paywithlocus.com/wrapped-apis/for-agents

## Endpoints

### Get filter options

Retrieve all available filter options with live product counts. Returns categories, subcategories, exchanges, asset classes, currencies, issuers, guarantors, maturities, and callable/underlying filters. Each filter entry includes a ref code, display name, and current product count. Useful for discovering valid filter values for search_products or building filter UIs.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `language` | string | No | Language code. |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/payoff/get-filter-options \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"language":"<string>"}'
```

### Get product detail

Retrieve comprehensive detail for a single structured product by ISIN. Returns basic info, terms, market data, key figures, underlying instruments, similar products, and events. The ISIN must be an active product obtainable from search_products. Returns stale_input with kind 'input_not_found' if the ISIN does not exist or has been delisted.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `isin` | string | Yes | ISIN code of the structured product (e.g., 'CH1474813578'). Must be an active ISIN obtainable from search_products results. |
| `language` | string | No | Language code (accepted but product data is returned in English). |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/payoff/get-product-detail \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"isin":"<string>","language":"<string>"}'
```

### Search products

Full-text and filter-based search across all structured products. Returns 20 products per page with pagination metadata. Page 1 additionally includes filter counters showing how many products match each filter value. Paginates via integer page counter. Each product summary exposes ISIN for drill-down into full detail via get_product_detail.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `asset_classes` | string | No | Asset class filter. |
| `callables` | string | No | Callable filter. |
| `categories` | string | No | Category filter ref code. |
| `currencies` | string | No | Currency filter code (e.g., 'CHF', 'EUR', 'USD'). Use get_filter_options for all codes. |
| `exchanges` | string | No | Exchange filter ref code. |
| `guarantors` | string | No | Guarantor ref code. Use get_filter_options for all codes. |
| `issuers` | string | No | Issuer ref code (e.g., 'UBS', 'VT' for Vontobel, 'BAER' for Julius Bär). Use get_filter_options for all codes. |
| `language` | string | No | Language code. |
| `maturities` | string | No | Maturity filter. |
| `multiple_underlyings` | string | No | Single or multiple underlyings: '0' for single, '1' for multiple. |
| `page` | integer | No | Page number (1-based). 20 products per page. |
| `sort_by` | string | No | Sort field (e.g., 'lastTradingDate'). |
| `sort_dir` | string | No | Sort direction. |
| `underlying` | string | No | Underlying search term (e.g., 'Nestle', 'SMI'). |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/payoff/search-products \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"asset_classes":"<string>","callables":"<string>","categories":"<string>","currencies":"<string>","exchanges":"<string>","guarantors":"<string>","issuers":"<string>","language":"<string>","maturities":"<string>","multiple_underlyings":"<string>","page":"<integer>","sort_by":"<string>","sort_dir":"<string>","underlying":"<string>"}'
```

## Next steps

- [All wrapped API providers](https://beta.paywithlocus.com/wapi/index.md): pick another provider.
- [Find and call tools](https://beta.paywithlocus.com/agent/tools.md): price ceilings, async results, and errors.
- [Credits and billing](https://beta.paywithlocus.com/agent/billing.md): what a call costs and how to add credits.
- [Agent docs index](https://beta.paywithlocus.com/agent/index.md): every Locus agent page.