Get an experience

GET/api/v1/experiences/{id}
Scope: experiences:read

One experience by id. Requires the "experiences:read" scope.

Path parameters#

FieldTypeDescription
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

FieldTypeDescription
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"
}