List all packages
Lists packages. Each entry has the same shape as
GET /packages/{id}, including its composition (see there for how
included items, steps and options are structured).
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. Use limit to set the page size (default 50,
maximum 200); out-of-range values are clamped rather than rejected.
Draft, selling, and off-sale packages are all returned; archived packages are excluded.
All API keys (app-installation-scoped and dashboard-user-scoped) see every non-archived package in the company.
Query Parameters
Number of results per page. Default 50, maximum 200. Values above 200 or zero/negative are clamped to that range rather than rejected.
50Opaque 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
curl -X GET "https://example.com/packages" \ -H "Easol-API-Version: 2026-11-01"{
"object": "string",
"url": "string",
"has_more": true,
"next_cursor": "string",
"data": [
{
"object": "package",
"id": "string",
"name": "string",
"tagline": "string",
"multi_date": true,
"min_adult_count": 0,
"max_adult_count": 0,
"off_sale_copy": "string",
"state": "draft",
"dashboard_url": "../dictionary",
"pricing_strategy": "transparent",
"hero_image_url": "http://example.com",
"per_person_home_amount": {
"amount": 0,
"currency": "string"
},
"included_items": {
"object": "list",
"url": "string",
"has_more": false,
"next_cursor": "string",
"data": [
{
"object": "package_item",
"id": "string",
"quantity": 0,
"bookable": {
"object": "experience_variant",
"id": "string",
"name": "string",
"tagline": "string",
"product_name": "string"
}
}
]
},
"steps": {
"object": "list",
"url": "string",
"has_more": false,
"next_cursor": "string",
"data": [
{
"object": "package_step",
"id": "string",
"name": "string",
"tagline": "string",
"required": true,
"selection": "single",
"step_type": "experience",
"options": {
"object": "list",
"url": "string",
"has_more": false,
"next_cursor": "string",
"data": [
{
"object": "package_step_option",
"id": "string",
"listable": true,
"bookable": {
"object": "experience_variant",
"id": "string",
"name": "string",
"tagline": "string",
"product_name": "string"
}
}
]
}
}
]
}
}
]
}{
"error": {
"code": "string",
"message": "string"
}
}{
"error": {
"code": "string",
"message": "string"
}
}Packages
A package bundles multiple products into a single bookable item. Each package has always-included items and ordered configuration steps whose options a guest chooses between. `included_items` and step `options` each carry their `bookable` — an experience variant, accommodation variant, or extra. Extras are add-ons, not variants, but appear alongside variants when describing package contents. List and retrieve packages here to render their static composition before checking availability.
Retrieve a package GET
Next Page