On-Demand Scrape API

Documentation for the on-demand real-time scrape Eventory API.

Written By yeet

Last updated 13 days ago

The Scrape API gives you a one-shot way to check ticket availability across multiple platforms. Provide a platform, an event ID, and a region β€” you get back real-time sections, stock levels, and pricing in a single JSON response just scraped for you.

1. Base URL

https://api.eventory.ai/events

2. Authentication

Include your API key in every request as the apikey HTTP header.

apikey: your-api-key-here

A missing or invalid key returns 401 Unauthorized.

3. Endpoints

Platforms

GET https://api.eventory.ai/events/platforms

Returns the list of all supported platform identifiers. Use this to check the exact spelling of a platform key before scraping.

Note: This list is not exhaustive. Any other site can be supported on request β€” if the platform you need isn't listed here, contact us and we'll add support for it.

Response

{
  "platforms": {
    "tm_us": {
      "description": "Ticketmaster US & Global β€” monitors primary and resale ticket availability for events in the US, Canada, UK, Ireland, Australia, New Zealand, and Mexico.",
      "sections_type": "SeatMapSections",
      "regions": ["us", "ca", "uk", "ie", "au", "nz", "mx"],
      "event_id_example": "0200642CF18CAA24"
    },
    "tm_us_v2": {
      "description": "Ticketmaster Early (Preload) β€” the fastest Ticketmaster monitor for US & Global events. Catches primary tickets as soon as they become available, before standard monitors. Does not include resale tickets. Best choice for high-demand on-sales.",
      "sections_type": "SeatMapSections",
      "regions": ["us", "ca", "uk", "ie", "au", "nz", "mx"],
      "event_id_example": "0200642CF18CAA24"
    },
    "tm_eu": {
      "description": "Ticketmaster Europe β€” monitors primary and resale ticket availability for events across Europe and the Middle East",
      "sections_type": "SeatMapSections",
      "regions": ["de", "es", "nl", "at", "dk", "be", "no", "ch", "se", "fi", "pl", "ae", "cz"],
      "event_id_example": "0A00600055AC8E1E"
    },
    "ticketportal": {
      "description": "Ticketportal β€” monitors ticket availability for events",
      "sections_type": "OfferSections",
      "regions": ["cz", "sk"],
      "event_id_example": "1462276"
    }
  }
}

Each entry tells you:

FieldDescription

description

Plain-language summary of what this platform monitors. null if not available.

sections_type

The shape of sections in the scrape response β€” "OfferSections" (flat) or "SeatMapSections" (nested by seat section).

regions

Accepted region codes for this platform. null means any value is accepted (or ignored).

event_id_example

A realistic example of the event_id this platform expects β€” either a numeric ID, a hex string, or a full event URL depending on the platform.

Scrape

POST https://api.eventory.ai/events/scrape

Request body

{
  "platform": "tm_us",
  "event_id": "0200642CF18CAA24",
  "region": "us"
}

Field

Type

Required

Description

platform

string

yes

Platform identifier β€” must match a key from GET /platforms.

event_id

string

yes

The event's ID on that platform.

region

string

yes

Country or region code (e.g. us, uk, fr, it). Case-insensitive.

Response

{
  "success": true,
  "platform": "tm_us",
  "event_id": "0200642CF18CAA24",
  "region": "us",
  "scrape_timestamp": "2026-04-27T10:00:00.000000+00:00",
  "sections_type": "SeatMapSections",
  "total_stock": 3929,
  "sections": {
    "Standard Admission": {
      "stock": 3929,
      "101": {
        "offer_name": "Standard Admission",
        "price_label": "$426.40",
        "price": 426.4,
        "price_without_fees": 349.5,
        "section": "101",
        "inventory_type": "primary",
        "is_active": true,
        "stock": 67,
        "stock_not_available": 0,
        "atc": null,
        "longest_adjacent_seats": 1,
        "general_admission": false,
        "rows": null,
        "seats": null
      }
    }
  },
  "event_info": {
    "event_name": "Artist Name",
    "event_date": "2026-09-15T20:00:00-04:00",
    "event_venue": "Madison Square Garden",
    "event_location": "New York, NY",
    "event_url": "https://www.ticketmaster.com/event/0200642CF18CAA24"
  }
}

Field

Type

Description

success

boolean

true if the event was found and data was returned.

platform

string

Echoes back the requested platform.

event_id

string

Echoes back the requested event ID.

region

string

Echoes back the requested region.

scrape_timestamp

string

ISO 8601 UTC timestamp of when the request was processed.

sections_type

string

Either "OfferSections" or "SeatMapSections" β€” determines the shape of sections.

total_stock

integer

Total tickets available across all sections. 0 if sold out or not tracked.

sections

object

