Folders
Folders are the fundamental organising principle of the Monad system. Genres, Venues, Spaces, Shows and Performances are all instances of Folders tagged with extra data.
API | Description |
---|---|
GET api/Folders |
Get children of the root folder |
GET api/Folders/{id} |
Get a folder |
GET api/Folders?page={page}&pageSize={pageSize} |
Get paged children of the root folder |
GET api/Folders?parentId={parentId} |
Get children of the parent folder |
GET api/Folders?parentId={parentId}&page={page}&pageSize={pageSize} |
Get paged children of the parent folder |
Shows
Some folders can be tagged as "Shows". Folders which are shows usually are also tagged as Performance for 1-off events, or have child folders tagged as Performance for multi-date shows.
API | Description |
---|---|
GET api/Shows/{id} |
Get a specific show by Id |
GET api/Shows?folderId={folderId}&genreId={genreId}&spaceId={spaceId}&venueId={venueId}&fromDate={fromDate}&toDate={toDate}&page={page}&pageSize={pageSize}&searchText={searchText} |
Get shows optionally paged and filtered by folder, genre, space, venue and dates. |
Performances
Some folders can be tagged as "Performances". Performances always have a start and end date and time, and are usually associated with a "Show" folder but do not have to be.
API | Description |
---|---|
GET api/Performances/{id} |
Get a specific performance by Id |
GET api/Performances?folderId={folderId}&showId={showId}&genreId={genreId}&spaceId={spaceId}&venueId={venueId}&fromDate={fromDate}&toDate={toDate}&page={page}&pageSize={pageSize} |
Get performances optionally paged and filtered by folder, show, genre, space, venue and dates |
Venues
Some folders can be tagged as "Venues". A folder can also inherit venue data from a different Venue folder, so you can tell which Space a Performance is in.
API | Description |
---|---|
GET api/Venues/{id} |
Get a specific venue by Id |
GET api/Venues?folderId={folderId} |
Get venues optionally filtered by folder |
Spaces
Some folders can be tagged as "Spaces". A folder can also inherit space data from a different Space folder, so you can tell which Space a Performance is in.
API | Description |
---|---|
GET api/Spaces/{id} |
Get a specific space by Id |
GET api/Spaces?folderId={folderId}&venueId={venueId} |
Get spaces optionally filtered by folder and venue |
Genres
Some folders can be tagged as "Genre". A folder can also inherit space data from a different Genre folder, so you can tell which Genre a Show is in.
API | Description |
---|---|
GET api/Genres/{id} |
Get a specific genre by Id |
GET api/Genres?folderId={folderId} |
Get genres. If the folderId parameter is supply, return all Genre folders that are a descendant of that folder. |
Basket
Baskets represent the items that a session is about to buy. This API only allows one basket per session.
API | Description |
---|---|
GET api/Basket |
Get the basket for the logged in user |
PUT api/Basket |
Makes a request to add items to the basket. |
Cache
Data returned by the API is cached; call "Get" on the Cache endpoint to clear the cache and fetch data fresh from the database.
API | Description |
---|---|
GET api/Cache |
Clear the cache |
CustomForms
Folder Show, Performance, Venue, Space and Genre data objects have a custom form attached
API | Description |
---|---|
GET api/CustomForms?formDataId={formDataId} |
Get a custom form by custom form id |
GET api/Genres/{genreId}/CustomForm |
Get the custom form for a specific genre Id |
GET api/Performances/{performanceId}/CustomForm |
Get the custom form for a specific performance Id |
GET api/Shows/{showId}/CustomForm |
Get the custom form for a specific show Id |
GET api/Spaces/{spaceId}/CustomForm |
Get the custom form for a specific space Id |
GET api/Venues/{venueId}/CustomForm |
Get the custom form for a specific venue Id |
EcwidToken
This endpoint returns an ecwid SSO token for a given session id, signed using a pre-shared secret
API | Description |
---|---|
GET api/EcwidToken |
Packages
API | Description |
---|---|
GET api/Packages/{id} |
Get a specific package by Id |
Prices
Returns the price for a given product.
API | Description |
---|---|
GET api/Prices?productId={productId} |
Get prices for a product. The return object is has prices, fees and donations, each of which is a dictionary of dictionaries. The first key is the PriceBandId, the second key is the DiscountId (Concession Type). |
Products
Products are the things you are selling, whether they are tickets, memberships, donations or merchandise. Products may be associated with a Performance, Show etc. but may not be. For example, a donation product may not be associated with any other folder. Products may be but do not have to be ticket. Tickets are simply products with (optional) seating plans, extra stock control functionality and are associated with a performance.
API | Description |
---|---|
GET api/Products/{id} |
Get a specific product by Id |
GET api/Products?folderId={folderId}&performanceId={performanceId}&showId={showId}&genreId={genreId}&spaceId={spaceId}&venueId={venueId}&fromDate={fromDate}&toDate={toDate}&page={page}&pageSize={pageSize} |
Get products optionally paged and filtered by folder, performnace, show, genre, space, venue and dates |
Quantities
Product Quantities are required to display the appropriate call to action and status on products - "Sold Out", "Limited Availability", etc.
API | Description |
---|---|
GET api/Quantities?productId={productId} |
Get quantities for a product |
Seatplan
The Seat Plan returns information about the layout and seats for a given product.
API | Description |
---|---|
GET api/Seatplan?productId={productId} |
Get seating plan for a product |
Session
All API operations involving baskets require a session Id. Getting data about performances, shows, etc should not require a session Id and return information as if you were a member of the public without a session id. If you do authenticate, e.g. by logging in as an account which has a membership, folders which are on sale to members only will be visible, and any prices returned will be the member prices.
API | Description |
---|---|
PUT api/Session |
If called without a sessionRequest object this will create a new placeholder session which is not logged in. Items can be added to the basket for this session, and then the user can log in later. If called with a sessionRequest and a SessionId in the headers, it will log in an existing session. |
DELETE api/Session |
Ends the current session |
User
The user should be the customer interacting with the site.
API | Description |
---|---|
PUT api/User |
Creates a new user |
GET api/User?userId={userId} |
Get the User details for the currently logged in session. If the UserId does not match the request session id, throws an error. |
UserStatuses
Get the user statuses for the currently logged in session. If the UserId does not match the request session id, throws an error.
API | Description |
---|---|
GET api/UserStatuses?userId={userId} |
No documentation available. |