Tickets API
Issue and revoke tickets, and query them by guest or type.
Assign and query tickets for guests. All endpoints require the standard authentication headers. Write endpoints require the tickets:write scope; read endpoints require tickets:read.
POST /addTicket
Creates a ticket for a guest. If a ticket of the same type already exists for this guest it is overwritten (upsert behaviour). Requires tickets:write.
Request body fields
| Field | Type | Required | Description |
|---|---|---|---|
userEmail |
string | ✓ | Email address of the guest to assign the ticket to |
ticketType |
string | ✓ | Ticket type identifier (e.g. "ENTRY", "VIP", "WORKSHOP") |
sessionId |
string | ID of a specific session this ticket grants access to. Omit or pass "" for general admission |
| Status | Response body | Description |
|---|---|---|
200 OK |
Ticket created successfully. |
Ticket was created or updated |
400 Bad Request |
The request must include userEmail and ticketType in the body. |
userEmail or ticketType is missing |
500 Internal Server Error |
Error creating ticket for the guest. |
Unexpected server error |
Plus the standard auth errors (400/403/404/408/429) - see Authentication.
Example request
curl "https://api.event-vault.com/addTicket" \
-X POST \
-H "Content-Type: application/json" \
-H "x-api-key: <your-api-key>" \
-H "x-client-id: <your-client-id>" \
-H "x-event-id: <your-event-id>" \
-H "x-timestamp: $(date +%s%3N)" \
-d '{
"userEmail": "[email protected]",
"ticketType": "ENTRY",
"sessionId": ""
}'
POST /removeTicket
Deletes a specific ticket from a guest. Both the email address and ticket type must match an existing ticket. Requires tickets:write.
Request body fields
| Field | Type | Required | Description |
|---|---|---|---|
userEmail |
string | ✓ | Email address of the guest whose ticket should be removed |
ticketType |
string | ✓ | Type of the ticket to remove; must match the ticketType used when created |
| Status | Response body | Description |
|---|---|---|
200 OK |
Ticket removed successfully. |
Ticket was deleted |
400 Bad Request |
The request must include userEmail and ticketType in the body. |
userEmail or ticketType is missing |
404 Not Found |
Ticket not found for the user. |
No matching ticket exists for this guest and type |
500 Internal Server Error |
Error removing ticket for the guest. |
Unexpected server error |
Example request
curl "https://api.event-vault.com/removeTicket" \
-X POST \
-H "Content-Type: application/json" \
-H "x-api-key: <your-api-key>" \
-H "x-client-id: <your-client-id>" \
-H "x-event-id: <your-event-id>" \
-H "x-timestamp: $(date +%s%3N)" \
-d '{
"userEmail": "[email protected]",
"ticketType": "ENTRY"
}'
GET /getGuestTickets
Returns all tickets assigned to a specific guest. The guest email is passed as a query parameter. Requires tickets:read.
Query parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
userEmail |
string | ✓ | Email address of the guest whose tickets to retrieve |
Response body (JSON array)
[
{
"EMAIL": "[email protected]",
"TIER": "ENTRY",
"sessionId": ""
}
]
Example request
curl "https://api.event-vault.com/getGuestTickets?userEmail=jane.doe%40example.com" \
-H "x-api-key: <your-api-key>" \
-H "x-client-id: <your-client-id>" \
-H "x-event-id: <your-event-id>" \
-H "x-timestamp: $(date +%s%3N)"
GET /getTicketsByType
Returns all tickets of a specific type for the event. Useful for checking how many guests hold a particular tier. The ticket type is passed as a query parameter. Requires tickets:read.
Query parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
ticketType |
string | ✓ | Ticket type to filter by (e.g. "ENTRY", "VIP") |
Response body (JSON array)
[
{
"EMAIL": "[email protected]",
"TIER": "VIP",
"sessionId": ""
}
]
Example request
curl "https://api.event-vault.com/getTicketsByType?ticketType=VIP" \
-H "x-api-key: <your-api-key>" \
-H "x-client-id: <your-client-id>" \
-H "x-event-id: <your-event-id>" \
-H "x-timestamp: $(date +%s%3N)"
GET /getAllTickets
Returns all tickets for the event across all guests and ticket types. No request body or query parameters required. Requires tickets:read.
Response body (JSON array)
[
{
"EMAIL": "[email protected]",
"TIER": "ENTRY",
"sessionId": ""
}
]
Example request
curl "https://api.event-vault.com/getAllTickets" \
-H "x-api-key: <your-api-key>" \
-H "x-client-id: <your-client-id>" \
-H "x-event-id: <your-event-id>" \
-H "x-timestamp: $(date +%s%3N)"