Update an event
Partially updates an event: only the provided fields are modified, omitted fields are left unchanged. The venue address is replaced as a whole and cannot be null (every event needs a displayable venue address); title and eventTimezone cannot be null either. Tags are replaced as a set: the provided list becomes the event's tags (an existing organization tag is reused when the normalized form matches, otherwise it is created; tags no longer present are unlinked from the event but stay available in your organization), an empty list removes all tags and an omitted tags field leaves them unchanged. Returns 404 when the event does not exist.
Preview release
preview release target — send Billy-API-Version: preview to reach it. Preview has no stability promise: its routes and payloads can change without notice, so pin a dated release before you depend on one. The playground below sends a real PATCH request to the live API with your own key, and will create or modify actual data.Partially updates an event: only the provided fields are modified, omitted fields are left unchanged. The venue address is replaced as a whole and cannot be null (every event needs a displayable venue address); title and eventTimezone cannot be null either. Tags are replaced as a set: the provided list becomes the event's tags (an existing organization tag is reused when the normalized form matches, otherwise it is created; tags no longer present are unlinked from the event but stay available in your organization), an empty list removes all tags and an omitted tags field leaves them unchanged. Returns 404 when the event does not exist.
Authorization
HTTPBearer API key authentication. Format: Bearer billy:o:<organization_id>:<api_key>
Example: Bearer billy:o:yyyyyyyyyyyyyyyy:xxxxxxxxxxxxxxxxx
In: header
Path Parameters
Header Parameters
Requested API version. Current context: preview.
"preview"Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Request body for PATCH /v1/events/{event_id}.
Partial update: an omitted field is left unchanged (see the PATCH routes
ADR). OmittedField is excluded from the JSON schema so the public
OpenAPI shows plain optional fields.
Response Body
application/json
application/json
application/json
application/json
curl -X PATCH "https://example.com/v1/events/string" \ -H "Billy-API-Version: preview" \ -H "Content-Type: application/json" \ -d '{}'{ "id": "evt_64f1c2a9e8b4a12f9c0a1234", "createdAt": "2025-01-15T10:42:31.000Z", "updatedAt": "2025-01-20T09:12:05.000Z", "title": "Electro Night Festival", "description": "An immersive electronic music experience with top international DJs.", "imageUrl": "https://cdn.example.com/events/electro-night/banner.jpg", "venueName": "La Grande Halle", "venueAddress": { "addressLine1": "211 Avenue Jean Jaurès", "addressLine2": null, "city": "Paris", "postalCode": "75019", "countryCode": "FR" }, "eventTimezone": "Europe/Paris", "currency": "EUR", "sessionCount": 1, "firstSessionStartAt": "2025-03-21T19:30:00+01:00", "lastSessionStartAt": "2025-03-21T19:30:00+01:00", "nextSessionStartAt": null, "nextSessionId": null, "tags": [ "concert", "electro" ]}