Skip to main content
GET
/
ecommerce
/
v2
/
apps
/
{app_id}
/
coupons
curl "https://gateway.jelou.ai/ecommerce/v2/apps/{app_id}/coupons?page=1&limit=20&state=active" \
  -H "x-api-key: YOUR_API_KEY"
{
  "data": [
    {
      "id": "9e3f2c1a-8b7d-4e6f-a5c4-d3b2a1e0f9c8",
      "code": "BLACKFRIDAY25",
      "name": "Black Friday 25%",
      "description": "25% off the entire store",
      "discount_type": "percentage",
      "discount_value": "25.000000",
      "status": true,
      "valid_from": "2026-11-25T00:00:00.000000Z",
      "valid_until": "2026-11-30T23:59:59.000000Z",
      "max_uses": 100,
      "once_per_client": true,
      "applies_to_all_branches": true,
      "uses_count": 0,
      "state": "scheduled",
      "created_at": "2026-07-02T15:30:00.000000Z",
      "updated_at": "2026-07-02T15:30:00.000000Z"
    }
  ],
  "links": {
    "first": "https://gateway.jelou.ai/ecommerce/v2/apps/{app_id}/coupons?page=1",
    "last": "https://gateway.jelou.ai/ecommerce/v2/apps/{app_id}/coupons?page=1",
    "prev": null,
    "next": null
  },
  "meta": {
    "current_page": 1,
    "from": 1,
    "last_page": 1,
    "per_page": 15,
    "to": 1,
    "total": 1
  }
}
app_id
string
required
Your store ID in Jelou Shop.
page
integer
default:"1"
Page number to return.
limit
integer
default:"15"
Number of results per page (max. 100).
state
string
Filter by the coupon’s derived state. Values: active, scheduled, expired, depleted, inactive.

Coupon states

The state field is computed (not stored) from the status, validity window, and usage. Precedence: inactive → scheduled → expired → depleted → active.
StateMeaning
activeActive and applicable.
scheduledScheduled: its valid_from is in the future.
expiredExpired: its valid_until has passed.
depletedDepleted: it reached its max_uses.
inactiveManually deactivated (status: false).

Response fields

Each coupon in data contains the following fields:
FieldTypeDescription
idstringCoupon UUID
codestringCode the customer enters
namestringInternal name
descriptionstring | nullDescription
discount_typestringpercentage or value
discount_valuestringDiscount value
statusbooleanWhether it is active
valid_fromstring | nullValidity start
valid_untilstring | nullValidity end
max_usesinteger | nullTotal usage limit
once_per_clientbooleanOne use per customer
applies_to_all_branchesbooleanWhether it applies to all branches
uses_countintegerNumber of times it has been used
statestringDerived state (see table)
created_atstringCreation date
updated_atstringLast update date
curl "https://gateway.jelou.ai/ecommerce/v2/apps/{app_id}/coupons?page=1&limit=20&state=active" \
  -H "x-api-key: YOUR_API_KEY"
{
  "data": [
    {
      "id": "9e3f2c1a-8b7d-4e6f-a5c4-d3b2a1e0f9c8",
      "code": "BLACKFRIDAY25",
      "name": "Black Friday 25%",
      "description": "25% off the entire store",
      "discount_type": "percentage",
      "discount_value": "25.000000",
      "status": true,
      "valid_from": "2026-11-25T00:00:00.000000Z",
      "valid_until": "2026-11-30T23:59:59.000000Z",
      "max_uses": 100,
      "once_per_client": true,
      "applies_to_all_branches": true,
      "uses_count": 0,
      "state": "scheduled",
      "created_at": "2026-07-02T15:30:00.000000Z",
      "updated_at": "2026-07-02T15:30:00.000000Z"
    }
  ],
  "links": {
    "first": "https://gateway.jelou.ai/ecommerce/v2/apps/{app_id}/coupons?page=1",
    "last": "https://gateway.jelou.ai/ecommerce/v2/apps/{app_id}/coupons?page=1",
    "prev": null,
    "next": null
  },
  "meta": {
    "current_page": 1,
    "from": 1,
    "last_page": 1,
    "per_page": 15,
    "to": 1,
    "total": 1
  }
}
To include the assigned branches in the response, request the branches relation (for example ?include=branches). To sort or filter by more fields, use Search coupons.
Coupon uses: get the detail of each redemption (customer, branch, cart) with GET https://gateway.jelou.ai/ecommerce/v2/coupons/{coupon_id}/uses. It supports the branch_id and client_id filters.