Work with this as data
Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/bandcamp-sales-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
OpenAPI Specification
openapi: 3.2.0
info:
title: Bandcamp Account Sales API
version: 1.0.0
description: Bandcamp's gated artist/label/merch-fulfillment API. Provides account, sales reporting, and merchandise order management endpoints. Access is granted on request and uses OAuth 2.0 (client credentials grant) with one-hour access tokens that may be refreshed. All API requests use POST with a Bearer token in the Authorization header.
contact:
name: Bandcamp Developer
url: https://bandcamp.com/developer
servers:
- url: https://bandcamp.com
description: Production
tags:
- name: Sales
description: Sales reporting for labels
paths:
/api/sales/4/sales_report:
post:
tags:
- Sales
summary: Retrieve a synchronous sales report
security:
- bearerAuth: []
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- band_id
- start_time
properties:
band_id:
type: integer
description: Unique identifier for the band or label.
start_time:
type: string
description: Earliest UTC sale time to include (ISO 8601).
end_time:
type: string
description: Latest UTC sale time to exclude. Defaults to now.
member_band_id:
type: integer
description: Filter to a specific band within a label.
format:
type: string
enum:
- json
default: json
responses:
'200':
description: Sales report
content:
application/json:
schema:
$ref: '#/components/schemas/SalesReportResponse'
/api/sales/4/generate_sales_report:
post:
tags:
- Sales
summary: Generate a sales report asynchronously
security:
- bearerAuth: []
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- band_id
- start_time
properties:
band_id:
type: integer
start_time:
type: string
end_time:
type: string
member_band_id:
type: integer
format:
type: string
enum:
- csv
- json
default: json
responses:
'200':
description: Asynchronous report token
content:
application/json:
schema:
type: object
properties:
token:
type: string
/api/sales/4/fetch_sales_report:
post:
tags:
- Sales
summary: Fetch a previously generated sales report
security:
- bearerAuth: []
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- token
properties:
token:
type: string
responses:
'200':
description: Report URL or error
content:
application/json:
schema:
oneOf:
- type: object
properties:
url:
type: string
format: uri
- $ref: '#/components/schemas/Error'
components:
schemas:
Error:
type: object
properties:
error:
type: boolean
error_message:
type: string
SalesRow:
type: object
properties:
bandcamp_transaction_id:
type: integer
bandcamp_transaction_item_id:
type: integer
bandcamp_related_transaction_id:
type:
- integer
- 'null'
date:
type: string
item_type:
type: string
item_name:
type: string
artist:
type: string
currency:
type: string
item_price:
type: number
quantity:
type: number
sub_total:
type: number
additional_fan_contribution:
type: number
transaction_fee:
type: number
item_total:
type: number
amount_you_received:
type: number
buyer_name:
type: string
buyer_email:
type: string
country:
type: string
SalesReportResponse:
type: object
properties:
report:
type: array
items:
$ref: '#/components/schemas/SalesRow'
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
description: OAuth 2.0 access token returned by `/oauth_token`.
oauth2:
type: oauth2
flows:
clientCredentials:
tokenUrl: https://bandcamp.com/oauth_token
scopes: {}