StubHub API endpoint
Lists paginated events in a single StubHub category (a sport league, team, or a top-level vertical -- use stubhub-categories to discover category ids) filtered by location, radius, and date range. A zero count with an empty events list is a valid no-results response.
/stubhub/category-eventsQuery parameters:
category_id: required. A category id from stubhub_navigation_categories (the full navigation tree) or stubhub_categories (the currently listed location/date-scoped feed).lat: required. Latitude, -90 to 90 -- results and distances are location-dependent.lon: required. Longitude, -180 to 180.from: optional. Start of the date range -- RFC3339 (2026-09-15T00:00:00Z) or a bare date (2026-09-15). Defaults to now.to: optional. End of the date range, same accepted formats as from. Defaults to 14 days after from. Must be after from, and the range must not exceed 365 days.page: optional. One-based result page. Defaults to 1.radius_miles: optional. Search radius in miles from lat/lon, 1 to 500. Defaults to 50.include_parking_passes: optional. When true, also includes parking-pass-only listings (name prefixed PARKING PASSES ONLY) alongside regular event listings. Defaults to false.Returns a paginated list of events in the given category, each with its venue, distance from the given location, date/time, and ticket-listing availability. total_count is the full match count across all pages. A zero count with an empty events list is a valid no-results response.
Notable response behavior:
stubhub_categories for category-level minimum prices, or stubhub_explore for per-event fromPrice-style discovery.page_size reflects StubHub's own fixed page size (currently 20) and is not caller-controlled.stubhub_explore/stubhub_categories/stubhub_trending).| Field | Filled in, of 20 checked | Values in the sample |
|---|---|---|
| event_id | 20 | |
| name | 20 | “Vince Giordano and the Nighthawks” and 19 other values |
| url | 20 | stubhub.com |
| venue_name | 20 | “Birdland Theater at Birdland - Complex” and 19 other values |
| venue_city | 20 | New York (11), Brooklyn (6), Red Bank (2) and 1 more |
| venue_state | 20 | NY (17), NJ (2), CT (1) |
| country | 20 | USA in all 20 |
| distance_miles | 20 | 3 mi (7), 2 mi (5), 1 mi (4) and 3 more |
| day_of_week | 20 | Tue in all 20 |
| date | 20 | Oct 13 in all 20 |
| time | 20 | 7:00 PM (12), 7:30 PM (4), 6:00 PM (2) and 2 more |
| is_date_confirmed | 20 | true in 20 of 20 |
| is_time_confirmed | 20 | true in 20 of 20 |
| has_active_listings | 20 | true in 20 of 20 |
| is_multiday_event | 20 | true in 0 of 20 |
| is_parking_pass | 20 | true in 0 of 20 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| category_id | integer | Yes | A category id from stubhub-categories | 3 | |
| lat | number | Yes | Latitude, -90 to 90 | 40.7127753 | |
| lon | number | Yes | Longitude, -180 to 180 | -74.0059728 | |
| from | string | No | now | Start of the date range: RFC3339 or a bare date (e.g. 2026-09-15). Defaults to now. | 2026-09-15 |
| to | string | No | 14 days after from | End of the date range, same accepted formats as from. Defaults to 14 days after from. | 2026-09-29 |
| page | integer | No | One-based result page Minimum: 1. | ||
| radius_miles | integer | No | Search radius in miles from lat/lon Minimum: 1. Maximum: 500. | ||
| include_parking_passes | boolean | No | Also include parking-pass-only listings alongside regular events | ||
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/stubhub/category-events?category_id=3&lat=40.7127753&lon=-74.0059728&page=1&include_parking_passes=true" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"category_id": 3,
"page": 1,
"page_size": 20,
"total_count": 1588,
"count": 20,
"source_url": "https://www.stubhub.com/nfl-tickets/grouping/121?method=GetFilteredEvents&categoryId=3&...",
"fetched_at": "2026-09-15T08:37:21Z",
"events": [
{
"event_id": 161280784,
"name": "ERRA",
"url": "https://www.stubhub.com/erra-sayreville-tickets-9-15-2026/event/161280784/",
"venue_name": "Starland Ballroom",
"venue_city": "Sayreville",
"venue_state": "NJ",
"country": "USA",
"distance_miles": "26 mi",
"day_of_week": "Tue",
"date": "Sep 15",
"time": "6:30 PM",
"is_date_confirmed": true,
"is_time_confirmed": true,
"has_active_listings": true,
"is_multiday_event": false,
"is_parking_pass": false
}
]
}
}Request schema
No body schema
Response schema
#/definitions/stubhub.categoryEventsResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | stubhub.CategoryEventsResponse | No | ||||
| data.category_id | integer | No | ||||
| data.count | integer | No | 20 | |||
| data.events | array | No | ||||
| data.events[].country | string | No | USA | |||
| data.events[].date | string | No | Sep 15 | |||
| data.events[].day_of_week | string | No | Tue | |||
| data.events[].distance_miles | string | No | 26 mi | |||
| data.events[].event_id | integer | No | 161280784 | |||
| data.events[].has_active_listings | boolean | No | ||||
| data.events[].is_date_confirmed | boolean | No | ||||
| data.events[].is_multiday_event | boolean | No | ||||
| data.events[].is_parking_pass | boolean | No | ||||
| data.events[].is_time_confirmed | boolean | No | ||||
| data.events[].name | string | No | ERRA | |||
| data.events[].time | string | No | 6:30 PM | |||
| data.events[].url | string | No | ||||
| data.events[].venue_city | string | No | Sayreville | |||
| data.events[].venue_name | string | No | Starland Ballroom | |||
| data.events[].venue_state | string | No | NJ | |||
| data.fetched_at | string | No | ||||
| data.page | integer | No | 1 | |||
| data.page_size | integer | No | 20 | |||
| data.source_url | string | No | ||||
| data.total_count | integer | No | 1588 | |||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/stubhub/category-events?category_id=3&lat=40.7127753&lon=-74.0059728&page=1&include_parking_passes=true" \
-H "x-api-key: $CRAWLORA_API_KEY"