Skip to content

Get program configuration

GET /program
Scopeprogram:read
Customer session tokenAccepted with the read scope, for the token’s own customer
Rate limit classread (limits)
Idempotency keyNot used
MCP toolcharm_get_program

Read-only view of the loyalty program: earning rules, redemption rules, referral setup and expiry policy.

Returns Program.

FieldTypeDescription
enabledboolean
program_namestring or null(nullable)
points_namestring or null(nullable)
points_expiryobject or null(nullable)
reward_expiryobject or null(nullable)
eligibilityobject or null(nullable)
referralobject
memberships_enabledboolean
tiers_enabledboolean
earning_rulesarray of EarningRule
redemption_rulesarray of Reward
revisionintegerCounts the program’s saves. Send it as if_revision on a write so a concurrent admin edit is refused instead of overwritten.
updated_atstring or null(nullable)
{
"enabled": true,
"program_name": "Rewards Club",
"points_name": "points",
"points_expiry": {
"enabled": true,
"months": 1
},
"reward_expiry": {
"enabled": true,
"code_valid_days": 1
},
"eligibility": {
"customer_audience": "all",
"excluded_customer_tags": [
"excluded customer tags"
],
"excluded_product_tags": [
"excluded product tags"
]
},
"referral": {
"enabled": true,
"code_prefix": "REF",
"discount_type": "percentage",
"discount_value": 1,
"minimum_purchase": 1
},
"memberships_enabled": false,
"tiers_enabled": false,
"earning_rules": [
{
"id": "id",
"type": "earn",
"enabled": true,
"label": "Points per order",
"points": 120,
"points_per_currency": 120,
"limit": 1,
"title": "title",
"title_translations": {},
"fields": {},
"summary": "summary"
}
],
"redemption_rules": [
{
"id": "id",
"type": "earn",
"enabled": true,
"name": "Gold",
"points_cost": 120,
"discount_type": "percentage",
"discount_value": 1,
"code_valid_days": 1,
"title": "title",
"title_translations": {},
"fields": {},
"summary": "summary"
}
],
"revision": 1,
"updated_at": "2026-10-01T09:30:00.000Z"
}
Terminal window
curl -X GET "https://charm.appfleece.app/api/v1/program" \
-H "Authorization: Bearer chrm_live_..."

unauthorized · invalid_token · token_expired · 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.