---
title: "List codes for a coupon"
method: GET
path: "/shop/coupons/{couponId}/codes"
tags: ["CouponCodes"]
---

# List codes for a coupon

`GET /shop/coupons/{couponId}/codes`

Returns a paginated list of `CouponCode`s belonging to the given
`Coupon`. Use this to inspect which codes have been generated,
their validity windows, and whether they've been pre-allocated to
specific customers.

Requires the `RESERVATIONS_VIEW` permission on the coupon's site.

## Query parameters

- `page` integer
- `per_page` integer

## Response `200`

A paginated list of `CouponCode`s for the parent coupon.

- object
  - `data` CouponCode[], required — The coupon codes on this page, in arbitrary order. Page with `page` + `per_page` query parameters to walk the full set.
    - `id` string, object-id, required — Unique identifier for this coupon code.
    - `code` string, required — The redemption code customers type at checkout. Auto-generated when not specified on create.
    - `coupon_id` string, object-id, required — ID of the parent `Coupon` this code belongs to.
    - `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 is single-use and burns after the first redemption.
    - `customer_credit_id` string, nullable — If set, the code is pre-allocated to a specific `CustomerCredit` record — typically used to issue targeted promotional credits to a known customer.
    - `customer_id` string, uuid, nullable — ID of the customer this code is pre-allocated to. Required when `customer_credit_id` is set.
    - `revenue` integer, nullable — Override revenue value in the smallest currency unit (e.g. pence/cents) for this code's redemption. When null, the parent coupon's revenue rules apply.

## Other responses

- `401` — The user is unauthenticated
- `403` — The authenticated user does not have permission.
- `404` — The resource couldn't be found

---

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