Help Center
Getting Started Guides
Practical walkthroughs for the most common Guildhall workflows: creating events, joining communities, managing stores, and getting timezone/calendar behavior right.
Help Center
Practical walkthroughs for the most common Guildhall workflows: creating events, joining communities, managing stores, and getting timezone/calendar behavior right.
Use this guide when you want to integrate your store website, automation tools, or internal systems with Guildhall.
Website Scheduler)./api/v1Authorization: Bearer YOUR_TOKENContent-Type: application/jsonRecommended request headers:
Authorization: Bearer gh_store_xxxxx
Accept: application/json
Content-Type: application/json
These are the endpoints most stores use first.
GET /api/v1/events list events you can managePOST /api/v1/events create an event (or upsert by external_source + external_uid)GET /api/v1/events/<event_id> fetch one event with instancesPATCH /api/v1/events/<event_id> update event fieldsDELETE /api/v1/events/<event_id> delete an eventGET /api/v1/events/<event_id>/instances list event instancesGET /api/v1/events/<event_id>/invite-links list store invite links for an eventPOST /api/v1/events/<event_id>/invite-links create an invite linkPOST /api/v1/events/<event_id>/invite-links/<invite_id>/revoke revoke an invite linkGET /api/v1/events/<event_id>/instances/<instance_id>/attendance list attendance rows and summaryPOST /api/v1/events/<event_id>/instances/<instance_id>/attendance create or update attendance rowDELETE /api/v1/events/<event_id>/instances/<instance_id>/attendance/<attendance_id> remove attendance row{
"title": "Friday Commander Night",
"description": "Casual pods, all levels welcome.",
"event_type": "in_person",
"location_mode": "address",
"location_address": "123 Main St, York, PA 17401",
"zip_code": "17401",
"timezone": "America/New_York",
"start_datetime": "2026-03-06T19:00:00Z",
"end_datetime": "2026-03-06T23:00:00Z",
"recurrence_pattern": "weekly",
"recurrence_until": "2026-06-30",
"audience_scope": "public",
"conversation_visibility": "attendees",
"max_attendees": 40,
"ticket_event_fee_cents": 500,
"ticket_store_credit_cents": 500,
"external_source": "store_site",
"external_uid": "evt_2026_03_06_fri_commander"
}
{
"ok": true,
"created": true,
"event": {
"id": "event_uuid",
"title": "Friday Commander Night",
"timezone": "America/New_York",
"start_datetime": "2026-03-06T19:00:00",
"end_datetime": "2026-03-06T23:00:00",
"recurrence_pattern": "weekly",
"instances": [
{
"id": "instance_uuid",
"start_datetime": "2026-03-06T19:00:00",
"end_datetime": "2026-03-06T23:00:00",
"status": "scheduled",
"source": "recurrence"
}
]
}
}
{
"title": "Friday Commander Night - Competitive Pods",
"max_attendees": 48,
"ticket_event_fee_cents": 700,
"ticket_store_credit_cents": 300
}
{
"scope": "series",
"custom_description": "Show this code at the register to join weekly commander nights.",
"expires_at": "2026-04-01T23:59:59Z",
"max_uses": 250
}
{
"ok": true,
"invite_link": {
"id": "invite_uuid",
"event_id": "event_uuid",
"scope": "series",
"url": "https://your-domain/store-invites/token123",
"expires_at": "2026-04-01T23:59:59",
"max_uses": 250,
"use_count": 0,
"remaining_uses": 250,
"status": "active",
"is_active": true
}
}
{
"invited_email": "player@example.com",
"status": "invited",
"send_email": true
}
{
"user_id": "user_uuid",
"status": "going"
}
curl -sS \
-H "Authorization: Bearer $GUILDHALL_STORE_TOKEN" \
-H "Accept: application/json" \
"https://your-domain/api/v1/events?limit=50&offset=0&include_instances=true"
curl -sS -X POST \
-H "Authorization: Bearer $GUILDHALL_STORE_TOKEN" \
-H "Content-Type: application/json" \
-d '{"scope":"event","max_uses":100}' \
"https://your-domain/api/v1/events/$EVENT_ID/invite-links"
scope for invite links must be event or series.user_id or invited_email.POST, use idempotency patterns on your side and log X-Request-Id from responses.