AXS Scraper - US Events, Venues and Ticketing Status
Pricing
from $2.20 / 1,000 results
AXS Scraper - US Events, Venues and Ticketing Status
Extract US AXS events, venues, performers, series and promotions. Get dates, venue addresses and public ticketing status; inventory requires an invitation. Pay per delivered row plus a start fee.
Pricing
from $2.20 / 1,000 results
Rating
0.0
(0)
Developer
kane liu
Maintained by CommunityActor stats
1
Bookmarked
11
Total users
6
Monthly active users
14 hours ago
Last modified
Categories
Share
AXS Scraper
Extract US AXS events, venues and ticketing status as structured rows for calendars, research and alerts.
- Event titles, dates, venues, addresses and public sale status.
- Performers, series, promotions, genres and catalog URLs.
- On-sale configuration and invitation-only inventory snapshots, when available.
- Pay $3.00 per 1,000 delivered rows on the Free plan, plus a start fee.
What does AXS Scraper do?
AXS Scraper collects public information from AXS.com. It does not buy or reserve tickets and is not affiliated with AXS or AEG. The supported catalog market is us.
- Find events:
home,search,category,detailandvenue. - Find entities:
performer,series,offers,genres,cataloganddiscovery. - Check ticketing:
onsale,inventoryandwatch. - Optional ticket-offer rows:
includeOffersis off by default. Each additional row is billed at the same rate and counts toward the input's row limit.
What data can you extract from AXS?
Every row has rowType and a string id. The tables show selected fields, not a promise that every source supplies them. Catalog rows use the entity's row type with recordType: "catalog"; they contain IDs and URLs rather than full details.
Events (event)
| Field | Description | Example |
|---|---|---|
eventId | AXS event ID | 1445907 |
title | Event name | Example concert |
url | Event page | https://www.axs.com/events/1445907 |
eventDateTimeUTC | Start time in UTC | 2026-12-12T02:00:00Z |
statusLabel | Public sale label | On Sale |
priceBasis | How to interpret prices | unavailable |
Venues (venue)
| Field | Description | Example |
|---|---|---|
venueName | Venue name | Example Hall |
address | Venue address fields | {"locality":"Denver","country":"US"} |
phones | Public contact numbers, if shown | [] |
emails | Public email addresses, if shown | [] |
leadAbsences | Reasons contact fields are empty | {"emails":"not_exposed_by_source"} |
Performers (performer)
| Field | Description | Example |
|---|---|---|
performerId | Artist ID | 9 |
name | Public artist name | Example Band |
Series (series)
| Field | Description | Example |
|---|---|---|
seriesId | Series ID | 12 |
Promotions (offer)
| Field | Description | Example |
|---|---|---|
offerId | Promotion ID, not a seat ID | 1 |
Genres (genre)
| Field | Description | Example |
|---|---|---|
title | Genre label | Rock |
Tours (tour)
| Field | Description | Example |
|---|---|---|
tourId | Tour ID from discovery | 123 |
Sale-status checks (watch)
| Field | Description | Example |
|---|---|---|
availabilityStatus | Public availability label | on_sale |
changedFields | Changes since the previous available check | ["availabilityStatus"] |
becameAvailable | Transition back to sale | true |
recommendedIntervalSec | Suggested time before another check | 180 |
On-sale configuration (onsale)
| Field | Description | Example |
|---|---|---|
ticketUrlKind | Ticket page category | primary |
onsale | Available delivery methods, restrictions and configuration | {} |
Inventory snapshots (inventory)
| Field | Description | Example |
|---|---|---|
inventoryObserved | Whether inventory was observed | true |
inventoryGranularity | Detail level of the observation | price_level |
Ticket offers (ticket_offer)
| Field | Description | Example |
|---|---|---|
parentId | Parent event-level row ID | 1445907 |
offerGranularity | Offer, product or price-level detail | price_level |
availableQuantity | Observed quantity, when supplied | 8 |
How to scrape AXS
- Open AXS Scraper in Apify Console.
- Fill one target field, such as
searchQuerywithconcert. - Set
maxResultsto3for a small first run. - Click Start and wait for completion.
- Download the dataset or read it through the API.
An empty input starts a concert search using the form's example values, capped at 3 rows. It is billed normally. With mode: "auto", a target field selects the mode. Clear the prefilled keyword when switching to another target.
Home
Use home for upcoming events within the scanned pages, not a complete chronological calendar.
Search
Use searchQuery for a keyword. Put locations in city, not in the keyword field.
Category
Choose music, sports, theatre, festival or comedy. A supported city or AXS city listing URL also selects a listing.
Detail
Supply eventIds or event URLs in startUrls. Replace example IDs with current events.
Venue
Supply venueIds or venue URLs. Results can include the venue and its listed events.
Catalog
Enumerate event, venue, performer or series URLs. Continue with RUN_SUMMARY.diagnostics.nextCursor as cursor, keeping the same entityTypes.
Performer
Supply performerIds for specific artists, or leave them empty to list performers.
Series
Supply seriesIds; use catalog to find IDs first.
Offers
List promotions, optionally selected by offerIds. These are not ticket-seat offers.
Genres
Use genres without a target to list genre labels.
Discovery
Export events, venues, performers or tours. Keyword, city, category and date filters are not supported in this mode.
Onsale
Use onsale with event IDs or purchase links for configuration, not guaranteed inventory. No inventory invitation key is needed. Supply at most 20 targets per run.
Inventory
Supply up to 10 targets and a developer-issued inventoryKey. Without valid access, no inventory rows are returned and warnings include inventory_locked. Access can still fail because of queues, expired links or rate limits.
Watch
Check up to 50 event IDs once per run. Schedule later runs to compare status. The suggested interval is 180 seconds, or 60 near the show; null means the show is over. inventoryOnChange optionally captures inventory after a return to sale, requires an invitation key and is limited to two events per run.
What to fill in
| Field | What to enter | Default |
|---|---|---|
mode | A mode above, or automatic selection | auto |
searchQuery, q | Keyword; q is an alias | Empty; prefill concert |
startUrls, eventIds | AXS URLs or event IDs | Empty |
venueIds, performerIds, seriesIds, offerIds | IDs for that entity | Empty |
ticketUrls | AXS purchase links for onsale or inventory | Empty |
category | One of the five categories above | Empty |
city, cityId, citySlug | City name, or ID and slug from an AXS city URL | Empty |
market | Supported catalog: us | us |
maxResults | Rows per input, 1–5,000 | 70; prefill 3 |
maxPages | Listing pages to scan, 1–5 | 1 |
page, pageOffset | Continuation page and position within it | 1, 0 |
cursor | Catalog continuation string | Empty |
entityTypes | Entity names supported by the selected mode | ["events"] |
siteIds | Optional numeric AXS catalog partitions; at most 8 | US main catalog |
startDate, endDate | Inclusive event-date bounds; ISO date or datetime | Empty |
enrichDetails, enrichVenue | Add event details and venue addresses | true |
includeOffers | Separate ticket-offer rows in onsale or inventory | false |
includeSeats | Keep observed seat labels on ticket-offer rows | true |
inventoryKey | Invitation key; keep it private | Empty |
nearShowHours | Watch's near-show window, 1–168 hours | 24 |
inventoryOnChange | Capture inventory after a return to sale | false |
includeRaw, fields | Public source fields or selected output fields | false, empty |
Examples by mode:
Home
{"mode":"home","maxResults":3}
Search
{"mode":"search","searchQuery":"concert","maxResults":3}
Category
{"mode":"category","category":"music","city":"Denver, CO","maxResults":3}
Detail
{"mode":"detail","eventIds":["1445907"],"maxResults":1}
Venue
{"mode":"venue","venueIds":["124944"],"maxResults":3}
Catalog
{"mode":"catalog","entityTypes":["series"],"maxResults":3}
Performer
{"mode":"performer","maxResults":3}
Series
{"mode":"series","seriesIds":["12"],"maxResults":3}
Offers
{"mode":"offers","maxResults":3}
Genres
{"mode":"genres","maxResults":3}
Discovery
{"mode":"discovery","entityTypes":["tours"],"maxResults":3}
Onsale
{"mode":"onsale","eventIds":["1445907"],"includeOffers":true,"maxResults":3}
Inventory
{"mode":"inventory","eventIds":["1445907"],"inventoryKey":"YOUR_INVITATION_KEY","maxResults":1}
Watch
{"mode":"watch","eventIds":["1445907"],"maxResults":1}
maxItems and limit are accepted as maxResults. Close field-name misspellings are corrected; other unknown fields are ignored with a note. INPUT_REPORT in the default key-value store records how input was interpreted. Unusable input stops before row delivery with an INVALID_INPUT: message naming the problem and expected form. No rows are charged for that failure; the start fee still applies. A missing required target can instead select another filled target or the example run. Dates do not advance automatically.
Output example
Illustrative event row; the title and date are examples, not a live result:
{"rowType": "event","id": "1445907","eventId": "1445907","title": "Example concert","url": "https://www.axs.com/events/1445907","eventDateTimeUTC": "2026-12-12T02:00:00Z","venueName": "Example Hall","market": "us","statusLabel": "On Sale","priceLow": null,"priceHigh": null,"priceBasis": "unavailable","phones": [],"emails": [],"source": "axs.com"}
Export the dataset as JSON, CSV, Excel, XML, RSS or an HTML table. The key-value store also contains INPUT_ECHO, RUN_SUMMARY and, for terminal failures, ERROR_SUMMARY.
Why use this AXS scraper?
- Pay for delivered rows: unsuccessful requests are not separate billable rows.
- Keep delivered data: rows already written remain in the dataset. An abrupt stop does not guarantee delivery of unfinished collection.
- Understand missing data: unavailable prices stay
null; absent contact details stay empty. - Batch targets: send several IDs or URLs in one run.
- No proxy setup: you do not need to set up proxies.
How much does it cost to scrape AXS?
Pricing is pay-per-event: a $0.005 start event plus a price per delivered row. The start charge is one event per GB of memory, with a minimum of one event. At the default 512 MB, the start charge is $0.005. Platform usage is included in these prices.
| Apify plan | Price per row | Price per 1,000 rows |
|---|---|---|
| Free | $0.003 | $3.00 |
| Starter | $0.003 | $3.00 |
| Scale | $0.0026 | $2.60 |
| Business | $0.0022 | $2.20 |
| Platinum | $0.002 | $2.00 |
| Diamond | $0.0016 | $1.60 |
maxResults applies to each input, defaults to 70 and allows up to 5,000. Larger requests are collected in parts of 70. All row types share that input's limit. Free-plan runs stop at 200 rows, and the developer allows 10 runs of this Actor on that plan. The whole run stops at Maximum cost per run (maxTotalChargeUsd in the API).
Example: one search delivering 3 rows on the Free plan at 512 MB costs 3 × $0.003 + $0.005 = $0.014.
What happens when the run timeout is too short
A run that needs longer can pause automatically. Its status message says "Queued on the collection backend; this run will resume automatically when results are ready (about N s)." It temporarily appears as ABORTED, rather than a collection failure.
When results are ready, the same run resumes, reports "Resumed: delivering N rows.", writes to the same dataset and finishes as SUCCEEDED if collection succeeds. Already delivered rows are not delivered or charged twice. You do not need to restart it manually.
Automatic pauses are limited to 3 per run. Keep the default 600-second timeout to reduce interruptions. Other failures can still stop a run.
Synchronous endpoints (run-sync, run-sync-get-dataset-items) wait at most 300 seconds and may return an empty dataset while the run is paused. For longer jobs, start asynchronously and read the dataset after SUCCEEDED, or use a succeeded-event webhook.
Use with AI agents and the API
Apify MCP server (Claude, ChatGPT, Cursor, VS Code)
Add this remote server to your MCP client:
https://mcp.apify.com?tools=lentic_clockss/axs-scraper
Sign in with Apify using OAuth, or send Authorization: Bearer <YOUR_APIFY_TOKEN>. The tool starts a run and returns run and dataset IDs; read rows with get-dataset-items. Clients without remote support can use npx @apify/actors-mcp-server --tools lentic_clockss/axs-scraper with APIFY_TOKEN set.
Example prompt: "Search AXS for concert and return at most 3 events with dates and venue names."
Apify API
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("lentic_clockss/axs-scraper").call(run_input={"searchQuery": "concert", "maxResults": 3})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });const run = await client.actor('lentic_clockss/axs-scraper').call({searchQuery: 'concert', maxResults: 3});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
For asynchronous HTTP use, send input JSON to POST https://api.apify.com/v2/acts/lentic_clockss~axs-scraper/runs with an Authorization: Bearer <YOUR_APIFY_TOKEN> header. After completion, read GET https://api.apify.com/v2/datasets/<datasetId>/items?format=json.
Integrations
Use the Integrations tab to connect results to Google Sheets, Make, Zapier, n8n, Slack, Airtable or a webhook. Schedule repeat runs with Apify Schedules.
FAQ
Is it legal to scrape AXS?
The Actor collects public data. You are responsible for complying with applicable terms and data-protection law. Processing personal data requires a lawful basis; public availability alone does not establish one.
Why did my run end as ABORTED?
Check its status message. An automatic pause resumes without intervention; a manual abort is different. See the timeout section above.
How many results can I get?
Up to maxResults per input, subject to available matches, scanned pages, the run's cost cap and free-plan limits. It is a ceiling, not a guaranteed count.
Why are some fields empty?
AXS may not expose them. Metadata prices are not final ticket quotes, and a zero placeholder is not a free ticket. Most consumer pages expose few contact details.
Are inventory quantities individual seats?
Not necessarily. inventoryGranularity can be price_level. Quantity is stock, not price; raw price components are not a final tax-inclusive quote.
Does the Actor buy tickets?
No. Purchase links are inputs for observation only. It does not reserve tickets or complete checkout.
How do I continue a listing?
Read RUN_SUMMARY.diagnostics. Where present, use nextPage and nextPageOffset as page and pageOffset, keeping the same filters. Catalog uses nextCursor.
Which cities work?
Use a supported US city name or an AXS city URL. For an unknown city ID, supply its citySlug; do not put the city in searchQuery.
Limitations
- Only
market: "us"is supported; do not assume other storefront coverage. - City, category and date filters apply within scanned pages. Check
coverageTruncated; a short page is not proof of complete coverage. - Inventory access and seat detail are not guaranteed. A sale-status label is not a seat count.
includeOffersworks only inonsaleandinventory. Offers are separate rows, not duplicate embedded lists; a target without offers may still return an event-level row.- Attribute lists are capped at 50 entries, with counts when truncated.
- Watch comparisons require an available previous observation; they are not a permanent history.
Related scrapers
More event and ticketing scrapers from the same publisher:
Browse all of our scrapers at apify.com/lentic_clockss.
Support
Found a problem or need another field? Open an issue in the Issues tab of this Actor's page and include the run ID and the input you used. Remove invitation keys and tokens before sharing input.