event67
Open menu

Build on event67

Three ways in and out of an event: read it through the Partner API, get told when it changes over signed webhooks, and pull a partner's records into it with no code. This is the narrative documentation; the endpoint reference is generated from the server itself.

What you can build

Everything here is scoped to one organization. A key you create belongs to your organization, reaches only your events, and cannot see anybody else's data.

Pull, with the Partner API

A read-mostly REST API at https://api.event67.com/partner/v1. It serves events, sessions, tracks, rooms, speakers, sponsors and published info sections; attendees, with create and update; and the engagement record, meaning check-ins, session attendance, form submissions and feedback. Typical uses are a nightly sync into a CRM, a badge printer that reads the attendee list, or a reporting job that pulls check-ins the morning after.

Push, with webhooks

Register an HTTPS endpoint and event67 signs and POSTs a small JSON body every time something happens: an attendee is created, updated or checked in, a session moves, a form is submitted, feedback arrives. Deliveries are retried for a day and logged for thirty. Use this instead of polling when you want to react in near real time.

Import, with data sources

Point event67 at a partner's JSON API, look at what comes back, map its fields onto attendees or sessions in a form, and let it run on a schedule. No code and no deployment on your side. This is the path for a registration platform or a ticketing tool that has an API but no integration with us.

Who can use it

Two conditions, and the API checks both on every request.

  • You are an admin of the organization. Keys, webhook endpoints and data sources are created in the organizer console by an org admin. There is no self-service developer signup separate from your event67 account.
  • The organization is on a paid plan. That means a card on file or an active annual plan. The free event allowance does not unlock integrations: it covers running an event, not automating one.

Adding a card does not charge you anything. event67 bills per activated attendee, so a card on file with no activated attendees is a bill of nothing. If integrations are locked, every screen still works and you can read and clean up whatever you already have; only creating, running and calling are refused, with 402 PAYMENT_REQUIRED.

If your organization is suspended or closed, integrations are blocked for a different reason and the fix is not a card. The refusal carries details.reason so you can tell the two apart. Authentication lists every reason and what it means.

Quick start

Five minutes, assuming you are already an admin of a paid organization.

1. Create a key

In the console, open Integrations then API keys, and create one. Give it a name you will recognise in six months and only the scopes it needs. The full key is shown once, on the screen that creates it, and is never retrievable afterwards. Store it in your secret manager before you close the dialog.

2. Check the key works

GET /me needs no scope and answers with the organization the key belongs to. It is the cheapest way to prove a key, a header and a base URL are all correct.

curl -s https://api.event67.com/partner/v1/me \
  -H "Authorization: Bearer e67_live_7Kq2Yb3dR1sVpN8xL4mZ0aC6tE5wJ9uH"
{
  "data": {
    "org": { "id": "0f9c41d2-6b1e-4a37-9d55-2c8ab0e71f34", "name": "Northwind Events" },
    "key": {
      "id": "3a77c1b8-52ee-4f0d-8c19-9b4d6e2af013",
      "name": "Registration sync",
      "prefix": "e67_live_7Kq2Yb3d",
      "scopes": ["events:read", "attendees:read", "attendees:write"],
      "expiresAt": null
    }
  }
}

3. Find your event

Every other path hangs off an event id. List them, or filter to the published ones.

curl -s "https://api.event67.com/partner/v1/events?status=published&limit=25" \
  -H "Authorization: Bearer $E67_KEY"
{
  "data": [
    {
      "id": "8d2f0a16-4e93-4b28-b0c7-1f5e9a3d6c40",
      "slug": "northwind-summit-2026",
      "name": "Northwind Summit 2026",
      "description": "Two days on supply chains, in New York.",
      "status": "published",
      "startAt": "2026-10-29T15:00:00.000Z",
      "endAt": "2026-10-30T23:00:00.000Z",
      "timezone": "America/New_York",
      "location": "Javits Center, New York",
      "createdAt": "2026-06-02T09:14:22.117Z",
      "updatedAt": "2026-09-01T11:40:03.882Z"
    }
  ],
  "meta": { "nextCursor": null }
}

4. Page through the attendees

Lists are cursor paginated. Ask for up to 200 at a time and followmeta.nextCursor until it comes back null. Do not build your own cursors: they are opaque and their contents will change.

curl -s "https://api.event67.com/partner/v1/events/$EVENT_ID/attendees?limit=200" \
  -H "Authorization: Bearer $E67_KEY"

# Then follow meta.nextCursor until it comes back null.
curl -s "https://api.event67.com/partner/v1/events/$EVENT_ID/attendees?limit=200&cursor=$CURSOR" \
  -H "Authorization: Bearer $E67_KEY"

5. Get told when something changes

Back in the console, open Webhooks, add your HTTPS endpoint, choose the event types you care about and copy the signing secret, which is also shown once. Send the test ping, then verify the signature before you trust a body.

The endpoint reference

The per-endpoint reference is not on this site. It is served by the API, generated from the same schemas that validate incoming requests, so it cannot describe a parameter the server does not accept.

A snapshot of that document is committed to the event67 repository and a test fails the build if the running server and the snapshot disagree, or if the spec version moved without achangelog entry in the same commit.

Limits at a glance

LimitValue
Requests600 a minute, per key
Page size1 to 200 records, 50 by default
API keys100 active keys per organization
Webhook endpoints20 per organization
Webhook attempts7 over 24 hours, then the delivery is exhausted
Delivery log30 days
Data-source run5,000 records or 60 seconds, whichever comes first
Data-source fetch20 seconds and 5 MB per request, JSON only

The rest of these docs

  • Authentication — API keys, scopes, the two ways to send a key, and what each refusal means.
  • API conventions — Versioning, the response envelope, pagination, errors, rate limits and every endpoint.
  • Webhooks — The event catalogue, signature verification, retries and the delivery log.
  • Data sources — Pull a partner JSON API into your event with no code: connect, preview, map, schedule.
  • Changelog — Every change to the Partner API, dated, and marked additive or breaking.

Keys and endpoints are managed in the console at https://admin.event67.com, under Integrations. If something on these pages is wrong, or the API did something these pages do not describe, tell us rather than working around it.