Skip to content

Schemas & tooling

This guide ships three machine-readable artifacts:

  • /llms.txt - the high-level map of the public docs surface.
  • /openapi.yaml - the canonical machine-readable REST and webhook contract.
  • The markdown source of each page, copied into the built site next to its rendered HTML for agent and tooling fetches.

For humans:

  1. Start with Before you start and Quickstart.
  2. Read the relevant OAuth and webhook pages.
  3. Use the OpenAPI bundle when you need exact request, response, or schema names.

For agents:

  1. Read llms.txt to discover the public surface.
  2. Load openapi.yaml for exact endpoint and webhook schemas.
  3. Use the markdown pages only for behavior notes that are intentionally prose-only, such as operational caveats and UX sequencing.

What the OpenAPI bundle covers

The public openapi.yaml includes:

  • OAuth authorize, token, and revoke
  • The read API endpoints documented in this guide
  • Publisher-tooling endpoints for rotating secrets and sending a test webhook
  • Shared error envelopes and token-response schemas
  • Webhook envelopes and all 27 v1 webhook event schemas

Intentionally opaque fields

Some parts of the contract are intentionally open-ended in v1:

  • custom_form_fields is organizer-defined and should be treated as an opaque JSON map.
  • activity_details is keyed by activity_type; v1 does not publish per-type sub-schemas.
  • /me/profile does not expose email-verification state. If email is present, do not assume verified.

Webhook schemas

Use these schema names in openapi.yaml when you need an exact payload contract:

Event type Schema name
event.published WebhookEventPublished
event.unpublished WebhookEventUnpublished
event.visibility_changed WebhookEventVisibilityChanged
event.access_mode_changed WebhookEventAccessModeChanged
application.submitted WebhookApplicationSubmitted
application.approved WebhookApplicationApproved
application.rejected WebhookApplicationRejected
application.revision_requested WebhookApplicationRevisionRequested
participant.registered WebhookParticipantRegistered
participant.profile_updated WebhookParticipantProfileUpdated
participant.removed WebhookParticipantRemoved
activity.created WebhookActivityCreated
activity.updated WebhookActivityUpdated
activity.deleted WebhookActivityDeleted
activity.capacity_state_changed WebhookActivityCapacityStateChanged
thread.created WebhookThreadCreated
thread.updated WebhookThreadUpdated
thread.deleted WebhookThreadDeleted
location.created WebhookLocationCreated
location.updated WebhookLocationUpdated
location.deleted WebhookLocationDeleted
registration_wave.started WebhookRegistrationWaveStarted
registration_wave.finished WebhookRegistrationWaveFinished
data.deletion_required WebhookDataDeletionRequired
user.revoked_access WebhookUserRevokedAccess
integration.suspended WebhookIntegrationSuspended
integration.unpublished WebhookIntegrationUnpublished