API Overview
Learn the core concepts of the Session Services REST API, including authentication, response formats, and error handling.
The Session Services API is a RESTful API that accepts and returns JSON. It's the programmatic foundation for integrating our ticketing and event management capabilities into your applications.
This page covers the core concepts you need to know. For a complete, interactive reference of all endpoints, see our full API documentation.
View Full API Reference →
Base URL
All API requests should be made to the following base URL:
https://api.session.servicesAuthentication & Multi-Tenancy
The API uses two primary headers for authentication and data routing.
Tenant ID (Required)
All API requests must include a tenant identifier in the x-tenant-id
header. This ensures proper data isolation and routing in our multi-tenant
architecture.
# This public request requires a tenant ID
curl https://api.session.services/events \
-H "x-tenant-id: your-tenant-id"Bearer Tokens (Authenticated Requests)
Endpoints that manage data or access private information require a JWT Bearer
Token. Tokens are obtained from the /auth/login endpoint and should be passed in
the Authorization header.
# This protected request requires both a tenant ID and a Bearer Token
curl https://api.session.services/... \
-H "x-tenant-id: your-tenant-id" \
-H "Authorization: Bearer <your-jwt-token>"Response Format
All responses are JSON-encoded and wrap data in an object with the resource type as the key.
Single Resources
A request for a single resource returns a nested object.
{
"event": {
"id": "evt_123",
"name": "Example Event"
}
}Collections of Resources
A request for a list of resources returns a data array. The key matches the resource
type (e.g., events, orders, users).
{
"events": [
{ "id": "evt_123", "name": "Event 1" },
{ "id": "evt_456", "name": "Event 2" }
],
"cursor": "eyJwayI6IkVWRU5UIiwic2siOiIyMDI0LTEyLTE1VDEwOjAwOjAwWiJ9"
}Error Handling
The API uses standard HTTP status codes. When an error occurs, the response body will contain a JSON object with details.
Error Response Body
{
"message": "Error description",
"statusCode": 400,
"issues": [
{
"path": ["field"],
"message": "Validation error details"
}
]
}