Storefront API
Event ticketing API
The whole engine, over REST
Create, update and delete events and tickets. Build carts and orders. Run your own checkout, or hand payment back to Eventcube with a redirect. 58 operations across 13 resources, one bearer token.
Getting started
Your store is the base URL
There is no tenant header and no store ID to thread through your code. Requests go to your store’s own public domain, and the API resolves the store from the hostname. Authenticate with the API key from the Eventcube admin.
curl https://your-store.eventcube.io/api/v1/events?only_listable=1 \ -H "Authorization: Bearer YOUR_API_KEY"Money in minor units
5000 means £50.00. Totals come back as strings, not numbers.
UTC always
Reads return a Unix timestamp; writes take Y-m-d H:i:s, no offset.
Bearer auth only
One header. No OAuth dance, no signed requests.
Hostname is the store
No X-Store-Id header — the base URL identifies the store.
The surface
Two halves that work independently
Sync a catalogue without touching checkout, or sell against events created in the Eventcube admin. Most integrations only need one half.
Inventory management
Everything that makes up the catalogue — promoters, venues, categories, artists, events, ticket types, discounts and scanner devices.
| GET | /events | List events, filterable to what's on sale |
| POST | /events | Create an event |
| GET | /events/{event}/tickets | Ticket types and live availability |
| POST | /events/{event}/tickets | Add a ticket type |
| GET | /promoters | List promoters — venues, categories and artists mirror this shape |
| POST | /discounts | Discount rules, with codes underneath |
| GET | /devices | Scanner and POS devices, with PINs |
Checkout integration
Carts, line items, discount codes and orders — enough to run a complete purchase flow inside your own interface.
| POST | /carts | Open a cart with ticket IDs and quantities |
| PATCH | /carts/{token} | Attach customer details and ticket holders |
| POST | /carts/{token}/items/{ticket_id} | Add or increment a line |
| DELETE | /carts/{token}/items/{ticket_id} | Remove a line |
| POST | /carts/{token}/discount-code | Apply a code |
| POST | /orders | Convert the cart into an order |
| GET | /order-ticket-items | Check whether a barcode is a valid order |
Payment
Own the checkout, or don’t
Redirect checkout
Create the cart, then send the buyer to the checkout_url it returns. Eventcube collects payment, issues tickets and emails confirmation. You never call POST /orders.
Least work, and card details never touch your infrastructure.
API checkout
Collect payment yourself and create the order with POST /orders, passing the cart_token. The response comes back with the issued ticket items.
Full control of the experience, and you own the payment relationship.
When things go wrong
| 400 | Validation failed, invalid ticket, or the cart already has an order |
| 401 | Missing, malformed or wrong bearer token |
| 409 | Not enough inventory left to satisfy the cart |
| 422 | Cart already converted, or inventory disappeared at order time |
FAQ
Questions engineers actually ask
Does Eventcube have a REST API?
Yes. The Storefront API is a JSON REST API covering 58 operations across 25 paths, grouped into 13 resources: promoters, venues, categories, artists, events, tickets, devices, discounts, carts, cart items, discount codes, orders and order ticket items. It is available on EC Pro.
How do I authenticate with the Eventcube API?
A single bearer token in the Authorization header, using the API key from the Eventcube admin. There is no OAuth flow and no request signing. There is also no store ID header — requests go to your store's own public domain and the API resolves the store from the hostname.
Does the API support webhooks?
No. Eventcube does not push outbound webhooks to your application. Order data is read from the API instead: poll GET /api/v1/orders, or fetch a single order by reference. If a buyer arrived through an enhanced embed, anything you passed as checkout_data comes back on the order as custom_data, so you can reconcile a sale to one of your users without matching on email.
Can I run my own checkout UI?
Yes. Create a cart with POST /api/v1/carts, attach the customer and ticket holders, then create the order with POST /api/v1/orders. Alternatively skip your own payment handling entirely and redirect the buyer to the checkout_url returned on the cart, and Eventcube collects payment.
How are prices and dates represented?
Money is in minor units, so 5000 means £50.00. Watch the two representations: ticket prices are numbers, while cart and order totals are strings — "total": "5300". Dates and times are always UTC, but the format differs by direction: reads return a Unix timestamp in seconds, writes take Y-m-d H:i:s with no offset. Inventory conflicts return 409, and a cart that has already been converted returns 422.
Are there published rate limits?
No per-endpoint rate limit is published for the Storefront API today. Don't design on the assumption of unlimited throughput — if you are planning a high-volume sync or a large on-sale, talk to us first and we will size it with you.
Something not answered here? Ask us directly — a technical advisor will answer, not a ticket queue.
EC Pro
API access is an EC Pro feature
Tell us what you’re building and a technical advisor will work through the architecture with you before you commit to anything.
Read the reference
Every endpoint, every field, every response shape — generated straight from the OpenAPI spec the API is built against.