Documentation

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"). Case-sensitive: use the same spelling when removing the ticket
sessionId string ID of a specific session this ticket grants access to. Must be a session on this event. Omit or pass "" for general admission
Responses
Status Response body Description
200 OK Ticket created successfully. Ticket was created or updated. Upgrades to JSON when there are warnings / ignoredFields - see Field Types
400 Bad Request { "error": "Invalid request body", "details": [...] } userEmail or ticketType is missing, userEmail is not a valid address, or sessionId doesn’t match a session on this event
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
Responses
Status Response body Description
200 OK Ticket removed successfully. Ticket was deleted
400 Bad Request { "error": "Invalid request body", "details": [...] } userEmail or ticketType is missing, or userEmail is not a valid address
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)

Tickets are stored with vCard-style uppercase keys; userEmail and ticketType are mirrored alongside them so the read shape matches what the write endpoints accept. Email addresses are trimmed and lowercased on write, and looked up case-insensitively on read.

[
  {
    "EMAIL": "[email protected]",
    "TIER": "ENTRY",
    "userEmail": "[email protected]",
    "ticketType": "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",
    "userEmail": "[email protected]",
    "ticketType": "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",
    "userEmail": "[email protected]",
    "ticketType": "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)"