Skip to navigation

Getting Started

The TTG API lets you browse live entertainment events, check real-time inventory, and complete ticket purchases on behalf of your customers. This guide covers everything you need to make your first successful API call.

This site documents the TodayTix Group (TTG) Storefront API v3. For widget setup and whitelabel checkout, see developers.todaytixgroup.com. Moving from an older TTG API? Start with Why Migrate to v3.

Prerequisites

Before you start, you’ll need two things:

  • API key — sk_test_* for staging, sk_live_* for production (see Managing API Keys below)
  • Retailer ID — your retailer identifier, used in the X-TT-Retailer header (provided during onboarding)

Managing API Keys

Generate and manage API keys from the Settings page in the partner portal:

  1. Log in to the portal.
  2. Click your name in the bottom left to open Settings.
  3. Generate an API key and copy it to a secure location — the full key is only shown once.
  4. From Settings you can manage and revoke keys at any time.

Start in staging. Your onboarding contact will create your portal account on staging first. Once your integration is working, request a production account to generate live keys.

Each person who needs portal access requires their own account. Provide a first name, last name, and email address for each user to your onboarding contact.

Base URLs

EnvironmentURLWhen to use
Staginghttps://stg.ttix.ioDevelopment and testing
Productionhttps://api.ttix.ioLive inventory and transactions

Authentication & Headers

Every request takes these headers:

HeaderRequiredDescription
X-TT-API-KeyYesYour API key (sk_test_* or sk_live_*)
X-TT-RetailerYesYour retailer ID: a retailer your key was issued for. Affects pricing and inventory visibility.
X-TT-PlatformYesOne of: ios, android, web, api. Send api from a server-to-server integration.
X-Correlation-IDNoYour own ID for the request (e.g. req_abc123xyz). It comes back in the X-Correlation-ID response header; without one, the API makes one up and returns it. Quote it when you contact support.

Send request bodies as JSON, with Content-Type: application/json. A body sent any other way returns 400 INVALID_REQUEST.

POST /api/v3/orders also takes two optional headers:

HeaderDescription
Idempotency-KeyA UUID v4 you make for each attempt to buy, so a retry never buys twice. See Idempotency Keys.
X-TT-Device-DataThe customer’s browser or device, as JSON, for card fraud checks. See Paying.

Keep your keys safe. Store API keys in environment variables or a secrets manager — never commit them to source control or expose them in client-side code.

Make Your First Request

Confirm your credentials work by listing your available markets — no additional parameters required:

curl -s https://stg.ttix.io/api/v3/locations \
-H "X-TT-API-Key: sk_test_YOUR_KEY" \
-H "X-TT-Retailer: YOUR_RETAILER_ID" \
-H "X-TT-Platform: api"

A successful response looks like:

{
"data": [
{"id": "2", "name": "London", "country": "GB", "availableCurrencies": ["GBP"]},
{"id": "1", "name": "New York", "country": "US", "availableCurrencies": ["USD"]}
],
"pagination": {"limit": 50, "offset": 0, "total": 2}
}

Troubleshooting

ErrorCauseFix
401 UNAUTHORIZEDNo X-TT-API-Key headerSend your API key in X-TT-API-Key
401 INVALID_API_KEYThe API key is wrong or revoked, or X-TT-Retailer is missing or isn’t a retailer your key was issued forCheck both headers. The retailer header is checked as part of the key, so a missing retailer looks like a bad key.
400 MISSING_REQUIRED_HEADERNo X-TT-Platform headerSend X-TT-Platform
400 INVALID_FIELD_VALUEX-TT-Platform has a value the API doesn’t recognizeSend one of ios, android, web, api

Every other code is in Error Handling.

Next Steps

  • API Conventions — Response envelopes, money format, timezones, IDs, pagination, and forward-compatibility guidance.
  • Purchase Flow — End-to-end walkthrough from browsing events to completing a checkout.
  • Inventory Types — Understanding assigned seats, general admission, and pricing.
  • Error Handling — Error format, common codes, retry strategies, and idempotency.