Skip to content

Understory API

This is the reference documentation for the Understory API. Here you can find detailed information about the API endpoints, request and response formats, and authentication methods.

For more general information, go to Documentation.

Preview

You’re exploring an early preview of the Understory API documentation. Take a look around and see what’s available.

Want to help us test and improve it? Share your feedback by clicking the chat icon in the bottom right. We’d love to hear your thoughts!

Download OpenAPI description
Overview
License
Languages
Servers
https://api.understory.io/

Booking

Bookings related endpoints.

Operations

Event Availability

Query availability for events.

Event availability is a computed value based on a number of parameters, including:

  • Event capacity and current reservations
  • Resources linked to tickets and bookings (e.g., bikes, kayaks, equipment)
  • Booking cut-off time

The availability response includes both an overall availability status and a breakdown of individual constraints, allowing you to understand exactly what factors are limiting availability for a given event.

Operations

Event

This is a preview of the Events API specification.

The API is not yet available in production.

Operations

Request

Get all events for the company.

Security
OAuth2
Query
cursorstring

The cursor for pagination. An empty string indicates the start of the list.

limitinteger(int32)[ 1 .. 500 ]

The maximum number of events to return.

Default 100
fromstring(date-time)

Filter events starting from this timestamp (inclusive). RFC 3339 format (e.g., 2025-01-15T09:00:00Z).

tostring(date-time)

Filter events up to this timestamp (exclusive). RFC 3339 format (e.g., 2025-01-15T18:00:00Z).

curl -i -X GET \
  'https://api.understory.io/v1/events?cursor=string&limit=100&from=2019-08-24T14%3A15%3A22Z&to=2019-08-24T14%3A15%3A22Z' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

OK

Bodyapplication/json
nextstring

The cursor for the next page. An empty string indicates the end of the list.

itemsArray of objects(Event)
idstringrequired

The unique identifier for the event.

statestringrequired

The state of the event.

Enum"ACTIVE""INACTIVE""CANCELLED""COMPLETED""UNKNOWN"
visibilitystringrequired

The visibility of the event.

Enum"PUBLIC""PRIVATE""UNKNOWN"
experience_idstringrequired

The unique identifier for the experience.

capacityobject(Capacity)required
totalintegerrequired

The total number of seats.

reservedintegerrequired

The number of reserved seats.

sessionsArray of objects(Session)[ 1 .. 10 ] itemsrequired

The sessions for the event.

idstringrequired

The unique identifier for the session.

start_timestring(date-time)required

The start time of the session.

end_timestring(date-time)required

The end time of the session.

timezonestringrequired

The IANA time zone name for the session.

Example: "Europe/Copenhagen"
location_idstringrequired

The unique identifier for the location of the session.

languagesArray of strings(iso-639-1)required

The languages spoken during the session.

Example: ["en"]
created_atstring(date-time)required

The date and time when the event was created.

updated_atstring(date-time)required

The date and time when the event was last updated.

metadataobject(Metadata)
property name*stringadditional property
Response
application/json
{ "next": "string", "items": [ {} ] }

Request

Get an event by its ID.

Security
OAuth2
Path
eventIdstringrequired

The unique identifier for the event.

curl -i -X GET \
  'https://api.understory.io/v1/events/{eventId}' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

OK

Bodyapplication/json
idstringrequired

The unique identifier for the event.

statestringrequired

The state of the event.

Enum"ACTIVE""INACTIVE""CANCELLED""COMPLETED""UNKNOWN"
visibilitystringrequired

The visibility of the event.

Enum"PUBLIC""PRIVATE""UNKNOWN"
experience_idstringrequired

The unique identifier for the experience.

capacityobject(Capacity)required
totalintegerrequired

The total number of seats.

reservedintegerrequired

The number of reserved seats.

sessionsArray of objects(Session)[ 1 .. 10 ] itemsrequired

The sessions for the event.

idstringrequired

The unique identifier for the session.

start_timestring(date-time)required

The start time of the session.

end_timestring(date-time)required

The end time of the session.

timezonestringrequired

The IANA time zone name for the session.

Example: "Europe/Copenhagen"
location_idstringrequired

The unique identifier for the location of the session.

languagesArray of strings(iso-639-1)required

The languages spoken during the session.

Example: ["en"]
created_atstring(date-time)required

The date and time when the event was created.

updated_atstring(date-time)required

The date and time when the event was last updated.

metadataobject(Metadata)
property name*stringadditional property
Response
application/json
{ "id": "string", "state": "ACTIVE", "visibility": "PUBLIC", "experience_id": "string", "capacity": { "total": 0, "reserved": 0 }, "sessions": [ {} ], "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z", "metadata": { "key1": "value1", "key2": "value2" } }

Experience

This is a preview of the Experience API specification.

The API is not yet available in production.

Operations

Grow

This is a collection of endpoints related to Understory Grow.

Operations

Test

These endpoints are for testing purposes only.

You can use them to verify that your integration authentication works as intended.

Operations