/v1 · REST
Build on the rails
we sell on.
REST API, bearer-token auth, signed webhooks. JSON in and out, amounts in integer cents (ZAR), ISO-8601 timestamps with offset.
- No booking fees for buyers
- Paid 2 working days after each sale
- Secure card payments
- Full card numbers never reach us
- Guest checkout, no account needed
- Tickets held 30 minutes at checkout
- Refunds under SA consumer law
- Privacy tools in your account
- Built in South Africa
Endpoints · /v1
The full surface, no waitlist.
Every endpoint below is on any token with the scope in brackets. No tiers, no waitlist. Creating or editing events is not in the API: it is read-only for events, and a token covers one organisation.
Authentication
curl https://eventu.co.za/v1/events \ -H "Authorization: Bearer evu_live_…" \ -H "Accept: application/json"
Tokens are scoped to a single organisation and to the scopes you pick. Create and revoke them from the dashboard.
Rate limits
Counted per token, per minute. You choose the limit when you create the token. Every response carries X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset (unix seconds).
Webhook events
order.paid order.expired order.refunded ticket.checked_in event.published campaign.completed payout.reconciled resale.listed resale.sold
resale.listed and resale.sold do not fire while resale is switched off. Each delivery is signed with HMAC-SHA256 over the timestamp and the body, sent as X-Evu-Signature: t=<unix>,v1=<hex>. Check the timestamp is recent (five minutes is a good limit). X-Evu-Delivery is the same on every retry of a delivery, so you can ignore a repeat. A failed delivery is retried up to 8 times over about 11 days, and a subscription is switched off after 20 failures in a row.
Examples · /v1
Three lines, every language.
Same request, three runtimes. Same auth header, same response shape. Bearer token in the header, JSON out, ISO-8601 timestamps, integer cents. Plain HTTP, so no library is needed.
curl https://eventu.co.za/v1/events \
-H "Authorization: Bearer evu_live_…" \
-H "Accept: application/json"{
"data": [
{
"id": "3f6c0b1e-8a52-4c1d-9b7e-2d5a41c0f7a9",
"slug": "friday-night-live",
"title": "Friday Night Live",
"status": "on_sale",
"start_at": "2026-03-14T17:00:00+00:00",
"end_at": "2026-03-14T22:00:00+00:00",
"timezone": "Africa/Johannesburg",
"visibility": "public",
"capacity": 400,
"published_at": "2026-02-01T08:30:00+00:00",
"created_at": "2026-01-20T09:12:00+00:00",
"updated_at": "2026-02-01T08:30:00+00:00"
}
],
"pagination": { "limit": 20, "offset": 0, "total": 1 }
}Build on EventU