> ## Documentation Index
> Fetch the complete documentation index at: https://docs.animo.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Event pages

# Event pages

## Overview

Event pages control the public-facing content shown on an event's landing page at `https://app.animo.co/{company-slug}/event/{event-slug}` — tagline, description, header image, support email, and attendee visibility.

These endpoints apply to **organizing events** only, nested under `/event/{organizingEvent}`.

**Subscription:** Pro plan required. Upgrade at [https://app.animo.co/admin/settings/billing](https://app.animo.co/admin/settings/billing).

The `page` object is also embedded on organizing event `show` and `update` responses — see [Events](events.md).

## Endpoints

### Show event page

* **Method:** `GET`
* **Path:** `/api/v1/{company}/event/{organizingEvent}/page`
* **Scope:** `events:read`
* **Subscription:** Pro plan (`USE_API`)

Returns the event page if one exists, or an empty page object with default/null values if none has been created yet.

#### Path parameters

| Name              | Type   | Description           |
| ----------------- | ------ | --------------------- |
| `company`         | string | Company sqid          |
| `organizingEvent` | string | Organizing event slug |

#### Response `200`

```json theme={null}
{
  "data": {
    "tagline": "The future of HR tech",
    "description": "<p>Join us for a full day of demos and networking.</p>",
    "support_email": "events@example.com",
    "header_image": "https://cdn.example.com/events/header.jpg",
    "show_attendees": true,
    "unsplash_data": null
  }
}
```

#### Response fields

| Field            | Type         | Description                                                                 |
| ---------------- | ------------ | --------------------------------------------------------------------------- |
| `tagline`        | string\|null | Short headline on the event page                                            |
| `description`    | string\|null | HTML description (sanitized on read)                                        |
| `support_email`  | string\|null | Contact email shown on the public page                                      |
| `header_image`   | string\|null | Header image URL                                                            |
| `show_attendees` | boolean      | Whether registered attendees are visible                                    |
| `unsplash_data`  | object\|null | Unsplash attribution data — present only when header image is from Unsplash |

#### Errors

| Status | When                                           |
| ------ | ---------------------------------------------- |
| `401`  | Missing or invalid token                       |
| `403`  | Missing scope, subscription, or company access |
| `404`  | Event not found or not an organizing event     |

***

### Update event page

* **Method:** `POST`
* **Path:** `/api/v1/{company}/event/{organizingEvent}/page`
* **Scope:** `events:update`
* **Subscription:** Pro plan (`USE_API`)

Creates the event page if it does not exist, then applies the supplied fields.

#### Content type

Use `multipart/form-data` when uploading `header_image`. Use `application/json` for text-only updates.

#### Request body

See the request body table below for field requirements.

| Field            | Required | Description                                                                          |
| ---------------- | -------- | ------------------------------------------------------------------------------------ |
| `tagline`        | No       | Short headline (max 255 chars)                                                       |
| `description`    | No       | HTML description                                                                     |
| `support_email`  | No       | Valid email address (max 255 chars)                                                  |
| `show_attendees` | No       | Boolean                                                                              |
| `header_image`   | No       | Image file — `jpg`, `jpeg`, `png`, `gif`, `webp`, `avif`, or `apng`; min width 320px |

All fields are optional (partial update). Omit a field to leave it unchanged.

#### Example (multipart)

```http theme={null}
POST /api/v1/{company}/event/{event-slug}/page
Authorization: Bearer {token}
Content-Type: multipart/form-data

tagline=The future of HR tech
description=<p>Join us for a full day of demos.</p>
support_email=events@example.com
show_attendees=true
header_image=@header.jpg
```

#### Response `200`

Returns the updated `EventPageResource`.

#### Errors

| Status | When                                                      |
| ------ | --------------------------------------------------------- |
| `422`  | Validation failure (invalid email, image too small, etc.) |
| `403`  | Missing `events:update` scope                             |

## Related

* [Authentication](../authentication.md)
* [Conventions](../conventions.md)
* [Events](events.md)
* [Comms templates](comms.md)
