> For the complete documentation index, see [llms.txt](https://eventx-hq.gitbook.io/knowledge-base/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://eventx-hq.gitbook.io/knowledge-base/api-v2/events.md).

# Events

Event CRUD — organizer\_api\_token org/event scoped, rich examples

## List events

> List events accessible to the organizer\_api\_token. Token scoped at Org (all events in org) or Event (single). Pure token-level, not user. Supports pagination and filtering. Requires Bearer evtx\_live\_... with read permission.

```json
{"openapi":"3.1.0","info":{"title":"EventX Public API v2","version":"v2"},"tags":[{"name":"events","description":"Event CRUD — organizer_api_token org/event scoped, rich examples"}],"servers":[{"url":"https://api.eventx.io","description":"EventX Public API server"}],"security":[{"organizerApiToken":[]}],"components":{"securitySchemes":{"organizerApiToken":{"type":"http","scheme":"bearer","description":"Organizer API token — Authorization: Bearer evtx_live_… (Org/Event scoped, read/write)."}}},"paths":{"/v2/events":{"get":{"tags":["events"],"summary":"List events","description":"List events accessible to the organizer_api_token. Token scoped at Org (all events in org) or Event (single). Pure token-level, not user. Supports pagination and filtering. Requires Bearer evtx_live_... with read permission.","parameters":[{"schema":{"type":"integer","minimum":1,"maximum":100,"default":50},"required":false,"name":"limit","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"default":0},"required":false,"name":"offset","in":"query"},{"schema":{"type":"string"},"required":false,"name":"nameContains","in":"query"},{"schema":{"type":["boolean","null"]},"required":false,"name":"isPublished","in":"query"}],"responses":{"200":{"description":"Paginated events","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Event ID, UUID"},"organizationId":{"type":["string","null"],"format":"uuid","description":"Organization ID, derived from token scope"},"name":{"type":["string","null"],"description":"Event name"},"descriptionHtml":{"type":["string","null"],"description":"Description HTML"},"timezone":{"type":["string","null"],"description":"IANA timezone"},"startsAt":{"type":["string","null"],"description":"Start time ISO with timezone"},"endsAt":{"type":["string","null"],"description":"End time ISO"},"isPublished":{"type":["boolean","null"]},"createdAt":{"type":["string","null"]},"updatedAt":{"type":["string","null"]}},"required":["id","organizationId","name","descriptionHtml","timezone","startsAt","endsAt","isPublished","createdAt","updatedAt"],"description":"Event row — organizer_api_token scoped at Org or Event, not user. See info.description for full token scope explanation."}},"total":{"type":"number"},"limit":{"type":"number"},"offset":{"type":"number"}},"required":["data","total","limit","offset"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"status":{"type":"number"},"meta":{}},"required":["code","message","status"]}}}},"403":{"description":"Forbidden — wrong org/event scope","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"status":{"type":"number"},"meta":{}},"required":["code","message","status"]}}}}}}}}}
```

## Create event

> Create event — requires organizer\_api\_token with scope org and write permission. Pure token-level, not user.

```json
{"openapi":"3.1.0","info":{"title":"EventX Public API v2","version":"v2"},"tags":[{"name":"events","description":"Event CRUD — organizer_api_token org/event scoped, rich examples"}],"servers":[{"url":"https://api.eventx.io","description":"EventX Public API server"}],"security":[{"organizerApiToken":[]}],"components":{"securitySchemes":{"organizerApiToken":{"type":"http","scheme":"bearer","description":"Organizer API token — Authorization: Bearer evtx_live_… (Org/Event scoped, read/write)."}}},"paths":{"/v2/events":{"post":{"tags":["events"],"summary":"Create event","description":"Create event — requires organizer_api_token with scope org and write permission. Pure token-level, not user.","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200,"description":"Event name, required"},"timezone":{"type":"string","minLength":1,"description":"IANA timezone, required"},"startsAt":{"type":"string","description":"ISO start, required"},"endsAt":{"type":"string","description":"ISO end, required"},"descriptionHtml":{"type":"string"},"isPublished":{"type":"boolean"}},"required":["name","timezone","startsAt","endsAt"],"description":"Create event — requires organizer_api_token with scope org (any event in org) or event (this event only). Pure token-level, not user."}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Event ID, UUID"},"organizationId":{"type":["string","null"],"format":"uuid","description":"Organization ID, derived from token scope"},"name":{"type":["string","null"],"description":"Event name"},"descriptionHtml":{"type":["string","null"],"description":"Description HTML"},"timezone":{"type":["string","null"],"description":"IANA timezone"},"startsAt":{"type":["string","null"],"description":"Start time ISO with timezone"},"endsAt":{"type":["string","null"],"description":"End time ISO"},"isPublished":{"type":["boolean","null"]},"createdAt":{"type":["string","null"]},"updatedAt":{"type":["string","null"]}},"required":["id","organizationId","name","descriptionHtml","timezone","startsAt","endsAt","isPublished","createdAt","updatedAt"],"description":"Event row — organizer_api_token scoped at Org or Event, not user. See info.description for full token scope explanation."}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"status":{"type":"number"},"meta":{}},"required":["code","message","status"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"status":{"type":"number"},"meta":{}},"required":["code","message","status"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"status":{"type":"number"},"meta":{}},"required":["code","message","status"]}}}}}}}}}
```

## Get event

> Get single event — token must be scoped to its org or that exact event.

```json
{"openapi":"3.1.0","info":{"title":"EventX Public API v2","version":"v2"},"tags":[{"name":"events","description":"Event CRUD — organizer_api_token org/event scoped, rich examples"}],"servers":[{"url":"https://api.eventx.io","description":"EventX Public API server"}],"security":[{"organizerApiToken":[]}],"components":{"securitySchemes":{"organizerApiToken":{"type":"http","scheme":"bearer","description":"Organizer API token — Authorization: Bearer evtx_live_… (Org/Event scoped, read/write)."}}},"paths":{"/v2/events/{eventId}":{"get":{"tags":["events"],"summary":"Get event","description":"Get single event — token must be scoped to its org or that exact event.","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"eventId","in":"path"}],"responses":{"200":{"description":"Event","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Event ID, UUID"},"organizationId":{"type":["string","null"],"format":"uuid","description":"Organization ID, derived from token scope"},"name":{"type":["string","null"],"description":"Event name"},"descriptionHtml":{"type":["string","null"],"description":"Description HTML"},"timezone":{"type":["string","null"],"description":"IANA timezone"},"startsAt":{"type":["string","null"],"description":"Start time ISO with timezone"},"endsAt":{"type":["string","null"],"description":"End time ISO"},"isPublished":{"type":["boolean","null"]},"createdAt":{"type":["string","null"]},"updatedAt":{"type":["string","null"]}},"required":["id","organizationId","name","descriptionHtml","timezone","startsAt","endsAt","isPublished","createdAt","updatedAt"],"description":"Event row — organizer_api_token scoped at Org or Event, not user. See info.description for full token scope explanation."}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"status":{"type":"number"},"meta":{}},"required":["code","message","status"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"status":{"type":"number"},"meta":{}},"required":["code","message","status"]}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"status":{"type":"number"},"meta":{}},"required":["code","message","status"]}}}}}}}}}
```

## Delete event

> Soft delete — requires write and org scope.

```json
{"openapi":"3.1.0","info":{"title":"EventX Public API v2","version":"v2"},"tags":[{"name":"events","description":"Event CRUD — organizer_api_token org/event scoped, rich examples"}],"servers":[{"url":"https://api.eventx.io","description":"EventX Public API server"}],"security":[{"organizerApiToken":[]}],"components":{"securitySchemes":{"organizerApiToken":{"type":"http","scheme":"bearer","description":"Organizer API token — Authorization: Bearer evtx_live_… (Org/Event scoped, read/write)."}}},"paths":{"/v2/events/{eventId}":{"delete":{"tags":["events"],"summary":"Delete event","description":"Soft delete — requires write and org scope.","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"eventId","in":"path"}],"responses":{"204":{"description":"Deleted"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"status":{"type":"number"},"meta":{}},"required":["code","message","status"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"status":{"type":"number"},"meta":{}},"required":["code","message","status"]}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"status":{"type":"number"},"meta":{}},"required":["code","message","status"]}}}}}}}}}
```

## Update event

> Partial update — requires write permission and matching org/event scope.

```json
{"openapi":"3.1.0","info":{"title":"EventX Public API v2","version":"v2"},"tags":[{"name":"events","description":"Event CRUD — organizer_api_token org/event scoped, rich examples"}],"servers":[{"url":"https://api.eventx.io","description":"EventX Public API server"}],"security":[{"organizerApiToken":[]}],"components":{"securitySchemes":{"organizerApiToken":{"type":"http","scheme":"bearer","description":"Organizer API token — Authorization: Bearer evtx_live_… (Org/Event scoped, read/write)."}}},"paths":{"/v2/events/{eventId}":{"patch":{"tags":["events"],"summary":"Update event","description":"Partial update — requires write permission and matching org/event scope.","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"eventId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"timezone":{"type":"string"},"startsAt":{"type":"string"},"endsAt":{"type":"string"},"descriptionHtml":{"type":"string"},"isPublished":{"type":"boolean"}},"description":"Partial update — at least one field required"}}}},"responses":{"200":{"description":"Updated","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Event ID, UUID"},"organizationId":{"type":["string","null"],"format":"uuid","description":"Organization ID, derived from token scope"},"name":{"type":["string","null"],"description":"Event name"},"descriptionHtml":{"type":["string","null"],"description":"Description HTML"},"timezone":{"type":["string","null"],"description":"IANA timezone"},"startsAt":{"type":["string","null"],"description":"Start time ISO with timezone"},"endsAt":{"type":["string","null"],"description":"End time ISO"},"isPublished":{"type":["boolean","null"]},"createdAt":{"type":["string","null"]},"updatedAt":{"type":["string","null"]}},"required":["id","organizationId","name","descriptionHtml","timezone","startsAt","endsAt","isPublished","createdAt","updatedAt"],"description":"Event row — organizer_api_token scoped at Org or Event, not user. See info.description for full token scope explanation."}}}},"400":{"description":"Validation","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"status":{"type":"number"},"meta":{}},"required":["code","message","status"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"status":{"type":"number"},"meta":{}},"required":["code","message","status"]}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"status":{"type":"number"},"meta":{}},"required":["code","message","status"]}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"status":{"type":"number"},"meta":{}},"required":["code","message","status"]}}}}}}}}}
```
