Eventlayer / Check-in API

One call to check them in.
No race condition at the door.

Build any scanning experience you want. Eventlayer performs the ticket transition and gives your app a result it can trust.

Correctness at the door

Two scanners. One admission.

Both devices can see an assigned ticket. Only one request can complete its first check-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.

checked_in

200 · Admit the guest.

already_checked_in

409 · TICKET_ALREADY_CHECKED_IN

unavailable

409 · FAILED_PRECONDITION

invalid_ticket

404 · NOT_FOUND

Example scanner labels mapped to API responses. Unavailable includes cancelled or unassigned tickets and inactive ticket types.

Show the API

The call that records admission.

Run check-in on your backend after authorizing staff and confirming the ticket belongs at this door. Only a successful response admits the guest; duplicate and unknown results need their own scanner states.

Build a check-in tool

TypeScript · server-side excerpt

// Server excerpt, after staff and door authorization.
try {
  const { data, error } = await eventlayer.tickets.checkIn({
    ticketId: ticket.id,
  });
  if (error) {
    // Return a non-admission result to your scanner.
    return { admitted: false, code: error.code };
  }
  return { admitted: true, ticket: data };
} catch {
  // A lost response does not tell you who was admitted.
  return { admitted: false, code: "RESULT_UNKNOWN" };
}

Your scanner. Eventlayer underneath.

Keep the door experience yours.

Your application

Authenticate staff, read the barcode and confirm the event and access type. Show an answer the person at the door can act on.

Eventlayer

Validate the ticket state and active type, record one check-in and emit the ticket change. If the response is lost, your scanner shows an unknown result for staff to reconcile.

Your product. Eventlayer underneath.

Build the scanner. We’ll keep the state correct.

Connect your scanner to the API. Keep staff access, door rules and the interface in your application.

Start building

Free during private beta. No credit card.