Public API

API reference

Eventee Public API

Introduction

Manage your event's program, speakers, partners, attendees and registrations from your own systems.

The Eventee public API lets you push content into your event (sessions, breaks, halls, speakers, labels and partners), manage attendees and registrations, and read back the program, groups and session reviews - the same data you manage in the Eventee admin.

Conventions

  • Requests and responses are JSON. Send Content-Type: application/json and Accept: application/json headers.
  • All endpoints are scoped to a single event by the API token (see Authentication).
  • IDs (hall_id, speakers, tracks, group_id, ...) refer to objects of the same event. You get them from the create endpoints or from Get event content, List groups and List participants.
  • Dates and times use the Y-m-d H:i:s format (for example 2024-06-01 09:00:00) and are in the event's time zone. The same format is used in responses.
  • Send booleans as JSON true/false and numbers as JSON numbers, not as strings.
  • Update endpoints accept both PUT and PATCH and behave the same way. Read each endpoint's description to see whether omitted fields are kept or reset.
  • Successful deletions return 204 No Content with an empty body.
  • The API is rate limited to 200 requests per minute. Exceeding the limit returns 400 {"error": "Something went wrong. Try again later."}.

Rate limit headers

Every response includes two headers that show how much of the rate limit you have left:

Header Description
X-RateLimit-Limit Requests allowed per minute (200).
X-RateLimit-Remaining Requests left in the current window.
HTTP/1.1 200 OK
X-RateLimit-Limit: 200
X-RateLimit-Remaining: 187

The window starts with your first request and resets 60 seconds later. Once X-RateLimit-Remaining reaches 0, requests fail with 400 {"error": "Something went wrong. Try again later."} until the window resets, so wait up to a minute before retrying. For bulk operations, check X-RateLimit-Remaining after each request and pause when it gets low instead of retrying failed requests in a loop.

Errors

Errors are returned as JSON with a matching HTTP status code:

Status Body When
400 {"error": "token_missing"} The Authorization header is missing.
401 {"error": "token_invalid"} The token is unknown or has been regenerated.
403 {"not_authorized": "You are not authorized to do this step."} The object you address (by ID in the URL) does not belong to your event.
403 {"error": "<reason>"} The feature is not available in your event's plan (for example cannot_create_partner).
404 {"message": "No query results for model [...] <id>"} No object with that ID exists.
404 {"error": "<reason>"} A referenced object could not be found (for example no_date_for_datetime when a session's start is outside the event's days).
422 {"message": "...", "errors": {"field": ["..."]}} Validation failed. errors lists the problems per field.

Authenticating requests

To authenticate requests, include an Authorization header with the value "Bearer {YOUR_API_TOKEN}".

All authenticated endpoints are marked with a requires authentication badge in the documentation below.

Every event has its own API token. Generate it in the Eventee admin in the settings of the event (API access is part of selected plans). Generating a new token invalidates the previous one.

Send the token in the Authorization header of every request:

Authorization: Bearer {YOUR_API_TOKEN}

The token identifies the event, so you never pass an event ID - all endpoints operate on the event the token belongs to. Anyone with the token can read and modify that event, so keep it secret.

Requests without a token are rejected with 400 {"error": "token_missing"}, requests with an unknown or revoked token with 401 {"error": "token_invalid"}.

Event content

Read the whole program of your event in one call: halls, days, sessions, workshops, breaks, speakers and labels. Also lets you wipe content created while testing an integration.

Event content

Get event content

GET /public/api/v1/content Auth

Returns the complete program of the event: halls, days, lectures (sessions of type 0), workshops (sessions of type 1), pauses (breaks), speakers and tracks (labels). Use it to read back IDs or to mirror the agenda in another system.

Headers

Authorization
Example: Bearer {YOUR_API_TOKEN}
Content-Type
Example: application/json
Accept
Example: application/json

Query Parameters

date string

Only return the program of this day (Y-m-d). Days without content return empty lists.

Example: 2024-06-01
with_overlapping boolean

Also include event days that have no content yet in days.

Example: false

Event content

Delete all program content

DELETE /public/api/v1/test/content Auth

Irreversible. Deletes all sessions, breaks, halls, speakers and labels of the event at once. Intended for cleaning up after testing an integration before the real import. Partners, attendees, registrations and groups are not affected.

