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.services
Authentication & Multi-Tenancy
The API uses request headers for tenant routing, version pinning, and authentication.
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: tnt_01jqpj2t2kfvmstt6f6tzkbaf2"
API Version Header
The API reference currently documents version 2025-09-22. To pin behavior,
send the x-api-version header:
curl https://api.session.services/events \
-H "x-tenant-id: tnt_01jqpj2t2kfvmstt6f6tzkbaf2" \
-H "x-api-version: 2025-09-22"
Bearer Tokens (Authenticated Requests)
Endpoints that manage data or access private information require a JWT Bearer
Token passed in the Authorization header.
Tokens are issued by Session Services OpenAuth. Contact the Session Services team to provision credentials for your tenant integration.
# This protected request requires both a tenant ID and a Bearer Token
curl https://api.session.services/... \
-H "x-tenant-id: tnt_01jqpj2t2kfvmstt6f6tzkbaf2" \
-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_01jps5cgsenjrazw6wswmyspa3",
"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_01jps5cgsenjrazw6wswmyspa3", "name": "Event 1" },
{ "id": "evt_01jps5cgsenjrazw6wswmyspa3", "name": "Event 2" }
],
"before": null,
"after": "eyJ2ZXJzaW9uIjoxLCJpbnRlbnQiOnsic291cmNlIjoiZGVtbyJ9LCJwb3MiOnsicHJpbWFyeUtleSI6ImV2dF8wMSJ9fQ",
"limit": 20
}
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"
}
]
}