Session Services
Documentation

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.services

Authentication & 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"
    }
  ]
}