Headers

Authorization
Example: Bearer {YOUR_API_TOKEN}
Content-Type
Example: application/json
Accept
Example: application/json

Halls

Halls are the places (rooms, stages, or virtual spaces) where sessions take place. A session is placed in a hall through its hall_id.

Halls

Create hall

POST /public/api/v1/hall Auth

Creates a hall in the event. Use the returned id as hall_id when creating sessions.

Headers

Authorization
Example: Bearer {YOUR_API_TOKEN}
Content-Type
Example: application/json
Accept
Example: application/json

Body Parameters

Halls

Update hall

PATCH PUT /public/api/v1/hall/{hall_id} Auth

Updates a hall. name is required; order is kept when omitted. The live stream is removed when stream is omitted.

Headers

Authorization
Example: Bearer {YOUR_API_TOKEN}
Content-Type
Example: application/json
Accept
Example: application/json

URL Parameters

hall_id integer required

ID of the hall.

Example: 1

Body Parameters

Halls

Delete hall

DELETE /public/api/v1/hall/{hall_id} Auth

Deletes a hall. Sessions placed in the hall are kept, but no longer have a hall.

Headers

Authorization
Example: Bearer {YOUR_API_TOKEN}
Content-Type
Example: application/json
Accept
Example: application/json

URL Parameters

hall_id integer required

ID of the hall.

Example: 1

Sessions

Sessions are the items of your program. A session is either a lecture (type 0) or a workshop (type 1). Workshops have a limited capacity that attendees can book. Speakers, labels and a hall are attached to a session by their IDs.

Sessions

Create session

POST /public/api/v1/lecture Auth

Creates a lecture or a workshop. The session is placed on the event day matching start; the day is created when it does not exist yet. Speakers, labels and the hall must already exist - create them first and pass their IDs.

Headers

Authorization
Example: Bearer {YOUR_API_TOKEN}
Content-Type
Example: application/json
Accept
Example: application/json

Body Parameters

Sessions

Update session

PATCH PUT /public/api/v1/lecture/{lecture_id} Auth

Replaces a session. This is a full update: name, start and end are required and omitted speakers, tracks, capacity and type are reset (see the individual fields). The hall and live stream are kept when omitted.

Headers

Authorization
Example: Bearer {YOUR_API_TOKEN}
Content-Type
Example: application/json
Accept
Example: application/json

URL Parameters

lecture_id integer required

ID of the session.

Example: 1

Body Parameters

Sessions

Delete session

DELETE /public/api/v1/lecture/{lecture_id} Auth

Deletes a session (lecture or workshop) including its questions, polls, bookings and ratings.

Headers

Authorization
Example: Bearer {YOUR_API_TOKEN}
Content-Type
Example: application/json
Accept
Example: application/json

URL Parameters

lecture_id integer required

ID of the session.

Example: 1

Breaks

Breaks are slots in the agenda without a session, such as coffee breaks, lunch or registration. They only have a name, a description and a time range.

Breaks

Create break

POST /public/api/v1/pause Auth

Creates a break on the event day matching start; the day is created when it does not exist yet.

Headers

Authorization
Example: Bearer {YOUR_API_TOKEN}
Content-Type
Example: application/json
Accept
Example: application/json

Body Parameters

Breaks

Update break

PATCH PUT /public/api/v1/pause/{pause_id} Auth

Updates a break. name, start and end are required; description is kept when omitted.

Headers

Authorization
Example: Bearer {YOUR_API_TOKEN}
Content-Type
Example: application/json
Accept
Example: application/json

URL Parameters

pause_id integer required

ID of the break.

Example: 1

Body Parameters

Breaks

Delete break

DELETE /public/api/v1/pause/{pause_id} Auth

Deletes a break from the agenda.

Headers

Authorization
Example: Bearer {YOUR_API_TOKEN}
Content-Type
Example: application/json
Accept
Example: application/json

URL Parameters

pause_id integer required

ID of the break.

Example: 1

Speakers

Speakers presenting at your event. Once created, attach a speaker to sessions through the session's speakers field.

Speakers

Create speaker

POST /public/api/v1/speaker Auth

Creates a speaker profile in the event. Use the returned id in the speakers field of sessions.

Headers

Authorization
Example: Bearer {YOUR_API_TOKEN}
Content-Type
Example: application/json
Accept
Example: application/json

