---
title: "List coupons"
method: GET
path: "/shop/coupons"
tags: ["Coupons"]
---

# List coupons

`GET /shop/coupons`

This endpoint lists coupons for an organisation. By default, only manual redemption coupons are returned.
Use the `redemption_type` filter to retrieve programmatic coupons (credit types).

## Query parameters

- `per_page` integer
- `page` integer
- `site_id` string
- `redemption_type` 'manual' | 'programmatic'

## Response `200`

A list of coupons

- object — Paginated envelope mixin. `allOf` this into any list response that wraps its `data` array with `meta` + `links`; the concrete schema keeps its own title so the SDK surface is unchanged, while the `meta` / `links` shape is sourced from a single definition.
  - `links` PaginationLinks, required — Hypermedia navigation links for paging through a list response. Each property is a fully-qualified URL that preserves the original query string (filters, sort, page size) and only swaps the `page` parameter. `next` and `prev` are `null` at the ends of the result set; `first` and `last` are always present.
    - `first` string, required — The url of the first page for the paginated results set
    - `next` string, nullable, required — The url of the next page for the paginated results set
    - `prev` string, nullable, required — The url of the previous page for the paginated results set
    - `last` string, required — The url of the last page for the paginated results set
  - `meta` PaginationMeta, required — Counts and positional information for the current page of a list response. Use `current_page` and `last_page` to drive pagination UI, `total` for result counts, and `per_page` to confirm the page size the server actually applied (which may differ from the requested value when capped).
    - `from` integer, required — The item number from which this results set starts from
    - `to` integer, required — The item number from which this results set ends at
    - `total` integer, required — The total number of results
    - `current_page` integer, required — The current page number
    - `last_page` integer, required — The page number of the last result set
    - `per_page` integer, required — The number of results per page
    - `path` string, required — The path of this api request
  - `data` Coupon[], required
    - `id` string, object-id, required — The ID of the coupon
    - `name` string, required — The name of the coupon
    - `description` string, required — A string to describe the coupon
    - `locale_strings` object, nullable, required — Translations of the coupon's name and description, keyed by locale code. Managed via the coupon locale strings endpoints.
    - `offering_discounts` OfferingDiscount[], required — An array of offering_discounts belonging to this coupon. Each offering_discount describes what offerings the coupon is valid for.
      - `id` string, object-id, required — ID of the offering discount
      - `offerings` OfferingDiscountItem[], required
        - `offering_type` 'appointment' | 'package' | 'product' | 'session' | 'area_booking', required — The type of offering
        - `offering_id` string, object-id, required — The ID of the offering
        - `offering_name` string, required — The name of the offering
      - `discount_type` 'fixed_amount' | 'percentage', required — The type of discount to be applied
      - `fixed_amount` integer, required — The amount of discount to apply as an integer of the smallest unit of currency.
      - `percentage` integer, required — The percentage of discount to apply
    - `currency` string, required — The currency of any amounts to be applied.
    - `valid_weekdays` string[], required — An array of weekdays which this coupon is available for use
    - `invalid_date_set_ids` string[], required — An array of IDs of `DateSet`s describing when this coupon is _not_ valid. The DateSet must belong to the same organisation as the coupon.
    - `default_validity_interval` string, required — The default duration this coupon is valid for, as an ISO8601 string. See https://en.wikipedia.org/wiki/ISO_8601#Durations
    - `default_multi_use` boolean, required — The default for whether a code created from this coupon may be used multiple times
    - `for_lead_booker_only` boolean, required — If true, only the lead booker of an order will be able to use this coupon. If false, any guest on the order will be able to use the coupon, including non-members.
    - `max_uses` integer, nullable, required — The maximum number of times this coupon can be used within the specified max uses period
    - `max_uses_period` 'P1D' | 'P1W' | 'P1M' | 'P1Y', nullable, required — The time period for usage limits when max_uses is set. The duration is specified as an ISO8601 duration string. See https://en.wikipedia.org/wiki/ISO_8601#Durations P1D = daily limit, P1W = weekly limit, P1M = monthly limit, P1Y = yearly limit
    - `redemption_type` 'manual' | 'programmatic', required — The redemption type of the coupon.
    - `site_id` string, uuid, nullable, required — The ID of the site this coupon belongs to.
    - `created_at` string, date-time, required — The time and date that the coupon was created.
    - `updated_at` string, date-time, required — The time and date that the coupon was last updated.
    - `deleted_at` string, date-time, nullable, required — The time and date that the coupon was soft-deleted.

## Other responses

- `401` — The user is unauthenticated

---

[API](https://skmtc.dev/try/apis/trybe-api.md) · [All operations](https://skmtc.dev/try/apis/trybe-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/try/trybe-api/revisions/f37f92702da5/schema)
