Skip to content

Events

Endpoints for managing public events — exhibitions, openings, talks, and workshops.

POST /v1/events

Create a new event or update an existing one (matched by normalized slug from title + gallery).

Required scope: events:write

FieldTypeRequiredDescription
titlestringEvent title
event_typestringexhibition, opening, talk, workshop, other
descriptionstringEvent description
location_citystringCity name
location_countrystringISO country code (e.g., “CH”, “DE”)
start_datestringISO date (e.g., “2026-04-15”)
end_datestringISO date (e.g., “2026-05-30”)
external_urlstringLink to the event on your website
image_urlstringPermanent URL to the event hero image
ical_urlstringURL to an iCalendar (.ics) file

Events use normalized_slug derived from the title and gallery ID. Re-posting the same event updates the existing record.

Terminal window
curl -X POST https://api.artland.com/v1/events \
-H "Authorization: Bearer ak_liv...re" \
-H "Content-Type: application/json" \
-d '{
"title": "Spring Exhibition",
"event_type": "exhibition",
"description": "Annual spring group show featuring emerging artists.",
"location_city": "Zurich",
"location_country": "CH",
"start_date": "2026-04-15",
"end_date": "2026-05-30",
"external_url": "https://gallery.example.com/spring-2026",
"image_url": "https://gallery.example.com/spring-hero.jpg",
"ical_url": "https://gallery.example.com/calendar.ics"
}'

Response (201):

{
"id": 7,
"title": "Spring Exhibition",
"slug": "spring-exhibition",
"created": true
}

GET /v1/events

List events for the entity bound to your API key.

Required scope: events:read

ParameterDefaultDescription
page1Page number
limit50Results per page
upcomingfalseOnly return future events
pastfalseOnly return past events
Terminal window
curl "https://api.artland.com/v1/events?upcoming=true" \
-H "Authorization: Bearer ak_liv...n**Response (200):**
```json
{
"events": [
{
"id": 7,
"title": "Spring Exhibition",
"event_type": "exhibition",
"location_city": "Zurich",
"location_country": "CH",
"start_date": "2026-04-15",
"end_date": "2026-05-30"
}
],
"total": 3,
"page": 1,
"limit": 50
}

GET /v1/events/:id

Retrieve a single event by ID.

Required scope: events:read

Terminal window
curl https://api.artland.com/v1/events/7 \
-H "Authorization: Bearer ak_liv...n**Response (200):**
```json
{
"id": 7,
"title": "Spring Exhibition",
"event_type": "exhibition",
"description": "Annual spring group show featuring emerging artists.",
"location_city": "Zurich",
"location_country": "CH",
"start_date": "2026-04-15",
"end_date": "2026-05-30",
"external_url": "https://gallery.example.com/spring-2026",
"image_url": "https://gallery.example.com/spring-hero.jpg",
"ical_url": "https://gallery.example.com/calendar.ics"
}

DELETE /v1/events/:id

Remove an event. You must own the event via entity binding.

Required scope: events:write

Terminal window
curl -X DELETE https://api.artland.com/v1/events/7 \
-H "Authorization: Bearer ak_liv...n**Response (200):**
```json
{
"deleted": true,
"id": 7
}