tired/api/ref/events

reference

events

create, publish, update, cancel events. this is the root resource.

the event object

{
  "id": "evt_01HYQ9K7W3M5N2",
  "title": "sade yancey, late set",
  "slug": "sade-yancey",
  "url": "https://tired.events/e/sade-yancey",
  "status": "on_sale",
  "venue_id": "ven_01HX7Y…",
  "doors_at": "2026-05-17T20:00:00-04:00",
  "ends_at": "2026-05-18T02:00:00-04:00",
  "description_md": "late set, hushed crowd.",
  "image_url": "https://cdn.tired.events/e/…",
  "capacity": 120,
  "sold": 84,
  "gross_cents": 2100000,
  "refund_policy": "refundable_7d",
  "transferable": true,
  "created_at": "2026-04-01T10:00:00Z",
  "updated_at": "2026-05-10T12:14:22Z"
}

endpoints

post/v2/events · create
get/v2/events · list
get/v2/events/{id} · retrieve
patch/v2/events/{id} · update
post/v2/events/{id}/publish · flip to on_sale
post/v2/events/{id}/cancel · refund everyone
post/v2/events/{id}/reschedule · change date

POST /v2/events

body

fielddescription
title stringreqshown on the event page and on tickets. no html.
venue_id stringreqfrom GET /v2/venues. or send venue object to auto-create.
doors_at iso8601reqwith timezone offset. we display in venue's local tz.
ends_at iso8601optional. auto-computed as doors + 4h if omitted.
tickets arrayreqat least one ticket tier. see tickets.
description_md stringmarkdown. we sanitize.
image url | uploadwe crop for every surface.
refund_policy enumanytime · refundable_24h · refundable_7d · final · exchange_only. default: refundable_24h.
transferable booleandefault: true.
on_sale_at iso8601schedule a go-live. if omitted, you publish manually.

GET /v2/events

query params

statusdraft | on_sale | sold_out | past | cancelled
venue_idfilter to one venue
starts_after · starts_beforeiso8601 range
limit1–100, default 25
starting_after · ending_beforecursor (an event id)
GET /v2/events?status=on_sale&starts_after=2026-05-01&limit=50

events emitted

event.published, event.cancelled, event.rescheduled — see webhooks.