Developer infrastructure for events

Build eventsinto your product.

APIs for registrations, tickets, Apple Wallet passes, check-in and webhooks.

Sample ticket for After Hours in Sydney

After Hours / Sydney

Admit one.

Maya Chen

07 Nov 2026 · 19:00

General admission

01 / The layer underneath

Your product.
Eventlayer underneath.

Build what your users see. We’ll handle the event infrastructure they don’t.

Your website or app

You build the experience

Registration

Your form. Your checkout.

Tickets

Your design. Your brand.

At the door

Your scanner. Your interface.

Your backend calls the API Results

Eventlayer

We keep the event state correct

Registrations

Events and attendee records

Ticket lifecycle

Issue, assign and cancel

Apple Wallet

Signed passes and updates

Check-in

One ticket, one admission

Webhooks send changes to your backend

Your stack

  • Email
  • CRM
  • Analytics
You build the customer-facing experience. Your backend calls Eventlayer for registrations, ticket lifecycle, Apple Wallet and check-in. Eventlayer sends changes through webhooks so your backend can update your email, CRM and analytics systems.

02 / Build with the API

From registration to ticket in a few calls.

Create an event, register an attendee, issue a ticket and add Wallet. Use the typed SDK from your backend.

Read the quickstart ↗
TypeScript / Your backendeventlayer

Create an event with its local start time and timezone.

create-event.ts
import { Eventlayer } from "eventlayer";

// Reads EVENTLAYER_KEY from your server environment.
const eventlayer = new Eventlayer();

const { data: event, error } = await eventlayer.events.create({
  name: "After Hours",
  startAt: { utc: "2026-11-07T08:00:00Z", timezone: "Australia/Sydney" },
});
if (error) throw error;
console.log(event.id);

An event and its default General Admission ticket type.

Set EVENTLAYER_KEY in your server environment.

Explore events

03 / The work behind the ticket

Tickets are easy.
Ticketing isn’t.

Creating a ticket is simple. Keeping tickets, Wallet passes, check-ins and the rest of your stack correct as things change is where it gets complicated.

The part you can see

tickets

id · attendee_id · status

Below the surface

Ticket stateConcurrencyPass signingPush updatesWebhook retriesTimezonesIdempotencyValidationDelivery history
You could build this infrastructure. Eventlayer means you don’t have to. Your application still deduplicates payments and webhook processing.

04 / Product primitives

Everything behind the event experience.

Six product primitives, connected through one API.

Tickets with a lifecycle, not just a database row. →

Ticket lifecycle · interactive illustration

available
assign
assigned
check in
checked in

From any existing ticket
↓ remove access

Cancelled / deleted

A registered Wallet device keeps a cancelled record so the pass can be invalidated. Otherwise, the ticket is deleted.

Select an operation to explore the ticket lifecycle.

One call to check them in. →

Two scanners. One admission. · illustrated race

Scanner A

POST /v1/tickets/tkt_123/check-in

Ready to scan the same ticket

Scanner B

POST /v1/tickets/tkt_123/check-in

Ready to scan the same ticket

Eventlayer ticket state → ASSIGNED

Your scanner. Eventlayer underneath.

Every event change, delivered to your stack. →
Example delivery · ticket.checked_in
  1. POST endpoint
  2. 503 unavailable
  3. Retry → 503
  4. Retry → 200 ✓
Attempt historyHTTP status + durationReplay after recovery

At-least-once delivery. Deduplicate by event ID in your consumer.

05 / In production

Built for the things that go wrong in production.

Duplicate scan

Two requests → one admission

A second scanner receives TICKET_ALREADY_CHECKED_IN.

Webhook retry

503 → retry → 200

Inspect attempts and replay a delivery after recovery.

Validation failure

422 · VALIDATION_FAILED

Field details and a request ID give you the next step.

Timezone handling

19:00 Sydney → 08:00 UTC

Keep the local event time and the instant it represents.

Works with your website and existing tools.

Connect your registration form to Eventlayer, offer Apple Wallet passes in your app, and use webhooks to update your CRM and email service. Follow the step-by-step integration guides in our docs.

Explore the integration guides

Eventlayer / Start building

Build the event. Skip the infrastructure.

Create an event and issue your first ticket through the API.