REST API
Events

Events

Cobuntu events are dated gatherings — online, in-person, or hybrid. Each event can have multiple tiers (price points / ticket types). Members RSVP to free events directly via this API; paid tickets go through Checkout (separate flow, see Sales (orders + refunds) in the webhook catalog).

Public-read endpoints (READ_PUBLIC) — list events, get detail, list tiers, fetch tier forms. Write endpoint (WRITE_SALES) — free RSVPs.

Base URL: https://api.cobuntu.com/api/v1

Every endpoint requires an X-API-Key header. See Authentication for scope details.

GET /communities/{communityTag}/events — List events

Scope: READ_PUBLIC

Path parameters:

ParamTypeDescription
communityTagstringYour community's tag (e.g. bela-escala, orbis).

Query parameters:

ParamTypeDefaultDescription
limitinteger20Page size. Default 20, max 100.
offsetinteger0Zero-based offset for pagination. Use either offset or cursor — not both.
featuredbooleanIf true, filter to the single featured event for this community.
upcomingbooleanIf true, filter to events with startDate >= now.
cursorstringOpaque cursor from a previous response's pagination.nextCursor. Use instead of offset for cursor-paginated endpoints.

Response (200):

[
  {
      "id": "…",
      "slug": "…",
      "name": "…",
      "description": "…"  // nullable,
      "startDate": "…",
      "endDate": "…"  // nullable,
      "location": { … }  // nullable,
      "bannerUrl": "…"  // nullable,
      "format": "…",
      "tiers": [<Tier>],
      "featured": false,
    }
]
FieldTypeDescription
idstringStable event identifier (uuid).
slugstringURL-safe identifier, unique per community. Use this for deep-links.
namestringDisplay name shown on listings and detail pages.
descriptionstring (nullable)Long-form description (may contain markdown).
startDatestring (date-time)ISO 8601 start timestamp. UTC. Convert to your visitor's locale client-side.
endDatestring (date-time) (nullable)ISO 8601 end timestamp. Null for open-ended events.
locationobject (nullable)Venue object (address / virtual link). Null for TBD.
bannerUrlstring (nullable)Hero image URL (or null). Recommended display: 16:9.
formatstring (enum)How the event is delivered. Drives icon + booking flow.
tiersarrayActive price tiers for this event. Empty when the event isn't yet on sale.
featuredbooleanTrue if the event is the community's 'big frame' featured event. Only one event can be featured per community at a time.

Example:

curl https://api.cobuntu.com/api/v1/communities/my-community/events \
  -H "X-API-Key: pk_live_..."

GET /communities/{communityTag}/events/{slug} — Get event by slug

Scope: READ_PUBLIC

Path parameters:

ParamTypeDescription
communityTagstringYour community's tag (e.g. bela-escala, orbis).
slugstringURL slug from the event / article. Stable across edits.

Response (200):

{
  "id": "…",
  "slug": "…",
  "name": "…",
  "description": "…"  // nullable,
  "startDate": "…",
  "endDate": "…"  // nullable,
  "location": { … }  // nullable,
  "bannerUrl": "…"  // nullable,
  "format": "…",
  "tiers": [<Tier>],
  "featured": false,
}
FieldTypeDescription
idstringStable event identifier (uuid).
slugstringURL-safe identifier, unique per community. Use this for deep-links.
namestringDisplay name shown on listings and detail pages.
descriptionstring (nullable)Long-form description (may contain markdown).
startDatestring (date-time)ISO 8601 start timestamp. UTC. Convert to your visitor's locale client-side.
endDatestring (date-time) (nullable)ISO 8601 end timestamp. Null for open-ended events.
locationobject (nullable)Venue object (address / virtual link). Null for TBD.
bannerUrlstring (nullable)Hero image URL (or null). Recommended display: 16:9.
formatstring (enum)How the event is delivered. Drives icon + booking flow.
tiersarrayActive price tiers for this event. Empty when the event isn't yet on sale.
featuredbooleanTrue if the event is the community's 'big frame' featured event. Only one event can be featured per community at a time.

Example:

curl https://api.cobuntu.com/api/v1/communities/my-community/events/EXAMPLE_ID \
  -H "X-API-Key: pk_live_..."

GET /communities/{communityTag}/events/{slug}/tiers — List tiers for an event

Scope: READ_PUBLIC

Path parameters:

ParamTypeDescription
communityTagstringYour community's tag (e.g. bela-escala, orbis).
slugstringURL slug from the event / article. Stable across edits.

Response (200):

[
  {
      "id": "…",
      "name": "…",
      "priceCents": 0,
      "currency": "EUR",
      "capacity": 0  // nullable,
      "sold": 0,
      "isActive": false,
      "hasForm": false,
    }
]
FieldTypeDescription
idstringStable tier identifier (uuid).
namestringDisplay name (e.g. Early bird, VIP).
priceCentsintegerPrice in the smallest currency unit (cents for EUR/USD/GBP, no decimals for JPY).
currencystringISO 4217 code.
capacityinteger (nullable)Max attendees who can buy this tier. Null = unlimited.
soldintegerAttendees already on this tier. Read-only.
isActivebooleanWhether the tier accepts new RSVPs.
hasFormbooleanTrue if this tier requires answering a form at checkout (use GET /tiers/{tierId}/form to fetch the schema).

Example:

curl https://api.cobuntu.com/api/v1/communities/my-community/events/EXAMPLE_ID/tiers \
  -H "X-API-Key: pk_live_..."

POST /communities/{communityTag}/events/{slug}/rsvp — RSVP to a free event

Scope: WRITE_SALES

Path parameters:

ParamTypeDescription
communityTagstringYour community's tag (e.g. bela-escala, orbis).
slugstringURL slug from the event / article. Stable across edits.

Request body:

{
  "tierId": "…",
  "email": "…",
  "name": "…",
  "formAnswers": { … },
}
FieldTypeDescription
tierIdstringTier the RSVP attaches to. Must be active + free (priceCents = 0). For paid tiers, use Checkout instead.
emailstring (email)Attendee email. Used for confirmation + reminder emails.
namestringAttendee display name.
formAnswersobjectTier form answers if the tier has a form.

Response (200):

{
  "ok": false,
  "rsvpId": "…",
  "tierId": "…",
  "qrCode": "…",
}
FieldTypeDescription
okbooleanAlways true on a 200 response.
rsvpIdstringStable id for the new RSVP.
tierIdstringMirrors the requested tierId.
qrCodestringBase64 QR code for venue check-in (encoded the email also receives).

Example:

curl -X POST \
  https://api.cobuntu.com/api/v1/communities/my-community/events/EXAMPLE_ID/rsvp \
  -H "X-API-Key: sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{ /* request body */ }'