Download OpenAPI specification:
Public machine-to-machine API for TicketValidation integrations.
https://api.ticketvalidation.com/integrations/v1/...Every endpoint in this API requires a matching scope.
If scope is missing, API returns 403 with message API_KEY_SCOPE_DENIED.
Returns key metadata, customer id and granted scopes.
{- "data": {
- "customer_id": "01JTK6N7YB53RQWMV9QYVVE2S4",
- "api_key_id": "01JTK6PG53JX0M8VGW9XK7QJ41",
- "api_key_name": "Production Partner Sync",
- "scopes": [
- "events:read",
- "tickets:read"
]
}
}{- "data": [
- {
- "id": "01JTK5YQPWB90ZXJ6H2A9VR6D4",
- "customer_id": "01JTK6N7YB53RQWMV9QYVVE2S4",
- "name": "City Venue",
- "responsible_person": "Operations Manager",
- "phone": "+35315551234",
- "street_name": "Grand Canal Street",
- "street_number": "25",
- "city": "Dublin",
- "country": "Ireland",
- "timezone": "Europe/Dublin",
- "created_at": "2026-04-27T12:44:12.000000Z",
- "updated_at": "2026-04-27T12:44:12.000000Z"
}
]
}Required scope: locations:manage.
| name required | string <= 255 characters |
| responsible_person required | string <= 255 characters |
| phone required | string <= 255 characters |
| street_name required | string <= 255 characters |
| street_number | string or null <= 50 characters |
| city required | string <= 255 characters |
| country required | string <= 255 characters |
| timezone required | string <= 255 characters |
{- "name": "City Venue",
- "responsible_person": "Operations Manager",
- "phone": "+35315551234",
- "street_name": "Grand Canal Street",
- "street_number": "25",
- "city": "Dublin",
- "country": "Ireland",
- "timezone": "Europe/Dublin"
}{- "id": "string",
- "customer_id": "string",
- "name": "string",
- "responsible_person": "string",
- "phone": "string",
- "street_name": "string",
- "street_number": "string",
- "city": "string",
- "country": "string",
- "timezone": "Europe/Dublin",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}Required scope: locations:read.
| locationId required | string |
{- "id": "string",
- "customer_id": "string",
- "name": "string",
- "responsible_person": "string",
- "phone": "string",
- "street_name": "string",
- "street_number": "string",
- "city": "string",
- "country": "string",
- "timezone": "Europe/Dublin",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}Required scope: locations:manage.
| locationId required | string |
| name | string <= 255 characters |
| responsible_person | string <= 255 characters |
| phone | string <= 255 characters |
| street_name | string <= 255 characters |
| street_number | string or null <= 50 characters |
| city | string <= 255 characters |
| country | string <= 255 characters |
| timezone | string <= 255 characters |
{- "name": "string",
- "responsible_person": "string",
- "phone": "string",
- "street_name": "string",
- "street_number": "string",
- "city": "string",
- "country": "string",
- "timezone": "string"
}{- "id": "string",
- "customer_id": "string",
- "name": "string",
- "responsible_person": "string",
- "phone": "string",
- "street_name": "string",
- "street_number": "string",
- "city": "string",
- "country": "string",
- "timezone": "Europe/Dublin",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}{- "data": [
- {
- "id": "string",
- "customer_id": "string",
- "name": "string",
- "color": "string",
- "sources": [
- {
- "id": "string",
- "customer_id": "string",
- "name": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
], - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
}Required scope: ticket-types:manage.
| name required | string <= 255 characters |
| color required | string^#[0-9A-Fa-f]{6}$ |
| source_ids | Array of strings |
{- "name": "VIP",
- "color": "#22AAFF",
- "source_ids": [
- "01JTK5YYE7XXYBQ4VTHY8JC3WJ"
]
}{- "id": "string",
- "customer_id": "string",
- "name": "string",
- "color": "string",
- "sources": [
- {
- "id": "string",
- "customer_id": "string",
- "name": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
], - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}Required scope: ticket-types:read.
| ticketTypeId required | string |
{- "id": "string",
- "customer_id": "string",
- "name": "string",
- "color": "string",
- "sources": [
- {
- "id": "string",
- "customer_id": "string",
- "name": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
], - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}Required scope: ticket-types:manage.
| ticketTypeId required | string |
| name | string <= 255 characters |
| color | string^#[0-9A-Fa-f]{6}$ |
| source_ids | Array of strings |
{- "name": "string",
- "color": "string",
- "source_ids": [
- "string"
]
}{- "id": "string",
- "customer_id": "string",
- "name": "string",
- "color": "string",
- "sources": [
- {
- "id": "string",
- "customer_id": "string",
- "name": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
], - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}Required scope: ticket-sources:manage.
| name required | string <= 255 characters |
{- "name": "string"
}{- "id": "string",
- "customer_id": "string",
- "name": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}Required scope: ticket-sources:read.
| ticketSourceId required | string |
{- "id": "string",
- "customer_id": "string",
- "name": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}Required scope: ticket-sources:manage.
| ticketSourceId required | string |
| name | string <= 255 characters |
{- "name": "string"
}{- "id": "string",
- "customer_id": "string",
- "name": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}{- "data": [
- {
- "id": "string",
- "email": "user@example.com",
- "name": "string",
- "type": 1,
- "customer_id": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
}Required scope: users:read.
| userId required | string |
{- "id": "string",
- "email": "user@example.com",
- "name": "string",
- "type": 1,
- "customer_id": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}{- "data": [
- {
- "id": "string",
- "customer_id": "string",
- "name": "string",
- "location_id": "string",
- "description": "string",
- "dates": [
- {
- "id": "string",
- "event_id": "string",
- "starts_at": "2019-08-24T14:15:22Z",
- "ends_at": "2019-08-24T14:15:22Z",
- "validation_time_start": "2019-08-24T14:15:22Z",
- "validation_time_end": "2019-08-24T14:15:22Z",
- "validation_time_exceptions": [
- {
- "id": "string",
- "ticket_type_id": "string",
- "ticket_source_id": "string",
- "validation_time_start": "2019-08-24T14:15:22Z",
- "validation_time_end": "2019-08-24T14:15:22Z"
}
]
}
], - "ticket_type_ids": [
- "string"
], - "user_ids": [
- "string"
], - "validators": [
- {
- "user_id": "string",
- "ticket_type_ids": [
- "string"
], - "ticket_source_ids": [
- "string"
]
}
], - "offline_validation_enabled": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
}Required scope: events:manage.
| name required | string <= 255 characters |
| location_id required | string |
| description | string or null |
| offline_validation_enabled | boolean or null |
| ticket_type_ids | Array of strings |
required | Array of objects (EventValidator) non-empty |
required | Array of objects (EventDateWrite) non-empty |
{- "name": "string",
- "location_id": "string",
- "description": "string",
- "offline_validation_enabled": true,
- "ticket_type_ids": [
- "string"
], - "validators": [
- {
- "user_id": "string",
- "ticket_type_ids": [
- "string"
], - "ticket_source_ids": [
- "string"
]
}
], - "dates": [
- {
- "id": "string",
- "starts_at": "2019-08-24T14:15:22Z",
- "ends_at": "2019-08-24T14:15:22Z",
- "validation_time_start": "2019-08-24T14:15:22Z",
- "validation_time_end": "2019-08-24T14:15:22Z",
- "validation_exceptions": [
- {
- "ticket_type_id": "string",
- "ticket_source_id": "string",
- "validation_time_start": "2019-08-24T14:15:22Z",
- "validation_time_end": "2019-08-24T14:15:22Z"
}
]
}
]
}{- "id": "string",
- "customer_id": "string",
- "name": "string",
- "location_id": "string",
- "description": "string",
- "dates": [
- {
- "id": "string",
- "event_id": "string",
- "starts_at": "2019-08-24T14:15:22Z",
- "ends_at": "2019-08-24T14:15:22Z",
- "validation_time_start": "2019-08-24T14:15:22Z",
- "validation_time_end": "2019-08-24T14:15:22Z",
- "validation_time_exceptions": [
- {
- "id": "string",
- "ticket_type_id": "string",
- "ticket_source_id": "string",
- "validation_time_start": "2019-08-24T14:15:22Z",
- "validation_time_end": "2019-08-24T14:15:22Z"
}
]
}
], - "ticket_type_ids": [
- "string"
], - "user_ids": [
- "string"
], - "validators": [
- {
- "user_id": "string",
- "ticket_type_ids": [
- "string"
], - "ticket_source_ids": [
- "string"
]
}
], - "offline_validation_enabled": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}Required scope: events:read.
| eventId required | string |
{- "id": "string",
- "customer_id": "string",
- "name": "string",
- "location_id": "string",
- "description": "string",
- "dates": [
- {
- "id": "string",
- "event_id": "string",
- "starts_at": "2019-08-24T14:15:22Z",
- "ends_at": "2019-08-24T14:15:22Z",
- "validation_time_start": "2019-08-24T14:15:22Z",
- "validation_time_end": "2019-08-24T14:15:22Z",
- "validation_time_exceptions": [
- {
- "id": "string",
- "ticket_type_id": "string",
- "ticket_source_id": "string",
- "validation_time_start": "2019-08-24T14:15:22Z",
- "validation_time_end": "2019-08-24T14:15:22Z"
}
]
}
], - "ticket_type_ids": [
- "string"
], - "user_ids": [
- "string"
], - "validators": [
- {
- "user_id": "string",
- "ticket_type_ids": [
- "string"
], - "ticket_source_ids": [
- "string"
]
}
], - "offline_validation_enabled": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}Required scope: events:manage.
| eventId required | string |
| name | string <= 255 characters |
| location_id | string |
| description | string or null |
| offline_validation_enabled | boolean or null |
| ticket_type_ids | Array of strings |
required | Array of objects (EventValidator) non-empty |
Array of objects (EventDateWrite) |
{- "name": "string",
- "location_id": "string",
- "description": "string",
- "offline_validation_enabled": true,
- "ticket_type_ids": [
- "string"
], - "validators": [
- {
- "user_id": "string",
- "ticket_type_ids": [
- "string"
], - "ticket_source_ids": [
- "string"
]
}
], - "dates": [
- {
- "id": "string",
- "starts_at": "2019-08-24T14:15:22Z",
- "ends_at": "2019-08-24T14:15:22Z",
- "validation_time_start": "2019-08-24T14:15:22Z",
- "validation_time_end": "2019-08-24T14:15:22Z",
- "validation_exceptions": [
- {
- "ticket_type_id": "string",
- "ticket_source_id": "string",
- "validation_time_start": "2019-08-24T14:15:22Z",
- "validation_time_end": "2019-08-24T14:15:22Z"
}
]
}
]
}{- "id": "string",
- "customer_id": "string",
- "name": "string",
- "location_id": "string",
- "description": "string",
- "dates": [
- {
- "id": "string",
- "event_id": "string",
- "starts_at": "2019-08-24T14:15:22Z",
- "ends_at": "2019-08-24T14:15:22Z",
- "validation_time_start": "2019-08-24T14:15:22Z",
- "validation_time_end": "2019-08-24T14:15:22Z",
- "validation_time_exceptions": [
- {
- "id": "string",
- "ticket_type_id": "string",
- "ticket_source_id": "string",
- "validation_time_start": "2019-08-24T14:15:22Z",
- "validation_time_end": "2019-08-24T14:15:22Z"
}
]
}
], - "ticket_type_ids": [
- "string"
], - "user_ids": [
- "string"
], - "validators": [
- {
- "user_id": "string",
- "ticket_type_ids": [
- "string"
], - "ticket_source_ids": [
- "string"
]
}
], - "offline_validation_enabled": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}Required scope: tickets:read.
| event_id required | string |
| status | string Enum: "validated" "not_validated" |
| ticket_type_id | string |
| ticket_source_id | string |
| import_id | string |
| search | string <= 255 characters |
| page | integer >= 1 Default: 1 |
| page_size | integer [ 1 .. 100 ] Default: 20 |
{- "data": {
- "event_id": "01JTK6S5Q6Q1X7XSRD4G9VQKAX",
- "tickets": [
- {
- "id": "01JTK7V4HE1XQMBP1DGHQG2JQ7",
- "customer_id": "01JTK6N7YB53RQWMV9QYVVE2S4",
- "ticket_id": "VIP-1001",
- "event_id": "01JTK6S5Q6Q1X7XSRD4G9VQKAX",
- "event_date_id": "01JTK6SQ0PQ4VB2THQ0CDYBAXX",
- "ticket_type_id": "01JTK6T74XKXBYM8D6RRETYJAZ",
- "ticket_source_id": "01JTK6TF8EZ4CB77TY6Q5X4TN9",
- "import_id": null,
- "holder": "Alex Morgan",
- "email": "john@example.com",
- "validated_at": null,
- "validated_by": null,
- "is_validated": false,
- "created_at": "2026-04-27T13:03:17.000000Z",
- "updated_at": "2026-04-27T13:03:17.000000Z"
}
], - "total_count": 1,
- "page": 1,
- "page_size": 20,
- "has_more": false
}
}Required scope: tickets:manage.
You can pass multiple event_date_ids to fan out one ticket payload across multiple event days.
The API creates one ticket record per provided event date, reusing the same ticket_id, type, source, and holder/email fields.
| event_id required | string |
| event_date_ids required | Array of strings non-empty |
| ticket_id required | string <= 255 characters |
| ticket_type_id required | string |
| ticket_source_id required | string |
| holder | string or null <= 255 characters |
string or null <email> <= 255 characters |
{- "event_id": "01JTK6S5Q6Q1X7XSRD4G9VQKAX",
- "event_date_ids": [
- "01JTK6SQ0PQ4VB2THQ0CDYBAXX"
], - "ticket_id": "VIP-1001",
- "ticket_type_id": "01JTK6T74XKXBYM8D6RRETYJAZ",
- "ticket_source_id": "01JTK6TF8EZ4CB77TY6Q5X4TN9",
- "holder": "Alex Morgan",
- "email": "john@example.com"
}{- "data": [
- {
- "id": "01JTK7V4HE1XQMBP1DGHQG2JQ7",
- "customer_id": "01JTK6N7YB53RQWMV9QYVVE2S4",
- "ticket_id": "VIP-1001",
- "event_id": "01JTK6S5Q6Q1X7XSRD4G9VQKAX",
- "event_date_id": "01JTK6SQ0PQ4VB2THQ0CDYBAXX",
- "ticket_type_id": "01JTK6T74XKXBYM8D6RRETYJAZ",
- "ticket_source_id": "01JTK6TF8EZ4CB77TY6Q5X4TN9",
- "import_id": null,
- "holder": "Alex Morgan",
- "email": "john@example.com",
- "validated_at": null,
- "validated_by": null,
- "is_validated": false,
- "created_at": "2026-04-27T13:03:17.000000Z",
- "updated_at": "2026-04-27T13:03:17.000000Z"
}
], - "message": "Ticket inserted successfully"
}Required scope: tickets:manage.
Send multiple ticket payloads in tickets, and multiple event_date_ids when needed.
The API creates one ticket record for each (ticket, event_date_id) combination.
Example: 10 tickets x 3 event dates = 30 inserted ticket rows.
| event_id required | string |
| event_date_ids required | Array of strings non-empty |
required | Array of objects (TicketWrite) non-empty |
{- "event_id": "01JTK6S5Q6Q1X7XSRD4G9VQKAX",
- "event_date_ids": [
- "01JTK6SQ0PQ4VB2THQ0CDYBAXX"
], - "tickets": [
- {
- "ticket_id": "VIP-1001",
- "ticket_type_id": "01JTK6T74XKXBYM8D6RRETYJAZ",
- "ticket_source_id": "01JTK6TF8EZ4CB77TY6Q5X4TN9",
- "holder": "Alex Morgan",
- "email": "john@example.com"
}
]
}{- "data": [
- {
- "id": "01JTK7V4HE1XQMBP1DGHQG2JQ7",
- "customer_id": "01JTK6N7YB53RQWMV9QYVVE2S4",
- "ticket_id": "VIP-1001",
- "event_id": "01JTK6S5Q6Q1X7XSRD4G9VQKAX",
- "event_date_id": "01JTK6SQ0PQ4VB2THQ0CDYBAXX",
- "ticket_type_id": "01JTK6T74XKXBYM8D6RRETYJAZ",
- "ticket_source_id": "01JTK6TF8EZ4CB77TY6Q5X4TN9",
- "import_id": null,
- "holder": "Alex Morgan",
- "email": "john@example.com",
- "validated_at": null,
- "validated_by": null,
- "is_validated": false,
- "created_at": "2026-04-27T13:03:17.000000Z",
- "updated_at": "2026-04-27T13:03:17.000000Z"
}
], - "message": "Tickets inserted successfully"
}Required scope: tickets:manage.
| ticketId required | string |
| ticket_id | string <= 255 characters |
| event_id | string |
| ticket_type_id | string |
| ticket_source_id | string or null |
| holder | string or null <= 255 characters |
string or null <email> <= 255 characters |
{- "ticket_id": "string",
- "event_id": "string",
- "ticket_type_id": "string",
- "ticket_source_id": "string",
- "holder": "string",
- "email": "user@example.com"
}{- "id": "string",
- "customer_id": "string",
- "ticket_id": "string",
- "event_id": "string",
- "event_date_id": "string",
- "ticket_type_id": "string",
- "ticket_source_id": "string",
- "import_id": "string",
- "holder": "string",
- "email": "user@example.com",
- "validated_at": "2019-08-24T14:15:22Z",
- "validated_by": "string",
- "is_validated": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}Required scope: tickets:manage.
Send ticket record id values (ULIDs), not ticket_id business codes.
| eventId required | string |
| ticket_ids required | Array of strings [ 1 .. 1000 ] items [ items <= 255 characters ] Ticket record IDs (ULIDs). |
{- "ticket_ids": [
- "01JTK7V4HE1XQMBP1DGHQG2JQ7",
- "01JTK7V5P73K9DE5M4N7WQAB2C"
]
}{- "message": "Tickets deleted successfully"
}Required scope: tickets:import.
| event_id required | string |
| event_date_ids required | Array of strings non-empty |
| file_name required | string <= 255 characters |
required | Array of objects (TicketWrite) non-empty |
{- "event_id": "string",
- "event_date_ids": [
- "string"
], - "file_name": "string",
- "tickets": [
- {
- "ticket_id": "string",
- "ticket_type_id": "string",
- "ticket_source_id": "string",
- "holder": "string",
- "email": "user@example.com"
}
]
}{- "data": {
- "id": "string",
- "event_id": "string",
- "file_name": "string",
- "tickets_count": 0,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}, - "message": "string"
}Required scope: tickets:read.
| eventId required | string |
{- "data": [
- {
- "id": "string",
- "event_id": "string",
- "file_name": "string",
- "tickets_count": 0,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
}{- "data": {
- "current_period": {
- "validated_tickets": 1234,
- "total_allowance": 10000,
- "period_start": "2026-04-01T00:00:00+00:00",
- "period_end": "2026-04-30T23:59:59+00:00",
- "imported_tickets": 2250
}, - "daily_usage": [
- {
- "date": "2026-04-25",
- "validated_tickets": 300,
- "imported_tickets": 600
}
], - "event_breakdown": [
- {
- "event_name": "Spring Festival",
- "event_date": "2026-04-28T19:00:00+00:00",
- "validated_tickets": 543,
- "total_tickets": 1500,
- "validation_rate": 36.2
}
]
}
}