Introduction
This documentation aims to provide all the information you need to work with our API.
Authenticating requests
To authenticate requests, include an Authorization
header with the value "Bearer {YOUR_AUTH_KEY}"
.
All authenticated endpoints are marked with a requires authentication
badge in the documentation below.
You can retrieve your token by contacting Crescat on contact@crescat.no.
Group
GET Group Event List
requires authentication
Get array of all events for your group
Example request:
curl --request GET \
--get "https://app.crescat.io/external/v1/calendar?start=vel&end=veritatis" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://app.crescat.io/external/v1/calendar"
);
const params = {
"start": "vel",
"end": "veritatis",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
{
[
{
"id": 1,
"name": "Event Name",
"start": 2000-01-01 12:00:00,
"end": 2000-01-01 15:00:00,
"event_type_id": 1,
"fields": [
{
"id": 1,
"show_time_id": 1,
"value": *,
}
for details on formatting: see event field format
],
"show_times": [
{
"id": 1,
"title": "Show Title",
"start": 2000-01-01 12:00:00,
"end": 2000-01-01 15:00:00,
"room_id": 1,
}
],
"rooms": [
{
"id": 1,
"name": "Room Name",
"title": "Show Title",
"start": 2000-01-01 12:00:00,
"end": 2000-01-01 15:00:00,
}
],
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET Group Event Response Format
requires authentication
Get format of events returned when requesting events
Example request:
curl --request GET \
--get "https://app.crescat.io/external/v1/calendar/format" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://app.crescat.io/external/v1/calendar/format"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
{
event_types [
{
"id": 1,
"name": "Event Type",
}
],
fields [
{
"id": 1,
"title": "Title of Your Field",
"format": String,
}
]
Formats of Fields:
String
Rich formatted Text
Date (2000-01-01)
Time (12:00:00)
Document url
Boolean
}
Example response (401, Festival Not Found: either not existing, or not your festival.):
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Venue/Rooms
GET Venue Rooms List
requires authentication
Get array of all rooms on your venue
Example request:
curl --request GET \
--get "https://app.crescat.io/external/v1/rooms" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://app.crescat.io/external/v1/rooms"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
{
[
{
"id": 1,
"name": "Room Name",
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET Room Booking List
requires authentication
Get array of all bookings for room
Example request:
curl --request GET \
--get "https://app.crescat.io/external/v1/rooms/1/calendar?start=impedit&end=enim" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://app.crescat.io/external/v1/rooms/1/calendar"
);
const params = {
"start": "impedit",
"end": "enim",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
{
[
{
"id": 1,
"name": "Event Name",
"start": 2000-01-01 12:00:00,
"end": 2000-01-01 15:00:00,
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Festival
GET Festival List
requires authentication
Array of all festivals for your organization.
Example request:
curl --request GET \
--get "https://app.crescat.io/external/v1/festivals" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://app.crescat.io/external/v1/festivals"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
{
Array of all festivals for your organization.
[
{
"id": 1,
"name": "Name of Your Festival",
"start": 2000-01-01 12:00:00,
"end": 2000-01-01 15:00:00,
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET Festival Performance List
requires authentication
Example request:
curl --request GET \
--get "https://app.crescat.io/external/v1/festivals/1/performances" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://app.crescat.io/external/v1/festivals/1/performances"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
{
[
{
"id": 1,
"name": "Performance Name",
"type": "Performance Type",
"fields": [
{
"id": 1,
"value": *,
}
for details on formatting: see performance field format
],
"events": [
{
"id": 1,
"name": "Name of Event",
}
],
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET Festival Performance Response Format & Definitions
requires authentication
Get format of all performance fields that will be included when requesting performances
Example request:
curl --request GET \
--get "https://app.crescat.io/external/v1/festivals/1/performances/format" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://app.crescat.io/external/v1/festivals/1/performances/format"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
{
fields [
{
"id": 1,
"title": "Title of Your Field",
"format": String,
}
]
Formats of Fields:
String
Rich formatted Text
Date (2000-01-01)
Time (12:00:00)
Document url
Boolean
}
Example response (401, Festival Not Found: either not existing, or not your festival.):
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET Festival Event List
requires authentication
Example request:
curl --request GET \
--get "https://app.crescat.io/external/v1/festivals/1/events" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://app.crescat.io/external/v1/festivals/1/events"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
{
[
{
"id": 1,
"name": "Event Name",
"start_date": 2000-01-01,
"end_date": 2000-01-01,
"production_period": [
"start": 2000-01-01 12:00:00,
"end": 2000-01-01 15:00:00,
],
"fields": [
{
"id": 1,
"show_time_id": 1,
"value": *,
}
for details on formatting: see event field format
],
"show_times": [
{
"id": 1,
"title": "Show Title",
"start": 2000-01-01 12:00:00,
"end": 2000-01-01 15:00:00,
"room_id": 1,
}
],
"festival_resources": [
{
"id": 1,
"name": "Festival Resource",
}
],
"rooms": [
{
"id": 1,
"title": "Show Title",
"start": 2000-01-01 12:00:00,
"end": 2000-01-01 15:00:00,
}
],
"performances": [
{
"id": 1,
"name": "Performance Name",
}
],
"venue": {
"id": 1,
"name": "Venue Name",
"address": "Venue Address",
"city": "Venue City",
"postal_code": "Postal Code",
"country": "Country",
"website": "Website",
"phone": "Phone",
},
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET Festival Event Response Format & Definitions
requires authentication
Get format and info from fields that will be included when requesting events
Example request:
curl --request GET \
--get "https://app.crescat.io/external/v1/festivals/1/events/format" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://app.crescat.io/external/v1/festivals/1/events/format"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
{
fields [
{
"id": 1,
"title": "Title of Your Field",
"format": String,
}
],
festival_event_types [
{
"id": 1,
"name": "Concert",
}
]
Formats of Fields:
String
Rich formatted Text
Date (2000-01-01)
Time (12:00:00)
Document url
Boolean
}
Example response (401, Festival Not Found: either not existing, or not your festival.):
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.