---
title: "Query coupons"
method: POST
path: "/coupons/search"
tags: ["Coupons"]
---

# Query coupons

`POST /coupons/search`

Use when listing or searching coupons (e.g. promo management). Returns a paginated list; supports filtering and sorting.

## Request body

- TypesCouponFilter
  - `coupon_codes` string[]
  - `coupon_ids` string[]
  - `expand` string
  - `filters` TypesFilterCondition[]
    - `data_type` 'string' | 'number' | 'date' | 'array'
    - `field` string
    - `operator` 'eq' | 'contains' | 'not_contains' | 'gt' | 'lt' | 'gte' | 'in' | 'not_in' | 'before' | 'after'
    - `value` TypesValue
      - `array` string[]
      - `boolean` boolean
      - `date` string
      - `number` number
      - `string` string
  - `limit` integer
  - `offset` integer
  - `order` 'asc' | 'desc'
  - `sort` TypesSortCondition[]
    - `direction` 'asc' | 'desc'
    - `field` string
  - `status` 'published' | 'deleted' | 'archived'

## Response `200`

OK

- ListCouponsResponse
  - `items` CouponResponse[]
    - `amount_off` string
    - `cadence` 'once' | 'repeated' | 'forever'
    - `coupon_code` string
    - `created_at` string, date-time
    - `created_by` string
    - `currency` string
    - `duration_in_periods` integer
    - `environment_id` string
    - `id` string
    - `max_redemptions` integer
    - `metadata` object
    - `name` string
    - `percentage_off` string
    - `redeem_after` string
    - `redeem_before` string
    - `rules` object
    - `status` 'published' | 'deleted' | 'archived'
    - `tenant_id` string
    - `total_redemptions` integer
    - `type` 'fixed' | 'percentage'
    - `updated_at` string, date-time
    - `updated_by` string
  - `pagination` TypesPaginationResponse
    - `limit` integer
    - `offset` integer
    - `total` integer

## Other responses

- `400` — Invalid request
- `500` — Server error

## Changes

> 108 revisions in range; 51 could not be searched.

- **2026-07-09** `7d57386313c7` — 6 breaking, 3 warning, 12 info
  - request property `status` was restricted to a list of enum values
  - the `filters/items/` request property type/format changed from ``/`` to `object`/``
  - the `sort/items/` request property type/format changed from ``/`` to `object`/``
  - the `status` request property type/format changed from ``/`` to `string`/``
  - …17 more
- **2026-07-09** `4b1a811c4179` — 10 breaking, 9 warning, 3 info
  - removed the enum value `archived` of the request property `status`
  - removed the enum value `deleted` of the request property `status`
  - removed the enum value `published` of the request property `status`
  - the `filters/items/` request property type/format changed from `object`/`` to ``/``
  - …18 more

[Change history](https://skmtc.dev/flexprice/apis/flexprice-api/changes/coupons/search/post.md)

---

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