---
title: "List coupon codes across organisations"
method: GET
path: "/shop/coupon-codes"
tags: ["CouponCodes"]
---

# List coupon codes across organisations

`GET /shop/coupon-codes`

Returns a paginated list of every `CouponCode` visible to the
calling user across every organisation they belong to. Use the
`code` query filter to look up a single redemption code without
knowing which coupon it belongs to — handy when a customer presents
a code at point of sale and the staff member needs to navigate to
the owning coupon.

Each entry includes the `organisation_id` of the owning coupon so
consumers can route follow-up calls to the correct
`/shop/organisations/{organisationId}/...` resource.

Requires the `RESERVATIONS_VIEW` permission on at least one site.

## Query parameters

- `code` string
- `page` integer
- `per_page` integer

## Response `200`

A paginated list of coupon codes visible to the calling user across
every organisation they are scoped to.

- 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` CrossOrganisationCouponCode[], required — The coupon codes on this page.
    - `id` string, object-id, required — Unique identifier for the coupon code.
    - `coupon_id` string, object-id, required — ID of the parent `Coupon`.
    - `code` string, required — The redemption code customers type at checkout.
    - `valid_from_date` string, date-time, nullable — ISO 8601 timestamp from which the code is redeemable. Null = valid immediately.
    - `valid_to_date` string, date-time, nullable — ISO 8601 timestamp after which the code expires. Null = no expiry.
    - `multi_use` boolean, required — When true, the same code can be redeemed multiple times (once per customer). When false, the code burns after the first redemption.
    - `organisation_id` string, uuid, required — UUID of the organisation the code's coupon belongs to. Useful for routing follow-up calls to the right `/shop/organisations/{organisationId}/...` resource.

## Other responses

- `401` — The user is unauthenticated
- `403` — The authenticated user does not have permission.

---

[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)