Ticket availability detail. Shape depends on sections_type.

event_info

object | null

Event metadata (name, date, venue). null if not available.

4. Data Types

Monitors currently return event availability data under two data types: OfferSections and SeatMapSections.

OfferSections

A flat list of ticket tiers for the event. Each entry has a name, price, stock count, and availability status. Used by most platforms where tickets are sold as simple named offers (e.g. "General Admission", "VIP", "Early Bird").

Example

{
  "FINAL RELEASE - Entrance Before 5pm": {
    "offer_name": "FINAL RELEASE - Entrance Before 5pm",
    "available": true,
    "price": 21.4,
    "price_label": "EUR 21.40",
    "stock": null,
    "general_admission": null,
    "atc": null
  },
  "REGULAR FINAL RELEASE": {
    "offer_name": "REGULAR FINAL RELEASE",
    "available": true,
    "price": 32.1,
    "price_label": "EUR 32.10",
    "stock": null,
    "general_admission": null,
    "atc": null
  }
}

Field

Type

Description

offer_name

string | null

Display name of this ticket tier.

available

boolean | null

Whether this offer is currently on sale.

price

float | null

Price as a number.

price_label

string | null

Formatted price with currency, e.g. "EUR 21.40".

stock

integer | null

Remaining tickets. null if the platform does not expose stock counts.

general_admission

boolean | null

true for standing/GA tickets. null if unknown.

atc

string | null

Direct add-to-cart link, if the platform provides one.

SeatMapSections

A nested structure that maps ticket tiers to individual venue sections. Each tier contains one or more physical sections (e.g. "101", "FLOOR"), each with its own price, stock, and seat-level detail. Used by platforms like Ticketmaster and AXS that expose a full seat map.

Example

{
  "Standard Admission": {
    "stock": 3929,
    "101": {
      "offer_name": "Standard Admission",
      "price_label": "$426.40",
      "price": 426.4,
      "price_without_fees": 349.5,
      "section": "101",
      "inventory_type": "primary",
      "is_active": true,
      "stock": 67,
      "stock_not_available": 0,
      "atc": null,
      "longest_adjacent_seats": 1,
      "general_admission": false,
      "rows": null,
      "seats": null
    },
    "102": {
      "offer_name": "Standard Admission",
      "price_label": "$365.40",
      "price": 365.4,
      "price_without_fees": 299.5,
      "section": "102",
      "inventory_type": "primary",
      "is_active": true,
      "stock": 88,
      "stock_not_available": 0,
      "atc": null,
      "longest_adjacent_seats": 1,
      "general_admission": false,
      "rows": null,
      "seats": null
    }
  }
}

Section detail fields

Field

Type

Description

offer_name

string

The ticket tier this section belongs to.

price_label

string

Price including fees, formatted with currency.

price

float

Price including fees.

price_without_fees

float

Face-value price before service fees.

section

string

Section identifier as shown on the venue map.

inventory_type

string

"primary" (box office) or "resale".

is_active

boolean

Whether this section is currently on sale.

stock

integer

Available tickets in this section.

stock_not_available

integer

Sold or held tickets in this section.

atc

string | null

Direct add-to-cart link, if available.

longest_adjacent_seats

integer | null

Longest run of consecutive seats available in this section.

general_admission

boolean

true if this is a standing/GA section.

rows

array | null

Row identifiers available (e.g. ["A", "B", "C"]). null if not tracked.

seats

object | null

Map of row β†’ seat numbers (e.g. {"A": ["1", "2", "3"]}). null if not tracked.

Event Info

Present when the platform returns event metadata. Always check for null before reading fields.

{
  "event_name": "Croccante",
  "event_date": "2025-10-18T14:00:00+02:00",
  "event_time": null,
  "event_venue": "Balagan Roma",
  "event_venue_url": null,
  "event_artist_name": null,
  "event_location": "Via Aldo Palazzeschi 125, 00137 Rome, Italy",
  "event_url": "https://link.dice.fm/Q3dd78515650",
  "event_image": "https://dice-media.imgix.net/..."
}

Field

Description

event_name

Event title.

event_date

ISO 8601 datetime.

event_time

Human-readable time string, if provided separately.

event_venue

Venue name.

event_venue_url

Link to the venue page.

event_artist_name

Performer or artist name.

event_location

Full venue address.

event_url

Link to the event on the platform.

event_image

Cover image URL.

All fields may be null depending on the platform.

5. Errors

Status

Meaning

400

Unknown platform β€” check the platform value against GET /platforms.

401

Invalid or missing API key.

408

The platform took too long to respond (timeout: 60s). Try again once; if it persists the event ID may be invalid.

429

Rate limit exceeded (30 req/min per key). Wait until the window resets, then retry.

500

Unexpected error on our side.