# List subscription groups

`GET https://rcur.app/api/v2/subscription-groups`

A group bundles the subscription templates a subscription can be switched between.

## Query parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `page` | integer | no | Page number for pagination |

## Example request

```bash
curl -X GET https://rcur.app/api/v2/subscription-groups \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json"
```

## Responses

### 200 List of subscription groups

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | array of SubscriptionGroups | no |  |
| `data[].id` | string | yes |  |
| `data[].name` | string | yes |  |
| `data[].description` | string | no | Only for yourself, customers do not see it |
| `data[].plans` | array of SubscriptionTemplates | yes | The templates a subscription of the group can be switched between, in the order customers see them |
| `data[].plans[].id` | string | yes |  |
| `data[].plans[].name` | string | yes | Name of the template |
| `data[].plans[].description` | string | no | Description the subscriptions made from the template get |
| `data[].plans[].currency` | string | yes |  |
| `data[].plans[].group_id` | string | no | The subscription group the template is in |
| `data[].plans[].plan_name` | string | no | Name shown in the customer portal when switching |
| `data[].plans[].plan_description` | string | no | Text shown in the customer portal when switching |
| `data[].plans[].rules` | array of SubscriptionRules | yes |  |
| `data[].plans[].rules[].id` | string | yes |  |
| `data[].plans[].rules[].amount` | string | yes |  |
| `data[].plans[].rules[].currency` | string | yes | One of: `AED`, `AUD`, `BGN`, `BRL`, `CAD`, `CHF`, `CZK`, `DKK`, `EUR`, `GBP`, `HKD`, `HUF`, `ILS`, `ISK`, `JPY`, `MXN`, `MYR`, `NOK`, `NZD`, `PHP`, `PLN`, `RON`, `SEK`, `SGD`, `THB`, `TWD`, `USD`, `ZAR`. |
| `data[].plans[].rules[].interval` | string | yes | One of: `day`, `week`, `month`, `year`. |
| `data[].plans[].rules[].interval_amount` | integer | yes |  |
| `data[].plans[].rules[].day` | integer | yes |  |
| `data[].plans[].rules[].times` | integer | no |  |
| `data[].plans[].rules[].times_done` | integer | yes |  |
| `data[].created_at` | string | yes |  |
| `links` | object | no |  |
| `links.first` | string | no |  |
| `links.last` | string | no |  |
| `links.prev` | string | no |  |
| `links.next` | string | no |  |
| `meta` | object | no |  |
| `meta.current_page` | integer | no |  |
| `meta.last_page` | integer | no |  |
| `meta.per_page` | integer | no |  |
| `meta.total` | integer | no |  |

```json
{
    "data": [
        {
            "id": "xY1zA2bC3d",
            "name": "Groentebox",
            "description": null,
            "plans": [
                {
                    "id": "aB3dE5fG7h",
                    "name": "Groentebox klein",
                    "description": "Groentebox klein, wekelijks",
                    "currency": "EUR",
                    "group_id": "xY1zA2bC3d",
                    "plan_name": "Klein",
                    "plan_description": null,
                    "rules": [
                        {
                            "id": "rule_abc123",
                            "amount": "29.99",
                            "currency": "EUR",
                            "interval": "month",
                            "interval_amount": 1,
                            "day": 1,
                            "times": 12,
                            "times_done": 3
                        }
                    ]
                }
            ],
            "created_at": "2026-10-31 10:00:00"
        }
    ],
    "links": {
        "first": "string",
        "last": "string",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "last_page": 1,
        "per_page": 15,
        "total": 3
    }
}
```
