Bandcamp API endpoint
Returns the complete value space of the bandcamp_discover filters: the 27 top-level genre tags, physical formats, sort orders, time-window ids and the size range.
/bandcamp/filtersReturns the complete value space of the bandcamp-discover filters. The response is static and makes no upstream request.
genres are Bandcamp's 27 top-level genre tags; use an id as a tags value. All 27 were confirmed live to return a non-zero Discover result count.formats and sorts are the exact accepted values of the format and sort parameters.time_facets are the accepted time_facet ids, 0 to 7. Any other id is rejected by Bandcamp. The windows have no published labels, so the title is a placeholder.size gives the accepted page size range and default, and max_tags the maximum number of tags per request.| Field | Filled in, of 27 checked | Values in the sample |
|---|---|---|
| id | 27 | |
| title | 27 | “Acoustic” and 26 other values |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/bandcamp/filters" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"data": {
"genres": [
{
"id": "acoustic",
"title": "Acoustic"
},
{
"id": "alternative",
"title": "Alternative"
},
{
"id": "ambient",
"title": "Ambient"
}
],
"formats": [
{
"id": "all",
"title": "All formats"
},
{
"id": "vinyl",
"title": "Vinyl"
},
{
"id": "cd",
"title": "CD"
},
{
"id": "cassette",
"title": "Cassette"
}
],
"sorts": [
{
"id": "best_selling",
"title": "Best-selling"
},
{
"id": "new",
"title": "New arrivals"
},
{
"id": "random",
"title": "Random"
}
],
"time_facets": [
{
"id": "0",
"title": "Time window 0"
},
{
"id": "1",
"title": "Time window 1"
}
],
"size": {
"min": 1,
"max": 100,
"default": 24
},
"max_tags": 5
},
"msg": "OK"
}Request schema
No body schema
Response schema
#/definitions/bandcamp.filtersResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | bandcamp.FiltersResponse | No | ||||
| data.formats | array | No | ||||
| data.formats[].id | string | No | ||||
| data.formats[].title | string | No | ||||
| data.genres | array | No | ||||
| data.genres[].id | string | No | ||||
| data.genres[].title | string | No | ||||
| data.max_tags | integer | No | ||||
| data.size | object | No | ||||
| data.size.default | integer | No | ||||
| data.size.max | integer | No | ||||
| data.size.min | integer | No | ||||
| data.sorts | array | No | ||||
| data.sorts[].id | string | No | ||||
| data.sorts[].title | string | No | ||||
| data.time_facets | array | No | ||||
| data.time_facets[].id | string | No | ||||
| data.time_facets[].title | string | No | ||||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 429 | Too Many Requests | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/bandcamp/filters" \
-H "x-api-key: $CRAWLORA_API_KEY"