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:
platformevent_url- optional
mode/qty http_statusstarted_atresponse_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
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:
print(r)
print("-----")
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
- Website: https://ticketsdata.com
- Email: info@ticketsdata.com
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ticketsdata_client-1.0.2.tar.gz.
File metadata
- Download URL: ticketsdata_client-1.0.2.tar.gz
- Upload date:
- Size: 5.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c9464af8d2ba81ea6034ca23237b135d5cc6f3c37b96362e79db6857fe981c7d
|
|
| MD5 |
4536eb1557dcd9bc178f4ba2b2962948
|
|
| BLAKE2b-256 |
e6eceb7861f59e158b558852ae5a0e42184bf79338ce6d5f04c2fc7a02b8e7e9
|
File details
Details for the file ticketsdata_client-1.0.2-py3-none-any.whl.
File metadata
- Download URL: ticketsdata_client-1.0.2-py3-none-any.whl
- Upload date:
- Size: 6.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
36861f2ec1b34a6f9539e31e12505325462fe730f235b949e70bf4261277f9ec
|
|
| MD5 |
5c07f9f392260cff8b622c8873dc8516
|
|
| BLAKE2b-256 |
f9011853c0d7faa2fc033459ea4ed80f9ea9e226206370ede916aa8a373d3d4f
|