curl -X PATCH \
-H "X-API-KEY: your_api_key" \
-H "Content-Type: application/json" \
-d '{
"name": "Summer Launch Party — Updated",
"capacity": 500,
"registration_status": "open"
}' \
"https://www.gomry.com/api/v1/events/AbCdEfGhIjKlMnOpQrSt"
{
"data": {
"id": "AbCdEfGhIjKlMnOpQrSt",
"name": "Summer Launch Party — Updated",
"status": "active",
"registration_status": "open",
"currency": "usd",
"capacity": 500,
"tickets_sold": 12,
"start": { "utc": "2026-07-15T22:00:00.000Z", "timezone": "America/New_York" },
"end": { "utc": "2026-07-16T02:00:00.000Z", "timezone": "America/New_York" },
"venue": { "name": "Convention Center, New York", "address": "Convention Center, New York" },
"created_at": "2026-05-24T10:00:00.000Z",
"updated_at": "2026-05-24T10:15:00.000Z"
}
}
{
"error": "At least one field is required"
}
{
"error": "end must be after start"
}
{
"error": "date_change_ack_required",
"message": "This event has paid orders. Moving its start by more than 6 hours lets every buyer cancel for a full refund until `window_closes_at`, your organization covering the fees, and emails them. Until then payouts cannot take what they can still claim. Resend with `acknowledge_refund_window: true` to go ahead.",
"window_closes_at": "2026-10-24T12:00:00.000Z",
"quote": {
"quote_id": "3f1c9a0d2b7e4c51a8f06e2d9b4c7a13",
"buyers": 214,
"tickets": 291,
"holds_released": 0,
"totals": [{ "currency": "eur", "refund": 12840.0, "fees_covered": 592.1 }],
"orders": [{ "payment_id": "pay_1", "currency": "eur", "refund_amount": 49.93, "fees_covered": 1.93, "attendee_ids": ["t_1"] }],
"balances": [{ "space_id": null, "currency": "eur", "balance": 9100.0, "refund_total": 12840.0, "shortfall": 3740.0 }],
"not_refunded": { "paid_offline": 0, "resale": 0, "bundle": 0, "credits": 0 }
}
}
{
"error": "Event not found"
}
{
"error": "insufficient_scope",
"message": "This API key does not have 'write' access to 'events'.",
"required_scope": "events:write"
}
Events
Update Event
Partially update an event in your organization
PATCH
/
events
/
{event_id}
curl -X PATCH \
-H "X-API-KEY: your_api_key" \
-H "Content-Type: application/json" \
-d '{
"name": "Summer Launch Party — Updated",
"capacity": 500,
"registration_status": "open"
}' \
"https://www.gomry.com/api/v1/events/AbCdEfGhIjKlMnOpQrSt"
{
"data": {
"id": "AbCdEfGhIjKlMnOpQrSt",
"name": "Summer Launch Party — Updated",
"status": "active",
"registration_status": "open",
"currency": "usd",
"capacity": 500,
"tickets_sold": 12,
"start": { "utc": "2026-07-15T22:00:00.000Z", "timezone": "America/New_York" },
"end": { "utc": "2026-07-16T02:00:00.000Z", "timezone": "America/New_York" },
"venue": { "name": "Convention Center, New York", "address": "Convention Center, New York" },
"created_at": "2026-05-24T10:00:00.000Z",
"updated_at": "2026-05-24T10:15:00.000Z"
}
}
{
"error": "At least one field is required"
}
{
"error": "end must be after start"
}
{
"error": "date_change_ack_required",
"message": "This event has paid orders. Moving its start by more than 6 hours lets every buyer cancel for a full refund until `window_closes_at`, your organization covering the fees, and emails them. Until then payouts cannot take what they can still claim. Resend with `acknowledge_refund_window: true` to go ahead.",
"window_closes_at": "2026-10-24T12:00:00.000Z",
"quote": {
"quote_id": "3f1c9a0d2b7e4c51a8f06e2d9b4c7a13",
"buyers": 214,
"tickets": 291,
"holds_released": 0,
"totals": [{ "currency": "eur", "refund": 12840.0, "fees_covered": 592.1 }],
"orders": [{ "payment_id": "pay_1", "currency": "eur", "refund_amount": 49.93, "fees_covered": 1.93, "attendee_ids": ["t_1"] }],
"balances": [{ "space_id": null, "currency": "eur", "balance": 9100.0, "refund_total": 12840.0, "shortfall": 3740.0 }],
"not_refunded": { "paid_offline": 0, "resale": 0, "bundle": 0, "credits": 0 }
}
}
{
"error": "Event not found"
}
{
"error": "insufficient_scope",
"message": "This API key does not have 'write' access to 'events'.",
"required_scope": "events:write"
}
Update Event
Partially updates an event. Only the fields supplied in the body are written — omitted fields are left unchanged. The event must belong to the organization associated with the API key; cross-org requests return404 Not Found with no information leak.
Requires the events:write scope.
Path Parameters
string
required
Event ID (the canonical 20-character document ID, e.g.
AbCdEfGhIjKlMnOpQrSt).Request Body
At least one field is required. Unknown fields are rejected with400.
string
Event name (1–200 chars). Triggers a taxonomy + search-relevance
re-index in the background.
string
Long-form description shown on the event page. Triggers a re-index.
object
boolean
Set to
true to go ahead with a start that opens a refund window (see
Moving the date of an event with paid orders).
Ignored otherwise.object | null
Same shape as
start. Pass null to clear the end time (open-ended
event). When both start and end are present, end must be strictly
after start and the timezones must match.object
string
Convenience — a
https://... URL is stored as the virtual meeting
link, anything else is stored as venue.address. If you need finer
control over venue fields, use venue instead.integer
Maximum number of tickets that can be sold.
0 means unlimited.string
ISO-4217 currency code.
boolean
Hide the event from public listings.
boolean
Whether ticket prices are tax-inclusive.
boolean
Allow attendees to RSVP (maybe / not going) in addition to confirming.
string
Public URL of the cover image.
enum
open or closed. When closed, the public registration form is
hidden and new bookings are rejected. Existing attendees are unaffected.enum
none, email, or email_and_phone. Controls what an attendee must
provide on the registration form.boolean
Absorb the Gomry service fee into the ticket price rather than adding it at checkout.This is the event-wide default. Changing it moves every ticket class that has no
setting of its own; a class that has been given an explicit
remove_service_fees keeps
it and is unaffected — see
Update Ticket Class.object
Moving the date of an event with paid orders
Movingstart by more than 6 hours (earlier or later) while the event
has paid orders opens a refund window: everyone who bought before the
change can cancel for a full refund, whatever their order’s refund policy,
for 48 hours after the change, even past the new start (tickets already checked in are excluded).
Your organization covers the fees, every attendee is emailed about the
change (buyers with their own amount), and until the window closes payouts
can’t take what they can still claim. A claim the balance can’t cover
becomes a refund request you can’t decline. Changing only end, or moving
the start by 6 hours or less, never opens one; a timezone change that shifts
the absolute start by more than 6 hours does.
The first call on such a move changes nothing and answers
409 date_change_ack_required with the quote (the same shape as the
refund quote: buyers,
tickets, the most that could come back per currency, each balance) and
window_closes_at. Resend the same body with
"acknowledge_refund_window": true to save it. Each qualifying move opens
its own window, so moving the date back opens another one.
The key needs read access to payments to make such a move; without it
the answer is 403 refund_permission_required and nothing changes.
Response
Returns the updated event as serialized byGET /events/{event_id}. When
the save opened a refund window, the response also has refund_window:
id, closes_at, buyers, tickets and attendees_notified.
curl -X PATCH \
-H "X-API-KEY: your_api_key" \
-H "Content-Type: application/json" \
-d '{
"name": "Summer Launch Party — Updated",
"capacity": 500,
"registration_status": "open"
}' \
"https://www.gomry.com/api/v1/events/AbCdEfGhIjKlMnOpQrSt"
{
"data": {
"id": "AbCdEfGhIjKlMnOpQrSt",
"name": "Summer Launch Party — Updated",
"status": "active",
"registration_status": "open",
"currency": "usd",
"capacity": 500,
"tickets_sold": 12,
"start": { "utc": "2026-07-15T22:00:00.000Z", "timezone": "America/New_York" },
"end": { "utc": "2026-07-16T02:00:00.000Z", "timezone": "America/New_York" },
"venue": { "name": "Convention Center, New York", "address": "Convention Center, New York" },
"created_at": "2026-05-24T10:00:00.000Z",
"updated_at": "2026-05-24T10:15:00.000Z"
}
}
{
"error": "At least one field is required"
}
{
"error": "end must be after start"
}
{
"error": "date_change_ack_required",
"message": "This event has paid orders. Moving its start by more than 6 hours lets every buyer cancel for a full refund until `window_closes_at`, your organization covering the fees, and emails them. Until then payouts cannot take what they can still claim. Resend with `acknowledge_refund_window: true` to go ahead.",
"window_closes_at": "2026-10-24T12:00:00.000Z",
"quote": {
"quote_id": "3f1c9a0d2b7e4c51a8f06e2d9b4c7a13",
"buyers": 214,
"tickets": 291,
"holds_released": 0,
"totals": [{ "currency": "eur", "refund": 12840.0, "fees_covered": 592.1 }],
"orders": [{ "payment_id": "pay_1", "currency": "eur", "refund_amount": 49.93, "fees_covered": 1.93, "attendee_ids": ["t_1"] }],
"balances": [{ "space_id": null, "currency": "eur", "balance": 9100.0, "refund_total": 12840.0, "shortfall": 3740.0 }],
"not_refunded": { "paid_offline": 0, "resale": 0, "bundle": 0, "credits": 0 }
}
}
{
"error": "Event not found"
}
{
"error": "insufficient_scope",
"message": "This API key does not have 'write' access to 'events'.",
"required_scope": "events:write"
}