Body Parameters

Speakers

Update speaker

PATCH PUT /public/api/v1/speaker/{speakerTmp_id} Auth

Partially updates a speaker: only the fields you send are changed, all others are kept.

Headers

Authorization
Example: Bearer {YOUR_API_TOKEN}
Content-Type
Example: application/json
Accept
Example: application/json

URL Parameters

speakerTmp_id integer required

ID of the speaker.

Example: 1

Body Parameters

Speakers

Delete speaker

DELETE /public/api/v1/speaker/{speakerTmp_id} Auth

Deletes a speaker and removes them from all sessions.

Headers

Authorization
Example: Bearer {YOUR_API_TOKEN}
Content-Type
Example: application/json
Accept
Example: application/json

URL Parameters

speakerTmp_id integer required

ID of the speaker.

Example: 1

Labels

Labels are colored tags used to categorize sessions (for example by track or topic). Attach labels to a session through the session's tracks field.

Labels

Create label

POST /public/api/v1/label Auth

Creates a label. Use the returned id in the tracks field of sessions.

Headers

Authorization
Example: Bearer {YOUR_API_TOKEN}
Content-Type
Example: application/json
Accept
Example: application/json

Body Parameters

Labels

Update label

PATCH PUT /public/api/v1/label/{track_id} Auth

Updates a label. name and color are required; order is kept when omitted.

Headers

Authorization
Example: Bearer {YOUR_API_TOKEN}
Content-Type
Example: application/json
Accept
Example: application/json

URL Parameters

track_id integer required

ID of the label.

Example: 1

Body Parameters

Labels

Delete label

DELETE /public/api/v1/label/{track_id} Auth

Deletes a label and removes it from all sessions.

Headers

Authorization
Example: Bearer {YOUR_API_TOKEN}
Content-Type
Example: application/json
Accept
Example: application/json

URL Parameters

track_id integer required

ID of the label.

Example: 1

Partners

Partners are the companies presented at your event. A partner with a logo_url is listed as a sponsor, a partner with a photo_url is listed as an exhibitor (with an optional booth number). A partner can be both. Each partner has a detail page composed of sections (text, links, images, files, social links).

Partners

Create partner

POST /public/api/v1/partner Auth

Creates a partner. Provide logo_url to list it as a sponsor, photo_url (with booth_number) to list it as an exhibitor, or both. At least one of the two images is required. Sections of the detail page are managed separately with Update partner sections.

Headers

Authorization
Example: Bearer {YOUR_API_TOKEN}
Content-Type
Example: application/json
Accept
Example: application/json

Body Parameters

Partners

Update partner

PATCH PUT /public/api/v1/partner/{partner_id} Auth

Replaces a partner's details. This is a full update: text fields that are omitted are cleared, and omitting logo_url removes the sponsor listing, omitting photo_url removes the exhibitor listing. Sections are not touched.

Headers

Authorization
Example: Bearer {YOUR_API_TOKEN}
Content-Type
Example: application/json
Accept
Example: application/json

URL Parameters

partner_id integer required

ID of the partner.

Example: 1

Body Parameters

Partners

Update partner sections

PATCH PUT /public/api/v1/partner/{partner_id}/sections Auth

Replaces the sections of the partner's detail page. The order of the array is the display order. Existing sections are kept only when their id is included - sections not listed are deleted, entries without id are created. Send an empty sections array to remove all sections. Each section has a type and only the fields relevant to that type are used.

Headers

Authorization
Example: Bearer {YOUR_API_TOKEN}
Content-Type
Example: application/json
Accept
Example: application/json

URL Parameters

partner_id integer required

ID of the partner.

Example: 1

Body Parameters

Partners

List partners

GET /public/api/v1/partners Auth

Returns all partners of the event with their sponsor/exhibitor details and sections.

Headers

Authorization
Example: Bearer {YOUR_API_TOKEN}
Content-Type
Example: application/json
Accept
Example: application/json

Partners

Delete partner

DELETE /public/api/v1/partner/{partner_id} Auth

Deletes a partner including its sections.

Headers

Authorization
Example: Bearer {YOUR_API_TOKEN}
Content-Type
Example: application/json
Accept
Example: application/json

URL Parameters

partner_id integer required

ID of the partner.

Example: 1

Attendees

