> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://developers.brevo.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://developers.brevo.com/_mcp/server.

# Get all your coupon collections

GET https://api.brevo.com/v3/couponCollections

Retrieve a paginated list of all coupon collections in your Brevo account. Results can be sorted by creation date, remaining coupons count, or expiration date, in ascending or descending order. Pagination defaults to 50 collections per page (maximum 100).

Reference: https://developers.brevo.com/reference/get-coupon-collections

## Authentication

- `api-key` header (required) — The API key should be passed in the request headers as `api-key` for authentication.

## Request

### Query parameters

- `limit` (long, optional, default: 50) — Number of documents returned per page
- `offset` (long, optional, default: 0) — Index of the first document on the page
- `sort` (enum, optional, default: desc) — Sort the results by creation time in ascending/descending order
  - Allowed values: `asc`, `desc`
- `sortBy` (enum, optional, default: createdAt) — The field used to sort coupon collections
  - Allowed values: `createdAt`, `remainingCoupons`, `expirationDate`

## Response

### 200

Coupon collections

- `createdAt` (datetime, required) — Datetime on which the collection was created.
- `defaultCoupon` (string, required) — The default coupon of the collection.
- `id` (string, required) — The id of the collection.
- `name` (string, required) — The name of the collection.
- `remainingCoupons` (long, required) — Number of coupons that have not been sent yet.
- `totalCoupons` (long, required) — Total number of coupons in the collection.
- `expirationDate` (datetime, optional) — Expiration date for the coupon collection in RFC3339 format.
- `remainingCouponsAlert` (integer, optional) — If present, an email notification is going to be sent when the total number of available coupons falls below the defined threshold.
- `remainingDaysAlert` (integer, optional) — If present, an email notification is going to be sent the defined amount of days before to the expiration date.

## Examples

**Response**

```json
{
  "createdAt": "2023-01-06T05:03:47.053000000Z",
  "defaultCoupon": "10 OFF",
  "id": "23befbae-1505-47a8-bd27-e30ef739f32c",
  "name": "SummerPromotions",
  "remainingCoupons": 5000,
  "totalCoupons": 10000,
  "collections": [
    {
      "createdAt": "2017-03-12T12:30:00Z",
      "defaultCoupon": "10 OFF",
      "id": "23befbae-1505-47a8-bd27-e30ef739f32c",
      "name": "Summer",
      "remainingCoupons": 5000,
      "totalCoupons": 10000
    }
  ]
}
```

**SDK Code**

```typescript response
import { BrevoClient } from "@getbrevo/brevo";

async function main() {
    const client = new BrevoClient({
        apiKey: "YOUR_API_KEY_HERE",
    });
    await client.coupons.getCouponCollections({});
}
main();

```

```python response
from brevo import Brevo

client = Brevo(
    api_key="YOUR_API_KEY_HERE",
)

client.coupons.get_coupon_collections()

```

```php response
<?php

namespace Example;

use Brevo\Brevo;
use Brevo\Coupons\Requests\GetCouponCollectionsRequest;

$client = new Brevo(
    apiKey: 'YOUR_API_KEY_HERE',
);
$client->coupons->getCouponCollections(
    new GetCouponCollectionsRequest([]),
);

```

```go response
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.brevo.com/v3/couponCollections"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("api-key", "<apiKey>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby response
require 'uri'
require 'net/http'

url = URI("https://api.brevo.com/v3/couponCollections")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["api-key"] = '<apiKey>'

response = http.request(request)
puts response.read_body
```

```java response
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://api.brevo.com/v3/couponCollections")
  .header("api-key", "<apiKey>")
  .asString();
```

```csharp response
using RestSharp;

var client = new RestClient("https://api.brevo.com/v3/couponCollections");
var request = new RestRequest(Method.GET);
request.AddHeader("api-key", "<apiKey>");
IRestResponse response = client.Execute(request);
```

```swift response
import Foundation

let headers = ["api-key": "<apiKey>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://api.brevo.com/v3/couponCollections")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```