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:
| Param | Type | Description |
|---|---|---|
communityTag | string | Your community's tag (e.g. bela-escala, orbis). |
Query parameters:
| Param | Type | Default | Description |
|---|---|---|---|
limit | integer | 20 | Page size. Default 20, max 100. |
offset | integer | 0 | Zero-based offset for pagination. Use either offset or cursor — not both. |
featured | boolean | If true, filter to the single featured event for this community. | |
upcoming | boolean | If true, filter to events with startDate >= now. | |
cursor | string | Opaque 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,
}
]| Field | Type | Description |
|---|---|---|
id | string | Stable event identifier (uuid). |
slug | string | URL-safe identifier, unique per community. Use this for deep-links. |
name | string | Display name shown on listings and detail pages. |
description | string (nullable) | Long-form description (may contain markdown). |
startDate | string (date-time) | ISO 8601 start timestamp. UTC. Convert to your visitor's locale client-side. |
endDate | string (date-time) (nullable) | ISO 8601 end timestamp. Null for open-ended events. |
location | object (nullable) | Venue object (address / virtual link). Null for TBD. |
bannerUrl | string (nullable) | Hero image URL (or null). Recommended display: 16:9. |
format | string (enum) | How the event is delivered. Drives icon + booking flow. |
tiers | array | Active price tiers for this event. Empty when the event isn't yet on sale. |
featured | boolean | True 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:
| Param | Type | Description |
|---|---|---|
communityTag | string | Your community's tag (e.g. bela-escala, orbis). |
slug | string | URL 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,
}| Field | Type | Description |
|---|---|---|
id | string | Stable event identifier (uuid). |
slug | string | URL-safe identifier, unique per community. Use this for deep-links. |
name | string | Display name shown on listings and detail pages. |
description | string (nullable) | Long-form description (may contain markdown). |
startDate | string (date-time) | ISO 8601 start timestamp. UTC. Convert to your visitor's locale client-side. |
endDate | string (date-time) (nullable) | ISO 8601 end timestamp. Null for open-ended events. |
location | object (nullable) | Venue object (address / virtual link). Null for TBD. |
bannerUrl | string (nullable) | Hero image URL (or null). Recommended display: 16:9. |
format | string (enum) | How the event is delivered. Drives icon + booking flow. |
tiers | array | Active price tiers for this event. Empty when the event isn't yet on sale. |
featured | boolean | True 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:
| Param | Type | Description |
|---|---|---|
communityTag | string | Your community's tag (e.g. bela-escala, orbis). |
slug | string | URL 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,
}
]| Field | Type | Description |
|---|---|---|
id | string | Stable tier identifier (uuid). |
name | string | Display name (e.g. Early bird, VIP). |
priceCents | integer | Price in the smallest currency unit (cents for EUR/USD/GBP, no decimals for JPY). |
currency | string | ISO 4217 code. |
capacity | integer (nullable) | Max attendees who can buy this tier. Null = unlimited. |
sold | integer | Attendees already on this tier. Read-only. |
isActive | boolean | Whether the tier accepts new RSVPs. |
hasForm | boolean | True 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:
| Param | Type | Description |
|---|---|---|
communityTag | string | Your community's tag (e.g. bela-escala, orbis). |
slug | string | URL slug from the event / article. Stable across edits. |
Request body:
{
"tierId": "…",
"email": "…",
"name": "…",
"formAnswers": { … },
}| Field | Type | Description |
|---|---|---|
tierId | string | Tier the RSVP attaches to. Must be active + free (priceCents = 0). For paid tiers, use Checkout instead. |
email | string (email) | Attendee email. Used for confirmation + reminder emails. |
name | string | Attendee display name. |
formAnswers | object | Tier form answers if the tier has a form. |
Response (200):
{
"ok": false,
"rsvpId": "…",
"tierId": "…",
"qrCode": "…",
}| Field | Type | Description |
|---|---|---|
ok | boolean | Always true on a 200 response. |
rsvpId | string | Stable id for the new RSVP. |
tierId | string | Mirrors the requested tierId. |
qrCode | string | Base64 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 */ }'