Skip to main content

Async Python client for TicketsData API

Project description

🧩 ticketsdata-client

Async Python SDK for TicketsData.com
Supports all marketplaces: Ticketmaster, StubHub, Gametime, SeatGeek, TickPick, and VividSeats with one unified interface.

Every SDK response is automatically tagged with:

  • platform
  • event_url
  • optional mode / qty
  • http_status
  • started_at
  • response_ms
  • and the untouched API payload under result

🚀 Features

  • Async + concurrent — powered by aiohttp, optimized for high throughput
  • Multi-platform support — fetch from all major ticketing marketplaces
  • Automatic metadata tagging — platform + timing info added to each result
  • Configurable concurrency — control how many requests run in parallel
  • Retry & timeout logic built in
  • Flexible job loading — JSON, DB, queues, CSV

⚙️ Installation

pip install ticketsdata-client

🧠 Quick Usage

import asyncio
import json
from ticketsdata_client import TicketsDataClient

async def main():
    client = TicketsDataClient(
        username="YOUR_EMAIL",
        password="YOUR_PASSWORD",
        concurrency=10,
        timeout=30,
        include_metadata=True
    )

    jobs = [
        {"platform": "ticketmaster", "event_url": "https://www.ticketmaster.com/lady-gaga-the-mayhem-ball-boston-massachusetts-03-29-2026/event/01006323DE0B7BE1"},
        {"platform": "stubhub",     "event_url": "https://www.stubhub.com/sabrina-carpenter-los-angeles-tickets-11-23-2025/event/157413810/"},
        {"platform": "seatgeek",    "event_url": "https://seatgeek.com/sabrina-carpenter-tickets/los-angeles-california-crypto-com-arena-2025-11-23-7-pm/concert/17400739"},
        {"platform": "vividseats",  "event_url": "https://www.vividseats.com/sabrina-carpenter-tickets-los-angeles-cryptocom-arena-11-23-2025--concerts-pop/production/5599667"},
        {"platform": "tickpick",    "event_url": "https://www.tickpick.com/buy-playboi-carti-tickets-state-farm-arena-ga-12-1-25-7pm/7364698/"},
        {"platform": "gametime",    "event_url": "6908d769dfe85fe8ad73cd62", "mode": "all"}
    ]

    results = await client.fetch_many(jobs)

    for r in results:
        ##Valid JSON with indention per each event
        print(json.dumps(r, indent=2, ensure_ascii=False))
        

    await client.close()

asyncio.run(main())

🧾 Example jobs.json

[
  {"platform": "ticketmaster", "event_url": "https://www.ticketmaster.com/lady-gaga-the-mayhem-ball-boston-massachusetts-03-29-2026/event/01006323DE0B7BE1"},
  {"platform": "stubhub",     "event_url": "https://www.stubhub.com/sabrina-carppenter-los-angeles-tickets-11-23-2025/event/157413810/"},
  {"platform": "seatgeek",    "event_url": "https://seatgeek.com/sabrina-carpenter-tickets/los-angeles-california-crypto-com-arena-2025-11-23-7-pm/concert/17400739"},
  {"platform": "vividseats",  "event_url": "https://www.vividseats.com/sabrina-carpenter-tickets-los-angeles-cryptocom-arena-11-23-2025--concerts-pop/production/5599667"},
  {"platform": "tickpick",    "event_url": "https://www.tickpick.com/buy-playboi-carti-tickets-state-farm-arena-ga-12-1-25-7pm/7364698/"},
  {"platform": "gametime",    "event_url": "6908d769dfe85fe8ad73cd62", "mode": "all"}
]

Load from file:

import json, asyncio
from ticketsdata_client import TicketsDataClient

async def main():
    with open("jobs.json") as f:
        jobs = json.load(f)

    client = TicketsDataClient(username="YOUR_EMAIL", password="YOUR_PASSWORD", include_metadata=True)
    results = await client.fetch_many(jobs)
    print(results)

    await client.close()

asyncio.run(main())

💡 Understanding concurrency

Concurrency controls how many API requests run simultaneously.

client = TicketsDataClient(concurrency=10)

This allows 10 requests in parallel, greatly improving throughput.

Recommended settings

  • 3–5 → safe, low quota usage
  • 10–20 → optimal speed
  • 30+ → only on dedicated plans

Shared plans (Starter/Pro) include soft concurrency limits to ensure stable performance.
Dedicated environments remove these limits entirely.


⚙️ Parameters

Parameter Type Default Description
username str required TicketsData username
password str required TicketsData password
base_url str "https://ticketsdata.com/fetch" API endpoint
concurrency int 5 Number of parallel requests
timeout int 25 Timeout per request
max_retries int 2 Retry count for network errors
include_metadata bool True Attach platform + timing metadata to results

📚 Result Format (inside "result")

{
  "platform": "ticketmaster",
  "event_url": "https://www.ticketmaster.com/...",
  "http_status": 200,
  "response_ms": 1388,
  "result": {
    "status": 200,
    "body": {
      "status_code": 200,
      "event_id": "18006342AD8BE4D8",
      "items": { "totalListings": 1432, "offers": [...] },
      "response_s": 0.92,
      "quota_remaining": 9924
    },
    "response_s": 0.923
  }
}

🧩 License

MIT © TicketsData.com


🧠 Support

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ticketsdata_client-1.0.3.tar.gz (5.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ticketsdata_client-1.0.3-py3-none-any.whl (6.2 kB view details)

Uploaded Python 3

File details

Details for the file ticketsdata_client-1.0.3.tar.gz.

File metadata

  • Download URL: ticketsdata_client-1.0.3.tar.gz
  • Upload date:
  • Size: 5.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for ticketsdata_client-1.0.3.tar.gz
Algorithm Hash digest
SHA256 159d88690af7f813ea467c79145dbbf8d5bed79a5da169ee889db6480ac2c8fe
MD5 4df105e095a567cad2390f4ed37a02fa
BLAKE2b-256 4ef06f4e6d2297adece8e2ffdecb7c3b9f6645ea6174ca1bb72107bcc036180a

See more details on using hashes here.

File details

Details for the file ticketsdata_client-1.0.3-py3-none-any.whl.

File metadata

File hashes

Hashes for ticketsdata_client-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 4d485f0328f2548b75bae8bf6b67473c4993909e86e23709deb1607a475d6d1c
MD5 1fd5331ccfb072a9f2ecb6cea40cf345
BLAKE2b-256 298f6ab10d20adf1c94de0d6492151c1d422ee416cee3793d9a5ca9b77237cfc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page