Getting started
Make your first request to the Plek API in five minutes, with a test key or an API key of your organisation.
Plek is booking software for organisations that run classes, courses, workshops and venue hire. Everything the admin app and the booking site do goes through one REST API at https://api.plekbooking.com, and that API is open to you.
Which API do you need?
| You want to… | Use | Authentication |
|---|---|---|
| Sync bookings to a CRM, export customers, create sessions from your planning tool | Staff API /api/org/{organisation_id}/… |
An API key of the organisation |
| Show the agenda on your own website, build your own booking flow | Public booking API /api/public/{org_slug}/… |
None |
| Build an app where customers see and manage their own bookings | Customer API /api/customer/{org_slug}/… |
The customer's own sign-in |
| React the moment something happens | Webhooks | Signed with a secret |
| Put the booking flow on a website without code | Widgets | None |
| Ask questions about your planning in Claude or ChatGPT | The MCP server | Your own staff sign-in |
1. Get a key
To try things out, staff of an organisation on Plek get a test key in one click: Get a test key. Sign in to the admin app, pick the organisation and read-only or read and write. The key does no more than your own role allows, stops working after an hour, and stays in this browser tab. The API reference fills it in for you, so every "Test request" button works right away.
For an integration, an Admin creates an API key in the admin app under Settings > API & webhooks. Give the key a role with only what it needs, for example a role that can only read bookings. The key is shown once; Plek keeps only a hash of it. See Authentication.
2. Find your organisation id
Staff routes start with /api/org/{organisation_id}. A test key brings its organisation id along. Otherwise ask for it with any staff route the key may read, or look it up in the admin app's address bar after you sign in.
3. Make a request
List the sessions of the coming week:
curl "https://api.plekbooking.com/api/org/$ORGANISATION_ID/sessions?startDate=2026-11-02&endDate=2026-11-08" \
-H "X-Api-Key: $PLEK_API_KEY"
{
"sessions": [
{
"id": "6f0d1c4e-…",
"activityId": "1b9e7f2a-…",
"startTime": "2026-11-02T17:30:00+00:00",
"endTime": "2026-11-02T18:30:00+00:00",
"capacity": 12,
"bookedCount": 9,
"availableSpots": 3,
"price": { "amount": 1500, "currency": "EUR", "formatted": "€15.00" },
"status": "scheduled"
}
],
"pagination": { "total": 14, "per_page": 20, "current_page": 1, "total_pages": 1, "has_more": false }
}
Amounts are integers in cents with their currency: 1500 EUR is €15.00. Read Conventions before you build on the responses.
The public booking API needs no key at all:
curl "https://api.plekbooking.com/api/public/demo/activities"
4. Go further
- The booking flow: from the agenda to a paid booking.
- Webhooks: get
booking.confirmedinstead of polling. - Rate limits: the budgets and the headers that tell you where you stand.
- The OpenAPI document itself, to generate a client in your language.