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

> Find detailed Cannondale bicycle and gear information including specs, geometry, and variants, then locate authorized dealers near you. Search across bikes, electric bikes, and accessories to compare products and check local availability in real-time.

**Category:** E-commerce | **Website:** [cannondale.com/](https://cannondale.com/) | **Docs:** [parse.bot/marketplace/d94509d5-5780-4c29-a944-8df635f2a351/cannondale-com-api](https://parse.bot/marketplace/d94509d5-5780-4c29-a944-8df635f2a351/cannondale-com-api)

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

## Access

**Base URL:** `https://api.paywithlocus.com/api/wrapped/credits/cannondale/`
**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 bike detail

Get detailed bike information including full specifications, geometry data, and all variants with pricing and UPC codes. Requires the full product page URL. Returns spec groups (Brakes, Components, Drivetrain, Frameset, WheelsAndTires, Electronics, GeneralInfo), geometry by size, and variant availability.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `url` | string | Yes | Full URL of the bike detail page (e.g. 'https://www.cannondale.com/en/bikes/road/race/supersix-evo/supersix-evo-hi-mod-frameset'). |

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

### Get dealers

Find Cannondale dealers near a geographic location using the Locally.com dealer locator. Returns dealers sorted by proximity. Optionally filter by bike UPC for availability. Default location is San Francisco.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `latitude` | string | No | Latitude of the search center location. Defaults to 37.7749 (San Francisco). |
| `longitude` | string | No | Longitude of the search center location. Defaults to -122.4194 (San Francisco). |
| `radius` | string | No | Search radius as diagonal distance in the map bounding box (approximate km). |
| `upc` | string | No | Optional UPC code to filter dealers stocking a specific bike variant. Use '00' or omit for no filter. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/credits/cannondale/get-dealers \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"latitude":"<string>","longitude":"<string>","radius":"<string>","upc":"<string>"}'
```

### List bikes

List all bikes from the Cannondale catalog with pagination. Returns bikes across all categories (road, mountain, electric, etc.) with variant and tag information. Each bike includes a URL that can be passed to get_bike_detail for full specifications.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `limit` | integer | No | Number of results per page (max 250). |
| `offset` | integer | No | Starting index for results. Pagination is calculated as page = (offset / limit) + 1. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/credits/cannondale/list-bikes \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"limit":"<integer>","offset":"<integer>"}'
```

### List electric bikes

List electric bikes only from the Cannondale catalog with pagination. Filters to bikes categorized under the 'electric' category slug. Each bike includes a URL that can be passed to get_bike_detail for full specifications.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `limit` | integer | No | Number of results per page (max 250). |
| `offset` | integer | No | Starting index for results. Pagination is calculated as page = (offset / limit) + 1. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/credits/cannondale/list-electric-bikes \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"limit":"<integer>","offset":"<integer>"}'
```

### List gear

List gear and accessories (components, equipment, apparel) from the Cannondale catalog with pagination. Returns non-bike products such as hubs, seatposts, lights, and other accessories.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `limit` | integer | No | Number of results per page (max 250). |
| `offset` | integer | No | Starting index for results. Pagination is calculated as page = (offset / limit) + 1. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/credits/cannondale/list-gear \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"limit":"<integer>","offset":"<integer>"}'
```

### Search products

Search for products (bikes and gear) by keyword across the entire Cannondale catalog. Returns matching results with pagination. Matches against model name, category, platform, description, and other product fields.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `limit` | integer | No | Number of results per page (max 250). |
| `offset` | integer | No | Starting index for results. Pagination is calculated as page = (offset / limit) + 1. |
| `query` | string | Yes | Search keyword (e.g. 'SuperSix', 'gravel', 'helmet'). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/credits/cannondale/search-products \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"limit":"<integer>","offset":"<integer>","query":"<string>"}'
```

## Next steps

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