Why Migrate to the v3 API
The v3 API is TTG’s single, actively developed integration surface. The legacy APIs on the legacy portal are frozen — they still work, but no new features, inventory types, or fixes land there. This page covers what you gain by moving.
Benefits at a Glance
What You Gain
One API, not several
Legacy integrations stitch together separate services for inventory, baskets, checkout, and pricing. v3 is a single API surface — one base URL, one auth model, one consistent request and response shape from browsing occurrences to placing an order. Fewer moving parts, less glue code, fewer edge cases to handle.
Modern authentication
v3 uses API keys with separate test (sk_test_*) and live (sk_live_*) credentials. Generate, rotate, and revoke keys yourself from the partner portal — no support ticket needed. Test keys run against staging and never move real money, so you can build and verify safely before switching to live.
Structured errors and safe retries
Every error returns a consistent, machine-readable shape — a type aligned to the HTTP status and a stable code to switch on, always present. When they apply, a param points at the offending field and a details object carries data for recovery. Messages are human-readable and localized (Accept-Language), but you never have to parse prose to know what happened.
Order submission (POST /orders) takes an Idempotency-Key, so a network timeout is safe to retry: the same key returns the existing order instead of charging twice. Combined with clear retryable-vs-not guidance per error type, integrations recover cleanly instead of guessing.
Richer pricing and inventory
v3 exposes pricing and inventory detail the legacy availability endpoint never returned:
- Multiple price options per item — Adult, Child, Senior and more, on general admission and assigned seats. Legacy returned a single flat price per date.
- Multiple currencies — request a currency with
?currency=on reads, or set it on the cart, and get prices in what your customer pays in, where the event supports it. - Discounts in the browse step — when an item is discounted,
listPriceshows the original for a strikethrough, so you can render “was 125” without extra calls. - Seat attributes — items carry tags like restricted view, wheelchair accessible, or premium, each categorized so you can badge them consistently.
- Add-ons (Extras) — sell merchandise, drinks, or parking alongside tickets in the same cart.
- The same inventory we sell — v3 reads the same live inventory that powers TTG’s own apps, not a separate partner feed that can drift. What you see is what we see, behind a short cache measured in a couple of minutes.
Consistent money and time formats
Every amount is an integer in minor units with an explicit currency ({ "amount": 8500, "currency": "USD" }) — no decimal ambiguity, no guessing which currency applies. Every timestamp is ISO 8601 with a timezone offset (2026-03-15T19:30:00-05:00), so there’s nothing to reassemble from separate date and time fields.
Access to what ships next
New inventory types, pricing capabilities, and product features are built on v3 only. The legacy APIs are frozen — staying on them means the roadmap moves without you.
Documentation that stays correct
v3 reference docs are generated directly from the live API, so they never drift from what the endpoints actually return. The legacy portal is a manually uploaded snapshot — fields can change in the service without the docs catching up.
Built to last
The legacy capability APIs are on a retirement path. The migration is coming either way — doing it now, on your own schedule, beats a forced deadline later.
Next Steps
- Get set up — Getting Started covers auth, headers, and base URLs.
- Map your endpoints — Availability → Occurrences walks through migrating the browse step field by field.
- See the full flow — Purchase Flow shows browse → cart → checkout end to end.
Questions about migrating? Contact partners@todaytixgroup.com.