Packages
List and retrieve packages
A bundle sold as one booking: a party, a group format.
The package object
The same for every key, live or test: there is no test copy of it.
idstringrequiredA package id, pkg_ and 22 characters.
object"package"requirednamestringrequiredslugstringrequireddescriptionstringrequirednullablestatusstringrequirednullablepricing_modelstringrequirednullableper_head or flat_rate.
pricesobjectrequiredprices.adultintegerrequirednullableAn amount in whole cents.
prices.juniorintegerrequirednullableAn amount in whole cents.
prices.flat_rateintegerrequirednullableAn amount in whole cents.
prices.baseintegerrequirednullableAn amount in whole cents.
peak_pricesobjectrequirednullablepeak_prices.adultintegerrequirednullableAn amount in whole cents.
peak_prices.juniorintegerrequirednullableAn amount in whole cents.
peak_prices.flat_rateintegerrequirednullableAn amount in whole cents.
peak_prices.baseintegerrequirednullableAn amount in whole cents.
guestsobjectrequiredguests.min_adultsintegerrequirednullableguests.max_adultsintegerrequirednullableguests.min_juniorsintegerrequirednullableguests.max_juniorsintegerrequirednullableguests.max_guestsintegerrequirednullablestaff_onlybooleanrequiredTrue when only staff can book it.
venuesarray of stringsrequiredWhere it is sold. Empty means every venue.
created_atstringrequiredA UTC instant, ISO 8601, e.g. 2026-10-08T03:00:00.000Z.
updated_atstringrequiredA UTC instant, ISO 8601, e.g. 2026-10-08T03:00:00.000Z.
duration_minutesintegerrequirednullabledepositobjectrequirednullabledeposit.typestringrequirednullabledeposit.valueintegerrequirednullableavailable_fromstringrequirednullableyyyy-MM-dd.
available_untilstringrequirednullableyyyy-MM-dd.
{
"id": "pkg_0TMXp8QPR6yGvKuV2GZQ10",
"object": "package",
"name": "<string>",
"slug": "<string>",
"description": "<string>",
"status": "<string>",
"pricing_model": "<string>",
"prices": {
"adult": 4500,
"junior": 4500,
"flat_rate": 4500,
"base": 4500
},
"peak_prices": {
"adult": 4500,
"junior": 4500,
"flat_rate": 4500,
"base": 4500
},
"guests": {
"min_adults": 1,
"max_adults": 1,
"min_juniors": 1,
"max_juniors": 1,
"max_guests": 1
},
"staff_only": true,
"venues": [
"ven_0TMXp8QPR6yGvKuV2GZQ10"
],
"created_at": "2026-10-08T03:00:00.000Z",
"updated_at": "2026-10-08T03:00:00.000Z",
"duration_minutes": 1,
"deposit": {
"type": "<string>",
"value": 1
},
"available_from": "2026-10-08",
"available_until": "2026-10-08"
}List packages
Every package the key can see, newest first, a page at a time.
Query parameters
limitintegerHow many to return, 1 to 100. Defaults to 25.
starting_afterstringThe next_cursor of the page before. Omit it for the first page.
updated_sincestringOnly rows changed at or after this instant, ISO 8601 with an offset.
curl "https://api.hatcel.com/packages?limit=25" \
-H "Authorization: Bearer $HATCEL_API_KEY" \
-H "Hatcel-Version: 2026-10-08"{
"object": "list",
"data": [
{
"id": "pkg_0TMXp8QPR6yGvKuV2GZQ10",
"object": "package",
"name": "<string>",
"slug": "<string>",
"description": "<string>",
"status": "<string>",
"pricing_model": "<string>",
"prices": {
"adult": 4500,
"junior": 4500,
"flat_rate": 4500,
"base": 4500
},
"peak_prices": {
"adult": 4500,
"junior": 4500,
"flat_rate": 4500,
"base": 4500
},
"guests": {
"min_adults": 1,
"max_adults": 1,
"min_juniors": 1,
"max_juniors": 1,
"max_guests": 1
},
"staff_only": true,
"venues": [
"ven_0TMXp8QPR6yGvKuV2GZQ10"
],
"created_at": "2026-10-08T03:00:00.000Z",
"updated_at": "2026-10-08T03:00:00.000Z",
"duration_minutes": 1,
"deposit": {
"type": "<string>",
"value": 1
},
"available_from": "2026-10-08",
"available_until": "2026-10-08"
}
],
"has_more": true,
"next_cursor": "eyJ0IjoiMjAyNi0xMC0wOFQwMzowMDowMC4wMDBaIiwiaSI6IjBmOGZhZDViIn0"
}Retrieve a package
One package by its id, with its version in the ETag header. Another object's id, or one this key cannot see, is a 404.
Path parameters
idstringrequiredThe package's id, pkg_ and 22 characters.
curl "https://api.hatcel.com/packages/pkg_0TMXp8QPR6yGvKuV2GZQ10" \
-H "Authorization: Bearer $HATCEL_API_KEY" \
-H "Hatcel-Version: 2026-10-08"{
"id": "pkg_0TMXp8QPR6yGvKuV2GZQ10",
"object": "package",
"name": "<string>",
"slug": "<string>",
"description": "<string>",
"status": "<string>",
"pricing_model": "<string>",
"prices": {
"adult": 4500,
"junior": 4500,
"flat_rate": 4500,
"base": 4500
},
"peak_prices": {
"adult": 4500,
"junior": 4500,
"flat_rate": 4500,
"base": 4500
},
"guests": {
"min_adults": 1,
"max_adults": 1,
"min_juniors": 1,
"max_juniors": 1,
"max_guests": 1
},
"staff_only": true,
"venues": [
"ven_0TMXp8QPR6yGvKuV2GZQ10"
],
"created_at": "2026-10-08T03:00:00.000Z",
"updated_at": "2026-10-08T03:00:00.000Z",
"duration_minutes": 1,
"deposit": {
"type": "<string>",
"value": 1
},
"available_from": "2026-10-08",
"available_until": "2026-10-08"
}