Tickets.dev · Schema

Snapshot

One capture: every listing on one event page on one marketplace, at capturedAt.

TicketingMarket DataPricingInventorySeat MapsResaleEvent

Properties

Name Type Description
source string The marketplace, e.g. stubhub.
eventId string The marketplace's own id for the event.
eventName string Event title.
performers array Performers, as the marketplace lists them.
venueId string The marketplace's own venue id.
venueName string Venue name.
venueAddress string Street address of the venue.
venueCity string Venue city.
venueState string Venue state or province.
venueTimezone string Venue time zone, where the marketplace gives one.
eventDateLocal string Event date and time, venue-local ISO 8601 with offset.
eventDateUtc string The same moment in ISO 8601 UTC.
sourceUrl string The event page the capture read.
capturedAt string When the capture ran, ISO 8601 UTC.
currency string ISO 4217 currency of every price in the snapshot.
note string The marketplace's notice, e.g. sold out or canceled. An empty capture with no note may be a partial page.
sectionLevelUrl string With includeVenueMaps: section map SVG; shapes carry the listings' section names.
seatLevelUrl string With includeVenueMaps: seat or row level map SVG.
stats object
listings array
venueLayout object Sections, rows and seats of the venue map, where available.
View JSON Schema on GitHub

JSON Schema

tickets-dev-snapshot-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/tickets-dev/json-schema/tickets-dev-snapshot-schema.json",
  "title": "Snapshot",
  "description": "One capture: every listing on one event page on one marketplace, at capturedAt.",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/tickets-dev-openapi.json#/components/schemas/Snapshot",
  "type": "object",
  "properties": {
    "source": {
      "type": "string",
      "description": "The marketplace, e.g. stubhub."
    },
    "eventId": {
      "type": "string",
      "description": "The marketplace's own id for the event."
    },
    "eventName": {
      "type": "string",
      "description": "Event title."
    },
    "performers": {
      "type": "array",
      "items": {
        "type": "object"
      },
      "description": "Performers, as the marketplace lists them."
    },
    "venueId": {
      "type": "string",
      "description": "The marketplace's own venue id."
    },
    "venueName": {
      "type": "string",
      "description": "Venue name."
    },
    "venueAddress": {
      "type": "string",
      "description": "Street address of the venue."
    },
    "venueCity": {
      "type": "string",
      "description": "Venue city."
    },
    "venueState": {
      "type": "string",
      "description": "Venue state or province."
    },
    "venueTimezone": {
      "type": "string",
      "description": "Venue time zone, where the marketplace gives one."
    },
    "eventDateLocal": {
      "type": "string",
      "description": "Event date and time, venue-local ISO 8601 with offset."
    },
    "eventDateUtc": {
      "type": "string",
      "description": "The same moment in ISO 8601 UTC."
    },
    "sourceUrl": {
      "type": "string",
      "description": "The event page the capture read."
    },
    "capturedAt": {
      "type": "string",
      "description": "When the capture ran, ISO 8601 UTC."
    },
    "currency": {
      "type": "string",
      "description": "ISO 4217 currency of every price in the snapshot."
    },
    "note": {
      "type": "string",
      "description": "The marketplace's notice, e.g. sold out or canceled. An empty capture with no note may be a partial page."
    },
    "sectionLevelUrl": {
      "type": "string",
      "description": "With includeVenueMaps: section map SVG; shapes carry the listings' section names."
    },
    "seatLevelUrl": {
      "type": "string",
      "description": "With includeVenueMaps: seat or row level map SVG."
    },
    "stats": {
      "$ref": "#/$defs/Stats"
    },
    "listings": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/Listing"
      }
    },
    "venueLayout": {
      "type": "object",
      "description": "Sections, rows and seats of the venue map, where available."
    }
  },
  "$defs": {
    "Listing": {
      "type": "object",
      "properties": {
        "listingId": {
          "type": "string",
          "description": "The marketplace's own id for the listing: compare it within one marketplace only."
        },
        "inventoryType": {
          "type": "string",
          "description": "primary or resale."
        },
        "section": {
          "type": "string",
          "description": "Section, as the marketplace names it. Matches data-section in the seat map SVG."
        },
        "row": {
          "type": "string",
          "description": "Row label."
        },
        "seats": {
          "type": "string",
          "description": "Comma-separated seat numbers, when the marketplace shows them."
        },
        "quantity": {
          "type": "number",
          "description": "Seats available in this listing."
        },
        "sellableQuantities": {
          "type": "string",
          "description": "Quantities a buyer can buy, e.g. \"2,4\". A listing of 3 selling as \"1,3\" cannot sell 2."
        },
        "ticketPrice": {
          "type": "number",
          "description": "Face price per ticket, before fees."
        },
        "fee": {
          "type": "number",
          "description": "Per-ticket fees. 0 where the marketplace shows only an all-in price."
        },
        "totalPrice": {
          "type": "number",
          "description": "All-in price per ticket, excluding sales tax, with the same meaning on every marketplace."
        },
        "ticketType": {
          "type": "string",
          "description": "Delivery or ticket type, as the marketplace shows it."
        },
        "group": {
          "type": "string",
          "description": "The marketplace's zone or price level, e.g. 100 Level."
        },
        "listingNotes": {
          "type": "string",
          "description": "Listing features, e.g. Clear view or Obstructed view."
        },
        "dealScore": {
          "type": "string",
          "description": "The marketplace's own value score, as it shows it. Empty where it shows none."
        }
      }
    },
    "Stats": {
      "type": "object",
      "properties": {
        "listingCount": {
          "type": "number",
          "description": "Listings on the page."
        },
        "ticketCount": {
          "type": "number",
          "description": "Tickets across all listings."
        },
        "getInPrice": {
          "type": "number",
          "description": "Lowest all-in price per ticket. 0 when there are no listings."
        },
        "medianPrice": {
          "type": "number",
          "description": "Median all-in price per ticket."
        },
        "avgPrice": {
          "type": "number",
          "description": "Mean all-in price per ticket."
        },
        "maxPrice": {
          "type": "number",
          "description": "Highest all-in price per ticket."
        }
      }
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/tickets-dev-snapshot"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.