# GET /discounts

**List discounts**

Returns a paginated list of discounts. Use the query parameters to page through results.

By default, Paddle returns discounts that are `active`. Use the `status` query parameter to return discounts that are archived or expired.

**Required permissions:** `discount.read`

## Query parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | array | optional | Return only the IDs specified. Use a comma-separated list to get multiple entities. |
| `after` | string | optional | Return entities after the specified Paddle ID when working with paginated endpoints. Used in the `meta.pagination.next` URL in responses for list operations. |
| `per_page` | integer | optional | Set how many entities are returned per page. Paddle returns the maximum number of results if a number greater than the maximum is requested. Check `meta.pagination.per_page` in the response to see how many were returned.

Default: `50`; Maximum: `200`. (Max: 200) |
| `include` | array | optional | Include related entities in the response. Use a comma-separated list to specify multiple entities. |
| `code` | array | optional | Return entities that match the discount code. Use a comma-separated list to specify multiple discount codes. |
| `order_by` | string | optional | Order returned entities by the specified field and direction (`[ASC]` or `[DESC]`). For example, `?order_by=id[ASC]`.

Valid fields for ordering: `created_at` and `id`. |
| `status` | array | optional | Return entities that match the specified status. Use a comma-separated list to specify multiple status values. |
| `mode` | string | optional | Return entities that match the specified mode. |
| `discount_group_id` | array | optional | Return entities related to the specified discount group. Use a comma-separated list to specify multiple discount group IDs. |

## Response (200)

- `data`: array (required)
- `meta`: object (required) — Information about this response.
  - `request_id`: string (required) — Unique ID for the request relating to this response. Provide this when contacting Paddle support about a specific request.
  - `pagination`: object (required) — Keys used for working with paginated results.
    - `per_page`: integer (required) — Number of entities per page for this response. May differ from the number requested if the requested number is greater than the maximum.
    - `next`: string (uri) (required) — URL containing the query parameters of the original request, along with the `after` parameter that marks the starting point of the next page. Always returned, even if `has_more` is `false`.
    - `has_more`: boolean (required) — Whether this response has another page.
    - `estimated_total`: integer — Estimated number of entities for this response.

### Response example

```json
{
  "data": [
    {
      "id": "dsc_01gtgztp8fpchantd5g1wrksa3",
      "status": "active",
      "description": "Black Friday 2024",
      "enabled_for_checkout": true,
      "code": "BF10OFF",
      "type": "percentage",
      "mode": "standard",
      "amount": "10",
      "currency_code": "USD",
      "recur": false,
      "maximum_recurring_intervals": null,
      "usage_limit": 1000,
      "restrict_to": null,
      "expires_at": "2024-12-03T00:00:00Z",
      "times_used": 0,
      "discount_group_id": "dsg_01js2gqehzccfkywgx1jk2mtsp",
      "custom_data": null,
      "import_meta": null,
      "created_at": "2024-11-28T14:36:14.695Z",
      "updated_at": "2024-11-28T14:36:14.695Z"
    },
    {
      "id": "dsc_01gtf15svsqzgp9325ss4ebmwt",
      "status": "active",
      "description": "Introductory offer: $10 off per user for Pro",
      "enabled_for_checkout": true,
      "code": "10OFFPRO",
      "type": "flat_per_seat",
      "mode": "standard",
      "amount": "1000",
      "currency_code": "USD",
      "recur": false,
      "maximum_recurring_intervals": null,
      "usage_limit": null,
      "restrict_to": [
        "pri_01gsz8x8sawmvhz1pv30nge1ke"
      ],
      "expires_at": "2023-12-05T15:00:00Z",
      "times_used": 0,
      "discount_group_id": null,
      "custom_data": null,
      "import_meta": null,
      "created_at": "2023-03-01T16:48:04.473Z",
      "updated_at": "2023-12-05T14:27:26.844Z"
    },
    {
      "id": "dsc_01gtgraak4chyhnp47rrdv89ad",
      "status": "active",
      "description": "Nonprofit discount",
      "enabled_for_checkout": true,
      "code": "98XFAUR91R",
      "type": "percentage",
      "mode": "standard",
      "amount": "10",
      "currency_code": null,
      "recur": true,
      "maximum_recurring_intervals": 3,
      "usage_limit": null,
      "restrict_to": [],
      "expires_at": null,
      "times_used": 6,
      "discount_group_id": null,
      "custom_data": null,
      "import_meta": null,
      "created_at": "2023-03-02T08:51:44.356Z",
      "updated_at": "2023-11-07T14:37:41.459Z"
    },
    {
      "id": "dsc_01h83xenpcfjyhkqr4x214m02x",
      "status": "active",
      "description": "Nonprofit discount",
      "enabled_for_checkout": false,
      "code": null,
      "type": "percentage",
      "mode": "standard",
      "amount": "10",
      "currency_code": null,
      "recur": true,
      "maximum_recurring_intervals": null,
      "usage_limit": null,
      "restrict_to": [
        "pri_01h83xenpcfjyhkqr4x214m02x"
      ],
      "expires_at": null,
      "times_used": 0,
      "discount_group_id": null,
      "custom_data": null,
      "import_meta": null,
      "created_at": "2023-08-18T08:51:07.596Z",
      "updated_at": "2023-08-18T09:05:17.05Z"
    }
  ],
  "meta": {
    "request_id": "d8f286a6-e049-4a6e-8fa8-a6f145ac3ecf",
    "pagination": {
      "per_page": 50,
      "next": "https://api.paddle.com/discounts?after=dsc_01h83xenpcfjyhkqr4x214m02x",
      "has_more": false,
      "estimated_total": 4
    }
  }
}
```
