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

> Access Bandcamp's music catalog, artist profiles, album details, fan profiles, and live sales feed. Supports discovery with tag and location filters, full-text search across artists, albums, and tracks, and detailed metadata retrieval.

**Category:** Music | **Website:** [bandcamp.com/](https://bandcamp.com/) | **Docs:** [parse.bot/marketplace/16af181f-29e3-49b3-ae28-04578da80ec1/bandcamp-com-api](https://parse.bot/marketplace/16af181f-29e3-49b3-ae28-04578da80ec1/bandcamp-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-bandcamp-com-api-16af181f/`
**Auth:** `Authorization: Bearer <LOCUS_API_KEY>`

## Endpoints

### discover

Browse and discover music on Bandcamp with advanced filters. Returns paginated album results from the discover feed. Supports filtering by genre tags and location. Results include streaming URLs for featured tracks.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `cursor` | string | No | Pagination cursor returned from a previous discover call. Omit or use '*' for first page. |
| `geoname_id` | string | No | Location filter by geoname ID. |
| `slice` | string | No | Sort type for results. |
| `tags` | string | No | Comma-separated tag names to filter by (e.g. 'electronic,ambient'). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-bandcamp-com-api-16af181f/discover \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"cursor":"<string>","geoname_id":"<string>","slice":"<string>","tags":"<string>"}'
```

### get_album_details

Get detailed information about an album or track on Bandcamp, including full track listing with durations, pricing, packages (vinyl/CD), LD+JSON structured data with schema.org markup, and fan comments. Requires the full Bandcamp URL of the release.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `url` | string | Yes | Album's Bandcamp URL (e.g. https://radiohead.bandcamp.com/album/in-rainbows). |

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

### get_artist_profile

Get artist profile including band metadata, full discography links, location, and social links from the artist's Bandcamp page. Navigates to the /music subpage to enumerate all releases.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `url` | string | Yes | Artist's Bandcamp URL (e.g. https://radiohead.bandcamp.com). |

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

### get_fan_profile

Get fan profile information including username, bio, location, follower counts, and collection items. Returns stale_input with kind input_not_found for non-existent profiles. Collection items may be empty if the collection is private or has no items.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `url` | string | Yes | Fan's Bandcamp profile URL (e.g. https://bandcamp.com/thomascoutts). |

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

### get_sales_feed

Scrape the live 'Selling right now' sales feed from Bandcamp. Returns recent purchase events with artist, item, price, and buyer location. Each item includes a link to the release page. Detail fetching per item adds latency proportional to limit.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `limit` | integer | No | Max number of sale items to return. |

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

### search

Search Bandcamp for artists, albums, tracks, or fans using the autocomplete API. Returns structured results with name, URL, type, and metadata. Fast but returns fewer results than a full search page scrape.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `item_type` | string | No | Filter results by type. |
| `query` | string | Yes | Search keyword. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-bandcamp-com-api-16af181f/search \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"item_type":"<string>","query":"<string>"}'
```
