Ticket types
Overview
Ticket types define purchasable or free tickets for organizing events. These endpoints are nested under/event/{organizingEvent} — the event must be one your company organizes.
Subscription: Pro plan required. Upgrade at https://app.animo.co/admin/settings/billing.
Public ticket page URL
Each ticket type has a public signup page on the Animo app. Construct the URL from slugs returned by the API:| Segment | API source |
|---|---|
{company-slug} | slug from GET /api/v1/companies |
{event-slug} | id from the event resource |
{ticket-type-slug} | slug from the ticket type resource |
?qty={n} to pre-select the ticket quantity (e.g. ?qty=1).
Example:
slug you supply on ticket type create is honored and can be changed later via PATCH.
Paid tickets and Mollie
Paid ticket types (price > 0) require a connected Mollie account on the company before the public ticket page works.
| State | Public page behavior |
|---|---|
| Mollie connected | Ticket signup page loads normally |
| Mollie not connected | Public page returns 404 — the ticket type exists in the API but is not purchasable |
price: 0) are not affected.
Endpoints
List ticket types
- Method:
GET - Path:
/api/v1/{company}/event/{organizingEvent}/ticket-types - Scope:
ticket-types:read(route group also requiresevents:read) - Subscription: Pro plan (
USE_API)
Path parameters
| Name | Type | Description |
|---|---|---|
company | string | Company sqid |
organizingEvent | string | Organizing event slug |
Query parameters
| Name | Type | Description |
|---|---|---|
include_form | boolean | When present, embeds the related form and fields |
Response 200
Response fields
| Field | Type | Description |
|---|---|---|
slug | string | Ticket type slug (use in URLs) |
name | string | Display name |
description | string|null | Description |
price | string | Price as decimal string (0 for free) |
currency | string | Currency code |
vat_percentage | string | VAT rate percentage |
availability | integer | Max tickets (-1 = unlimited) |
approval_required | boolean | Requires organizer approval |
sold_out | boolean | Marked as sold out |
active | boolean | Available for purchase |
hidden_from_shop | boolean | Hidden from public shop |
form_id | string|null | Related form sqid |
form | object | Present when include_form is set |
position | integer | Sort order |
min_quantity | integer | Minimum per order |
max_quantity | integer | Maximum per order |
Create ticket type
- Method:
POST - Path:
/api/v1/{company}/event/{organizingEvent}/ticket-types/create - Scope:
ticket-types:create - Subscription: Pro plan (
USE_API)
Request body
See the request body table below for field requirements.| Field | Required | Description |
|---|---|---|
name | Yes | Display name |
price | Yes | Numeric; 0 for free, minimum paid price enforced |
vat_percentage | Yes | Must be a valid rate for the event’s tax country |
slug | No | URL slug |
description | No | Text description |
form_id | No | Form sqid belonging to the company |
availability | No | 0 or positive integer; -1 for unlimited |
active | No | Boolean |
hidden_from_shop | No | Boolean |
approval_required | No | Boolean |
sold_out | No | Boolean |
position | No | Sort order (>= 0) |
min_quantity | No | Min per order (>= 1) |
max_quantity | No | Max per order (>= min_quantity) |
Response 201
Returns a single TicketTypeResource.
Show ticket type
- Method:
GET - Path:
/api/v1/{company}/event/{organizingEvent}/ticket-types/{ticketType} - Scope:
ticket-types:read - Subscription: Pro plan (
USE_API)
Query parameters
| Name | Type | Description |
|---|---|---|
include_form | boolean | Embeds form and fields |
Response 200
Single TicketTypeResource in data envelope.
Update ticket type
- Method:
PATCH - Path:
/api/v1/{company}/event/{organizingEvent}/ticket-types/{ticketType} - Scope:
ticket-types:update - Subscription: Pro plan (
USE_API)
Request body
Same fields as create; all optional on update. See the request body table below for field requirements..Response 200
Returns the updated TicketTypeResource.
Not implemented
DELETE /api/v1/{company}/event/{organizingEvent}/ticket-types/{ticketType}— route is commented out