/api/v1/experiences/{id}One experience by id. Requires the "experiences:read" scope.
Path parameters#
| Field | Type | Description |
|---|---|---|
idrequired | string | Awrora id (UUID) for the experience. |
Example request#
bash
curl -X GET "https://your-site.awrora.app/api/v1/experiences/id_8f2k3n" \
-H "Authorization: Bearer $AWRORA_API_KEY"Responses#
200The experience.401Missing, invalid, revoked or expired API key — codes "api_key_missing", "api_key_invalid", "api_key_revoked", "api_key_expired".403The API app is off, the plan does not include the API, or the key lacks the required scope — codes "app_not_enabled", "plan_upgrade_required", "insufficient_scope" (the last carries "required_scope").404No such resource. The same response is returned for a resource that belongs to another organization — code "not_found".429Rate limit exceeded — code "rate_limited". See the x-ratelimit-* headers.500Something went wrong on our side — code "internal_error".
Response 200
| Field | Type | Description |
|---|---|---|
idrequired | string | Awrora id (UUID) for the experience. |
slugrequired | string | URL slug, unique within the organization. |
titlerequired | string | Public title. |
is_publishedrequired | boolean | True when the experience is visible on the storefront. Unpublished experiences are returned too — filter with ?published=. |
excerptrequired | string | null | Short teaser text, or null. |
duration_minutesrequired | integer | null | Length of the experience in minutes, or null when unset. This is the source: `duration` is derived display text, and a departure without `ends_at` runs this long. |
durationrequired | string | null | Duration as display text, e.g. "3 timmar". Derived from duration_minutes. |
difficultyrequired | string | null | Difficulty as written by the merchant, or null. |
addressrequired | string | null | Meeting point address, or null. |
latituderequired | number | null | WGS84 latitude of the meeting point, or null. |
longituderequired | number | null | WGS84 longitude of the meeting point, or null. |
image_urlrequired | string | null | Cover image URL, or null. |
languagesrequired | string[] | Language codes the experience is offered in. May be empty. |
tagsrequired | string[] | Merchant-defined tags. May be empty. |
price_fromrequired | object | null | Lowest advertised price, or null when the merchant published no machine-readable amount. |
price_tiersrequired | object[] | The bookable price tiers. Use the "id" of one of these as "tier_id" when creating a booking. An experience with no configured tiers reports a single "standard" tier built from its advertised price. |
min_participantsrequired | integer | null | Minimum participants for a departure to run, or null when not set. |
hours_before_booking_closesrequired | integer | null | Lead time in hours before departure when booking closes. Null means the organization default applies. |
created_atrequired | string | ISO 8601 timestamp with offset. |
updated_atrequired | string | ISO 8601 timestamp with offset. |
200 response
{
"id": "res_8f2k3n",
"slug": "string",
"title": "string",
"is_published": true,
"excerpt": "string",
"duration_minutes": -9007199254740991,
"duration": "string",
"difficulty": "string",
"address": "string",
"latitude": 1,
"longitude": 1,
"image_url": "https://example.com/webhooks/awrora",
"languages": [
"string"
],
"tags": [
"string"
],
"price_from": {
"amount_minor": -9007199254740991,
"currency": "SEK"
},
"price_tiers": [
{
"id": "res_8f2k3n",
"name": "string",
"price": {
"amount_minor": -9007199254740991,
"currency": "SEK"
},
"seats_per_unit": -9007199254740991
}
],
"min_participants": -9007199254740991,
"hours_before_booking_closes": -9007199254740991,
"created_at": "string",
"updated_at": "string"
}