API & Integrations
This section is for developers who want to integrate VoordeMensen into their own website, mobile app, or backoffice system.
There are three levels of integration, from easiest to most flexible:
| Level | Best for | See |
|---|---|---|
| WordPress plugin | WordPress sites — drop it in, done | WordPress plugin |
| Manual integration | Any site — load a JavaScript snippet, pop-up or side-loader | Manual integration |
| Public API | Build your own ticketing flow from scratch | Public endpoints |
| Peppered API | Backoffice / vendor integrations with authenticated access | Peppered endpoints |
API base URL
All API calls are served from:
https://api.voordemensen.nl/v1/
Every endpoint includes your client name (short organisation identifier) in the path, for example demo or fringe:
https://api.voordemensen.nl/v1/demo/events
https://api.voordemensen.nl/v1/demo/tickettypes/95
Authentication
| Endpoint group | Authentication |
|---|---|
| Public (Events, Ticket types, Cart, Order) | None — open for all clients |
| Peppered (Customer, Cart, Orders, Hall, Seating, Exports) | API key via Authorization header — raw value, no prefix |
For Peppered endpoints, pass the key directly:
Authorization: <your-api-key>
Basic auth (Authorization: Basic <base64(key:)>) is also supported. See Peppered → Authentication for details.
Request an API key from support. See API keys (Dashboard) for how they are managed per organisation.
Typical ticketing flow (public API)
The standard workflow to sell tickets via the public API:
- Fetch available events:
GET /v1/:client/events - For the chosen sub-event, fetch available ticket types:
GET /v1/:client/tickettypes/:event_id - Create a shopping cart:
POST /v1/:client/cart/ - Add seats to the cart:
POST /v1/:client/cart/:cart_id - Get available payment methods and create the order:
POST /v1/:client/order/create - Redirect the user to the payment provider URL you receive.
- After payment, check status:
GET /v1/:client/order/:order_key.
See Public endpoints for each step in detail.
Data privacy
Public endpoints deliberately hide sensitive information such as real capacity or number of tickets sold. The event_free field always returns the maximum number of tickets allowed per order (taking reserved offline capacity into account), never actual sales.
Authenticated Peppered endpoints expose more detail for trusted partners.
Rate limits & best practices
- Be respectful: cache responses where possible (event lists, payment methods).
- Do not poll the cart more than once per user action.
- Always pass the full
client_namein the URL — there is no default. - Use HTTPS (redirects use HTTPS only).
Reporting
Integrations that need aggregate data for BI tools should use the Peppered export endpoints. For internal reporting we use Metabase (see Metabase).
See also: Manual integration · Public endpoints · Peppered endpoints