List all variants

GET
/accommodations/{product_id}/variants

Lists variants belonging to the given accommodation. Each entry has the same shape as GET /accommodations/{product_id}/variants/{id}.

Results are ordered by creation time, newest first, and paginated with an opaque cursor in next_cursor; pass it back as next_cursor on the next call to fetch the next page (null means there are no more results). Malformed cursors are ignored and the first page is returned.

Any API key (app-installation-scoped or dashboard-user-scoped) can list variants under any accommodation in the company.

Path Parameters

product_id*string

Product ID for the accommodation type (e.g. acc_9fKbV3aQx7).

Query Parameters

limit?integer

Number of results per page. Default 50, maximum 200. Values above 200 or zero/negative are clamped to that range rather than rejected.

Default50
next_cursor?string

Opaque pagination cursor returned in next_cursor of the previous response. Malformed values are ignored and the first page is returned.

Response Body

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/accommodations/string/variants" \  -H "Easol-API-Version: 2026-11-01"
{
  "object": "string",
  "url": "string",
  "has_more": true,
  "next_cursor": "string",
  "data": [
    {
      "object": "accommodation_variant",
      "id": "string",
      "name": "string",
      "tagline": "string",
      "min_occupancy": 1,
      "max_occupancy": 1,
      "hidden": true,
      "position": 0,
      "checkout_limit": 1,
      "stock_strategy": "inventory",
      "image_url": "http://example.com",
      "price": {
        "amount": 0,
        "currency": "string"
      },
      "accommodation": "string"
    }
  ]
}
{
  "error": {
    "code": "string",
    "message": "string"
  }
}
{
  "error": {
    "code": "string",
    "message": "string"
  }
}
{
  "error": {
    "code": "string",
    "message": "string"
  }
}