Bandcamp Merch Orders API
Merchandise order management and fulfillment
Merchandise order management and fulfillment
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/bandcamp-merch-orders-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 3.2.0
info:
title: Bandcamp Account Merch Orders 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: Merch Orders
description: Merchandise order management and fulfillment
paths:
/api/merchorders/1/get_merch_details:
post:
tags:
- Merch Orders
summary: Retrieve merchandise package details and inventory
security:
- bearerAuth: []
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- band_id
properties:
band_id:
type: integer
member_band_id:
type: integer
start_time:
type: string
end_time:
type: string
package_ids:
type: array
items:
type: integer
responses:
'200':
description: Merch items
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
items:
type: array
items:
$ref: '#/components/schemas/MerchItem'
/api/merchorders/1/get_shipping_origin_details:
post:
tags:
- Merch Orders
summary: List shipping origins
security:
- bearerAuth: []
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
band_id:
type: integer
origin_id:
type: integer
responses:
'200':
description: Shipping origins
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
shipping_origins:
type: array
items:
$ref: '#/components/schemas/ShippingOrigin'
/api/merchorders/4/get_orders:
post:
tags:
- Merch Orders
summary: Retrieve merchandise orders
security:
- bearerAuth: []
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- band_id
properties:
band_id:
type: integer
member_band_id:
type: integer
start_time:
type: string
end_time:
type: string
unshipped_only:
type: boolean
name:
type: string
origin_id:
type: integer
format:
type: string
enum:
- csv
- json
responses:
'200':
description: Orders list
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
items:
type: array
items:
$ref: '#/components/schemas/Order'
/api/merchorders/2/update_shipped:
post:
tags:
- Merch Orders
summary: Mark merchandise items as shipped
security:
- bearerAuth: []
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- items
properties:
items:
type: array
items:
type: object
required:
- id
- id_type
properties:
id:
type: integer
id_type:
type: string
enum:
- p
- s
description: '`p` for payment, `s` for sale item.'
shipped:
type: boolean
default: true
notification:
type: boolean
notification_message:
type: string
ship_date:
type: string
carrier:
type: string
tracking_code:
type: string
responses:
'200':
description: Update result
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
/api/merchorders/1/mark_date_range_as_shipped:
post:
tags:
- Merch Orders
summary: Mark all merch orders in a date range as shipped
security:
- bearerAuth: []
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- band_id
- end_time
properties:
band_id:
type: integer
end_time:
type: string
member_band_id:
type: integer
start_time:
type: string
origin_id:
type: integer
email_notifications:
type: boolean
responses:
'200':
description: Items marked shipped
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
items:
type: array
items:
type: object
properties:
sale_item_id:
type: integer
title:
type: string
buyer_name:
type: string
/api/merchorders/1/update_quantities:
post:
tags:
- Merch Orders
summary: Update merchandise inventory quantities
security:
- bearerAuth: []
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- items
properties:
items:
type: array
items:
type: object
required:
- id
- id_type
- quantity_sold
- quantity_available
properties:
id:
type: integer
id_type:
type: string
enum:
- p
- o
description: '`p` for package, `o` for option.'
quantity_sold:
type: integer
quantity_available:
type: integer
origin_id:
type: integer
responses:
'200':
description: Quantities updated
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
/api/merchorders/1/update_sku:
post:
tags:
- Merch Orders
summary: Update merchandise SKUs
security:
- bearerAuth: []
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- items
properties:
items:
type: array
items:
type: object
required:
- id
- id_type
- sku
properties:
id:
type: integer
id_type:
type: string
enum:
- p
- o
sku:
type: string
responses:
'200':
description: SKUs updated
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
components:
schemas:
ShippingOrigin:
type: object
properties:
origin_id:
type: integer
band_id:
type: integer
country_name:
type: string
state_name:
type: string
state_code:
type: string
Order:
type: object
properties:
sale_item_id:
type: integer
payment_id:
type: integer
order_date:
type: string
buyer_name:
type: string
buyer_email:
type: string
ship_to_name:
type: string
ship_to_street:
type: string
ship_to_city:
type: string
ship_to_state:
type: string
ship_to_zip:
type: string
ship_to_country:
type: string
payment_state:
type: string
ship_date:
type: string
MerchItem:
type: object
properties:
package_id:
type: integer
title:
type: string
price:
type: number
currency:
type: string
quantity_available:
type: integer
quantity_sold:
type: integer
sku:
type: string
options:
type: array
items:
type: object
origin_quantities:
type: array
items:
type: object
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: {}