People taking part in your event. Invite attendees by email (optionally with their profile details, group and tickets), list them, check them in at the venue, or remove them from the event.

Attendees

Invite attendees

PUT /public/api/v1/attendee/invite Auth

Adds people to the event as attendees. People who already have an Eventee account are added directly, others get a profile that is linked once they sign up with the same email. Set send_email to send them an invitation email. The first 25 entries are processed immediately, the rest in the background. Entries that fail validation and people who are admins or moderators of the event are skipped silently.

Headers

Authorization
Example: Bearer {YOUR_API_TOKEN}
Content-Type
Example: application/json
Accept
Example: application/json

Body Parameters

Attendees

Check in attendee

PATCH PUT /public/api/v1/attendee/{attendee_id}/checkin Auth

Marks an attendee as checked in at the event (sets checked_at to now) or reverts the check-in. Use the id from List participants.

Headers

Authorization
Example: Bearer {YOUR_API_TOKEN}
Content-Type
Example: application/json
Accept
Example: application/json

URL Parameters

attendee_id integer required

ID of the attendee (the id from List participants).

Example: 7

Body Parameters

Attendees

List participants

GET /public/api/v1/participants Auth

Returns all participants of the event with their role, group, tickets and check-in time. role is a = admin, m = moderator, l = speaker, e = attendee. url is the participant's personal link (used for their QR code), checked_at is null until the participant is checked in. email is not always a valid address: anonymous participants and deleted accounts carry a placeholder that contains no @ and cannot be contacted.

Headers

Authorization
Example: Bearer {YOUR_API_TOKEN}
Content-Type
Example: application/json
Accept
Example: application/json

Attendees

Remove attendee

DELETE /public/api/v1/attendee Auth

Removes the person with the given email from the event: their participation, invitation and tickets for this event are deleted. Their Eventee account is not affected. Succeeds even when no attendee with that email exists.

Headers

Authorization
Example: Bearer {YOUR_API_TOKEN}
Content-Type
Example: application/json
Accept
Example: application/json

Query Parameters

email string required

URL-encoded email address of the attendee.

Example: john.smith%40example.com

Registrations

Registrations are sign-ups collected through your event's registration. Use these endpoints to pre-register people from another system, list them, or remove a registration.

Registrations

Create registrations

PUT /public/api/v1/registration/invite Auth

Pre-registers people for the event. An existing registration with the same email is updated instead of duplicated. Set send_email to notify the person by email. The first 25 entries are processed immediately, the rest in the background. Entries that fail validation are skipped silently.

Headers

Authorization
Example: Bearer {YOUR_API_TOKEN}
Content-Type
Example: application/json
Accept
Example: application/json

Body Parameters

Registrations

List registrations

GET /public/api/v1/registrations Auth

Returns all registrations of the event. status is 0 = pending, 1 = confirmed (attending), 2 = declined.

Headers

Authorization
Example: Bearer {YOUR_API_TOKEN}
Content-Type
Example: application/json
Accept
Example: application/json

Registrations

Remove registration

DELETE /public/api/v1/registration Auth

Deletes the registration with the given email address. Succeeds even when no such registration exists.

Headers

Authorization
Example: Bearer {YOUR_API_TOKEN}
Content-Type
Example: application/json
Accept
Example: application/json

Query Parameters

email string required

URL-encoded email address of the registration.

Example: john.smith%40example.com

Groups

Attendee groups let you tailor the agenda and app features to different audiences (for example VIP guests or staff). Use a group's id as group_id when inviting attendees or registrations.

Groups

List groups

GET /public/api/v1/groups Auth

Returns the attendee groups of the event. The boolean fields tell which app features are enabled for the group, ticket_names lists the ticket names that put attendees into the group automatically, is_default marks the group new attendees join by default.

Headers

Authorization
Example: Bearer {YOUR_API_TOKEN}
Content-Type
Example: application/json
Accept
Example: application/json

Reviews

Session ratings left by attendees in the app: 1 to 5 stars with an optional comment.

Reviews

List reviews

GET /public/api/v1/reviews Auth

Returns all session ratings of the event. Each review includes the rated session as lecture and the reviewer's name and photo.

Headers

Authorization
Example: Bearer {YOUR_API_TOKEN}
Content-Type
Example: application/json
Accept
Example: application/json