---
title: "List published catalog groups for a collection"
description: "Returns the published catalog hierarchy available to this installation. The core resource is a bookable-product group; `type` carries the installed vertical vocabulary. In the Vacation Rental pack, areas, resorts, and curated property groups are all `vacation_rental_group` resources. Members-only groups are never served on this surface. For dynamically curated groups, membership and `memberCount` reflect the most recent scheduled membership refresh."
---

`GET /v1/developer/collections/{collection}/bookable-product-groups`

**Operation ID:** `listBookableProductGroups`

Returns the published catalog hierarchy available to this installation. The core resource is a bookable-product group; `type` carries the installed vertical vocabulary. In the Vacation Rental pack, areas, resorts, and curated property groups are all `vacation_rental_group` resources. Members-only groups are never served on this surface. For dynamically curated groups, membership and `memberCount` reflect the most recent scheduled membership refresh.

## Contract status

| Field | Value |
| --- | --- |
| Maturity | `beta` |
| Required capability | `vacation_rentals.read` |
| Freshness class | `published-content` |
| Quota cost | `1` |
| Operational owner | API + Developer Experience + Catalog |

All operations require a Kismet Developer Bearer credential. Collection and resource authority is resolved from the credential's installation grants; identifiers in the URL never grant access.

## Request parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `cursor` | query | string | no |  |
| `limit` | query | integer | no |  |
| `collection` | path | string | yes |  |

## Request body

This operation has no JSON request body.

## cURL

```sh
curl --request GET \
  "$KISMET_API_ORIGIN/v1/developer/collections/sand-sea-condos/bookable-product-groups" \
  --header "Authorization: Bearer $KISMET_DEVELOPER_API_KEY" \
  --header "Accept: application/json"
```

## Responses

| Status | Meaning |
| --- | --- |
| 200 | Success. |
| 400 | Invalid request parameters or body. |
| 401 | Missing, invalid, expired, or inappropriate credential/session. |
| 403 | Credential lacks the required grant/capability, or an origin/CSRF check failed. |
| 429 | Rate limit or quota exceeded; inspect response metadata before retrying. |
| 503 | A required Kismet dependency is temporarily unavailable. |

### Success example

```json
{
  "data": [
    {
      "resourceType": "bookable_product_group",
      "type": "vacation_rental_group",
      "id": "33333333-3333-4333-8333-333333333333",
      "slug": "old-port",
      "name": "Old Port",
      "description": "Walkable stays near the waterfront and historic district.",
      "collection": {
        "id": "11111111-1111-4111-8111-111111111111",
        "slug": "sandbox-stays",
        "name": "Sandbox Stays"
      },
      "classification": {
        "marketingRegion": "Portland",
        "tags": [
          "walkable",
          "waterfront"
        ]
      },
      "media": {},
      "memberCount": 8,
      "links": {
        "self": "/v1/developer/bookable-product-groups/33333333-3333-4333-8333-333333333333",
        "bookableProducts": "/v1/developer/collections/11111111-1111-4111-8111-111111111111/vacation-rentals?group=old-port"
      },
      "publication": {
        "updatedAt": "2026-08-25T00:00:00.000Z"
      },
      "capabilities": [
        "vacation_rentals.read"
      ]
    }
  ],
  "page": {
    "limit": 20,
    "nextCursor": null
  }
}
```

## Machine-readable sources

- [This page as Markdown](/api/reference/list-bookable-product-groups.md)
- [Developer API OpenAPI v0.7.2](/openapi.json)
