Documentation /Reference

The public REST API

The booking form and the calendar read your events from four public endpoints. Anything else can read them too: a theme, a page builder's query loop, an app. They need no key, they only read, and they show what a visitor of the site may see. A closed or cancelled event, or one only visible to staff, is not in them.

Every response is wrapped the same way:

{ "success": true, "message": "", "data": { ... } }

Booking is not part of this. A booking goes through the booking form, which holds tickets, checks the captcha and takes the payment.

The events list

GET /wp-json/eventnetic/v1/public/events

Upcoming events, soonest first.

Parameter What it does
limit How many per page, 1 to 48. Default 9.
skip How many to skip, for the next page.
search Words in the title or the address.
categories[] Category slugs, as in the events shortcode.
from, to Only events with a date in this range, YYYY-MM-DD.
past 1 to include events that have already happened.
mode[] Only events held this way: venue, online, hybrid. mode[]=online&mode[]=hybrid is everything that can be attended online.

data.data is the list and data.meta holds total, skip and limit. Each event has:

Field
id, title, excerpt, image, url What it is called, its picture and its page
occurrences first, next and last date, each with startDate, endDate, startTime, endTime, and count
isFullDay No times to show
locationName, address The venue's name and its address
eventMode venue, online or hybrid
priceFrom The cheapest ticket this visitor may buy
remainingSlots, soldOut What is left on the emptiest date
categories Name, slug and colour of each

occurrences is a summary rather than a list, so you can ask for the next date by name instead of remembering which position means "next".

One event

GET /wp-json/eventnetic/v1/public/events/{id}

Everything the booking form needs: title, description, image, locationName, address, eventMode, bookingOpen and, when it is not, closedReason, tickets with their prices and what is left, paymentMethods, and dates, every date of the event as a list, each with startDate, startTime, endDate, endTime, title, locationName, remaining and whether it is canceled, past or closed.

A package is in tickets too, with kind: "package". coverageMode says which dates it is for: all for the whole series, fixed for the dates listed in coverageDates (ids from dates), and count for a pass of coverageCount dates the visitor picks (with 1, it is a bundle of tickets for one date). A page that lists runs of a course can show one row per package and open the booking form on it with package="…", see the shortcode reference.

The calendar

GET /wp-json/eventnetic/v1/public/events/calendar?start=2026-10-01&end=2026-10-31

One entry per date, not per event, between start and end (at most 62 days apart), optionally narrowed with categories[]. Each has eventId, title, sessionTitle, the dates and times, color, url, startPrice, soldOut, image, address and excerpt.

Categories

GET /wp-json/eventnetic/v1/public/events/categories

The categories that have something bookable in them, with name, slug and color.

In Bricks

An API query loop (Bricks 2.1 and later) reads nested values with the pipe character:

{query_api @key:'title'}
{query_api @key:'locationName'}
{query_api @key:'occurrences|next|startDate'}
{query_api @key:'occurrences|next|startTime'}
{query_api @key:'occurrences|count'}

For every date of one event, query the single-event endpoint, set the response path to dates, and use {query_api @key:'startDate'} inside the loop. Bricks does not run an API loop inside another, so that list belongs on the event's own page.

Signed-in visitors

The endpoints answer as the visitor who asks. A ticket sold only to some WordPress roles shows for a member when the request carries their login, which the booking form does by itself. A request from outside the browser is a guest, so the priceFrom it gets is the guests' price.

Everything you need to sell event tickets, in one WordPress plugin

Annual or one-time lifetime licence 14-day money-back guarantee Free version with no time limit