Update: 27 April 2026 for Release 229
Your CultureSuite CMS offers 3 Feeds for third parties to access your data:
- Stories: JSON feed of all visible stories on your website
- Events: JSON feed of all future visible events on your website
- AI: TXT feed of all future visible events and visible pages/stories with the box “include in AI feed” checked. This feed can be used to serve your data to any third party AI chat bot on your website.
It also features an API with several endpoints for:
- Productions & events
- Anonymised CRM & Ticket sales
- Full CRM & Ticket sales (coming soon)
About the RESTful API
The RESTful API endpoints allow access for anonymised analytics data. Access visitor information, ticket sales, and enriched statistical sector data (Belgium only).
- Example use cases:
- Spot which postcodes buy the most tickets and target your marketing accordingly.
- See which age groups prefer matinees versus evening shows.
- Compare your sales patterns against sector benchmarks.
The RESTful API offers endpoints for:
- Productions
- Events
- Halls
- Spaces
- Locations
- Genres
- Prices
- Event statuses
- Event images
- Anonymised visitors
- Organisations
- Mailing lists
- Opt-ins
- Tickets
- Orders
- Statistical Sector* of the visitor (BE only)
- Purchase links
Providing Access Keys to Third Parties
The benefits of these feeds and the API is you, as a venue, will be in control of who has access to your data.
Each party that wants access to your API, Events feed or Stories feed needs a secret Key. You can generate these keys yourself:
Go to System > API Access Keys to generate Keys yourself to share with all parties you want to give access.
- Select Add in the API Access Keys module

- The Access Keys screen will appear:

- Add the Name of the party that will use the key. It is advised to generate different keys for different parties, so you can see who has access, and you can change this for each party if needed.
- Key Type:
- For AI, Events or Stories feed select feed
- For API access select api platform
- Expiration: Option to add an expiration date if you want to provide access for a limited time only. Optional field.
- Access restricted resources:
- After saving the new key, you can manage access to restricted resources. This feature only applies to keys with the type “API platform” and can be used to block or grant access to sensitive data like your CRM API endpoints ( these endpoints will be released soon).
- To grant access, check the box “Access restricted resources” and select which resources you want to include from the select box. currently the only option is the /crm endpoints.
- Click save. This API key now has access to all API endpoints, including the /crm endpoints

Repeat this process for all parties that need access to your Events or Stories feeds or API.
Removing API Access
You can Retract a key once the party is no longer using your feed, or you do not want them to use your feed anymore by selecting the Delete icon.
If the secret key was forgotten or lost, use the Refresh icon to obtain a new key for a particular feed.

How to get the URL of a feed (JSON)
After creating and copying the new key for the feed, you can now generate previews of different feeds.
In the API Access Keys module, in the Test a Key and API section:
- Select one of the feed options to view it, enter the key you just copied and click Run test.

The URL of the feed can be copied from the browser window in which the feed is opened.
Copy the feed URL and send it together with the access key to any partner you want to give access to your feed.
- The Events (JSON) feed includes a lot of Production and Event data, including real time availability. It looks like this (when using a suitable JSON viewer):

- The Stories (JSON) feed includes all visible stories and pages
- The AI (TXT) feed includes a written summary of all events and a selection of stories with the option “Include in AI feed” checked in the Dashboard.
- The Meta stream, Meta and Google feeds can be used to import your events to these platforms for advertising.
Rate limits for the event & story feeds
events feed general: 3 calls every 60 seconds story feed general: 3 calls every 60 seconds single event: 3 calls every 60 seconds single story: 1 call every 1 second
How to make a request to a feed (JSON)
Endpoint
https://{site}/{language}/feed/events
https://{site}/{language}/feed/ai
https://{site}/{language}/feed/stories
https://{site}/{language}/feed/stories/[storyID] (By adding the storyID a detailled feed of all relevant content and media of that story is provided)
{language} is optional, and must be two chars like: nl, de, en, fr, gb, etc (ISO country codes two-letter code (alpha-2)).
Language
- Adding language to the url will change the return language for the whole feed.
- If no language is provided the default one will be used, which generally is dutch.
- If an nonexistent language is provided, a 404 page will be shown.
Methods
POST
GET
Authorization
Must be in the header or as a GET parameter
Key: apikey
Value: {generated_dashboard_key}
Make sure to add a user-agent to all your outgoing requests
Body
Must be form-data but they can also be passed as GET parameters
startDate: (optional, YYYY-MM-DD):
endDate: (optional, YYYY-MM-DD):
productionCode (optional string): the production code or empty (for Events)
type (optional string): the story type (for Stories)
Response
SUCCESS
Content-Type: application/json
JSON containing a list of events or stories
FAILURE
Response on Wrong/Empty/Invalid API Key
{
http_code: 403,
status: "Forbidden",
}Response when parameter past is provided but not startDate
{
http_code: 400,
status: "When parameter 'past' is provided, the parameter 'startDate' must also be provided.",
}Any other error:
{
http_code: 500,
status: "{error_message}",
}Image URL’s
In the request you set (via the headers) if you prefer JPG or WEBP. Your browser will probably set WEBP. Using it as a developer you should be able to set it in your code.
If the Accepts: header does not specifically mention WEBP, the proxy will serve a JPG by default.
How to get the URL of the API
The API can be found on your own web domain, followed by /api/docs
For example if your domain is www.thebestvenue.com, the API URL can be found at www.thebestvenue.com/api/docs
Send this URL and the API access key to any partner that needs it.
If you need detailed swagger documentation, please request a test website environment. this documentation is not available on live website environments
Make sure to add a user-agent to all your outgoing requests
Extra information you need to send to a third party
If the third party uses your feed via the POST-method
All you have to do is send
- the URL of the feed (you can copy that url from the "run test" preview window),
- The Key you generated,
- and the documentation (see below)
to the party that will need it.
If the third party uses your feed via the GET-method
Send the URL of the feed, and place the api-key you generated in the URL directly.
- For the JSON feed it should look like this (this is a fictional example): https://www.theater.nl/nl/feed/events?apikey=123abc456. (Instead of 123abc456 you should enter the api key.)
If the third party uses your REST API endpoints
All you have to do is send
- the URL of the API,
- And the Key you generated
How to make a request to the XML/CSV SEA Feeds (Google, Meta)
Endpoints
Endpoint | Authorization | Method | Rate Limiting |
https://{site}/feed/facebook | Yes | POST / GET | Yes (5req/60sec) |
https://{site}/feed/facebook/stream | Yes | POST / GET | Yes (5req/60sec) |
https://{site}/feed/google | Yes | POST / GET | Yes (5req/60sec) |
Methods
POST
GET
Authorization
Must be in the header or as a GET parameter
Key: apikey
Value: {generated_dashboard_key}
Response
SUCCESS
Content-Type: application/xml
XML containing a list of event
FAILURE
Response on Wrong/Empty/Invalid API Key
<?xml version="1.0"?>
<result>
<http_code>403</http_code>
<status>Forbidden</status>
</result>Any other error:
<?xml version="1.0"?>
<result>
<http_code>500</http_code>
<status>{error_message}</status>
</result>Related articles