List discount codes
Lists the community's unarchived discount codes with their value, restrictions, schedule, and redemption counts. Requires the discounts:read scope.
Authorization
apiKey Community-scoped API key. Send it as Authorization: Bearer arclt_live_.... Keys carry scopes; endpoints that need a specific scope answer 403 missing_scope when the key lacks it.
In: header
Response Body
application/json
application/problem+json
application/problem+json
application/problem+json
curl -X GET "https://example.com/v1/discounts"{
"data": [
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"code": "LAUNCH20",
"name": "string",
"value_type": "percent",
"percent_off": 0,
"amount_off_cents": 0,
"currency": "string",
"duration": "once",
"duration_months": 0,
"use_limit": 0,
"min_spend_cents": 0,
"max_spend_cents": 0,
"starts_at": "2019-08-24T14:15:22Z",
"expires_at": "2019-08-24T14:15:22Z",
"is_active": true,
"tier_ids": [
"string"
],
"members": [
{
"platform": "string",
"platform_uid": "string",
"username": "string"
}
],
"redeemed_count": 0,
"pending_count": 0,
"created_at": "2019-08-24T14:15:22Z"
}
]
}{
"type": "https://docs.arcalotl.com/api/errors#unauthorized",
"title": "Unauthorized",
"status": 401,
"detail": "A valid API key is required. Provide it as 'Authorization: Bearer arclt_live_...'.",
"code": "unauthorized"
}{
"type": "https://docs.arcalotl.com/api/errors#missing_scope",
"title": "Forbidden",
"status": 403,
"detail": "This API key is missing the required scope: subscriptions:read.",
"code": "missing_scope"
}{
"type": "https://docs.arcalotl.com/api/errors#rate_limited",
"title": "Too Many Requests",
"status": 429,
"detail": "Rate limit exceeded. Retry after the interval in the Retry-After header.",
"code": "rate_limited"
}GETGet the analytics summary
Returns a pragmatic per-community rollup: monthly recurring revenue, active subscribers, and recent signups and cancels.
POSTCreate a hosted checkout link
Creates a real hosted checkout session for a buyer identified by a platform identity, and returns its URL. The tier must exist and be active within the community, the community must have an active payment provider and a configuration for the buyer's platform, and the buyer must be eligible (not already subscribed to the tier). `plan_id` may be omitted when the tier has exactly one active plan; otherwise the call answers `422 plan_required`. `expires_at` is present only when the provider reports a session expiry; Stripe hosted sessions otherwise expire per Stripe's defaults (24h). Supply an `Idempotency-Key` header to make retries safe.