Skip to content

List bonus campaigns

GET /campaigns
Scopeprogram:read
Customer session tokenNot accepted: call from your server with an API key
Rate limit classread (limits)
Idempotency keyNot used
MCP toolcharm_list_campaigns

Every campaign (double points weekends, reward sales), newest first, with its window, status, scope and email phases. 403 feature_disabled when the shop does not have campaigns.

NameInTypeDescription
status (optional)querystring: draft, scheduled, active, ended, cancelledOnly campaigns in this status.

Returns CampaignList.

FieldTypeDescription
dataarray of Campaign
next_cursorstring or nullPass as cursor to fetch the next page; null on the last page. (nullable)
has_morebooleanTrue when another page exists.
{
"data": [
{
"id": "id",
"name": "Gold",
"type": "earning_boost",
"template": "template",
"status": "draft",
"multiplier": 1,
"stacking_mode": "stacking mode",
"starts_at": "2026-10-01T09:30:00.000Z",
"ends_at": "2026-10-01T09:30:00.000Z",
"rule_types": [
"rule types"
],
"product_scope": {
"mode": "all",
"product_ids": [
null
],
"collection_ids": [
null
],
"tags": [
null
]
},
"audience": {
"mode": "all",
"tier_ids": [
null
],
"tags": [
null
]
},
"limits": {
"max_orders": 1,
"max_bonus_points": 120
},
"consumed": {
"orders": 1,
"bonus_points": 120
},
"badge_text": "badge text",
"banner_copy": {},
"spotlight_rewards": [
{
"reward_id": null,
"sale_points_cost": null
}
],
"emails": {
"teaser": null,
"launch": null,
"last_chance": null
},
"deletable": false,
"revision": 1,
"created_at": "2026-10-01T09:30:00.000Z",
"updated_at": "2026-10-01T09:30:00.000Z"
}
],
"next_cursor": null,
"has_more": true
}
Terminal window
curl -X GET "https://charm.appfleece.app/api/v1/campaigns" \
-H "Authorization: Bearer chrm_live_..."

unauthorized · invalid_token · insufficient_scope · access_required · validation_error · rate_limited

Every error body carries code, message, request_id and a doc_url pointing at the matching entry in the error catalog.