Lists coupons newest first with the total that match, filtered by status (active, expired or deleted, worked out from the expiry and deletion dates), duration, creation date range and a case-insensitive search on code and name. limit defaults to 50 (at most 200). Super admin only.
Query parameters
-
active = not deleted and not past redeemBy; expired = past redeemBy; deleted = withdrawn in Stripe
Values are
active,expired, ordeleted. -
Case-insensitive substring over coupon code and name
-
Values are
once,repeating, orforever. -
Created at or after (ISO 8601)
-
Created at or before (ISO 8601)
GET
/admin/billing/coupons
curl \
--request GET 'http://api.example.com/admin/billing/coupons' \
--header "Authorization: Bearer $ACCESS_TOKEN"
Response examples (200)
{
"data": {
"coupons": [
{
"couponId": "SPRING20",
"name": "Spring 20% off",
"percentOff": 20,
"amountOffCents": 42.0,
"currency": "string",
"duration": "repeating",
"durationInMonths": 3,
"maxRedemptions": 50,
"redeemBy": "2026-06-30T23:59:59.000Z",
"timesRedeemed": 4,
"status": "active",
"reason": "Spring promotion approved by sales",
"deletedAt": "2026-05-04T09:42:00Z"
}
],
"total": 1
},
"statusCode": 200,
"timestamp": "2026-01-15T10:15:00.000Z"
}