Skip to main content
Glama

Ticker: Live Event Ticket Market

Get Event Section Prices and Listings

get_event_sections
Read-only

Returns market data per section: one event's prices and tickets now and over the last 7 days, its listings on sale, each section's level and neighbors, one series across chosen sections, or the section map as a picture. Use it when the person asks about prices or listings by section, or for an event's cheapest listings. Across a performer's shows or several events, view find answers a section, level, ticket count or price in ONE call: never one call per event. view prices (the default) puts the vs, tm_primary and tm_resale markets side by side by section_key, or reads one market with source. For open-seat counts per section use get_event_sections_live; for single seats use get_event_seats.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "get_event_sections"
  }
}

Input Schema

NameRequiredDescriptionDefault
rowNoOne row label, matched without case or surrounding spaces.
viewNofind: across a performer's upcoming events or a list of events, the events with listings in a section or on a level, at least min_quantity tickets together, at or under max_price, all-in unless price_basis says otherwise; per section each market where a row exists, with its cheapest and median, and no_match says why an event has none. Takes performer_id or event_ids, not event_id. prices (default): each section's prices and tickets now and for the last 7 days; with source, one market under its own section names (mlb has current sections only); unavailable names a market whose listings could not be read right now. levels: each section's level, the sections close to it on that level and the section across from it, each with the source that answered (our seat map, the section's own names, or the section number); a level is never guessed. listings: the listings on sale, one per row with section_key, row, quantity, prices, the market's own deal score (0 to 10), its own seat quality numbers (svs on vs, seat_quality_score and star_rating on sh) and ticker_listing_id (Ticker's id for the listing, the same on every read), cheapest first; withheld names a source the plan leaves out, rows_truncated means more listings follow and next_cursor reads them. aggregate: one series across the sections asked (sections, required) on one listing source: lowest, quartiles, tickets and listings per read. map: the event's section map as a picture, each section colored by one market's lowest price or tickets (color_by), with each drawn section's number by section_key; drawn false means the event has no map to draw.
levelNoOnly this level. A number, 100 level, 100s or 100, is the sections numbered 100 to 199, on whatever the venue calls that deck, leaving out suites, boxes, lofts, the floor and pits. A word, lower or mezzanine, is a level that holds the word. An event with no such level comes back in no_match with reason no_such_level and the levels it has.
limitNoRows returned. prices: sections when `sections` is omitted, default 40, at most 200. levels: sections, default 200, at most 1000. listings: listings, default 50, at most 100. find: events, default 25, at most 50.
orderNolistings: price (the default) reads the cheapest first, by the price after fees and then before. section walks by source (vs, sh, sg, tmr, sgp, aq), then section, row and price. deal_score ranks one source with deal scores, highest first.
rangeNoprices and aggregate: how far back the series reaches, counted back from today: 3d, 7d (the default), 30d, 90d or all.
cursorNolistings: next_cursor from the previous page, with the same source, order and filters, for the next page.
renderNoA rendered chart (a PNG image content block) is included ahead of the data by default. Pass render:false for a data-only (smaller) response.
sourceNoall (the default): vs, tm_primary and tm_resale side by side. A market code: that market alone, under its own section names. With view listings, all reads every listing source the plan includes, and vs, sh, sg, tmr, sgp or aq reads that one. With view aggregate, one of vs (the default), sh, sg, tmr, sgp or aq. With view find, all or one market, gt too. With view map, the market whose sections color the map: vs (the default), tmr, sh, sg, sgp, tm or aq.
excludeNoComma separated. Listings to leave out of this answer: `zone` (Unassigned seats, the seller holds no specific seats yet; vs only) and `view` (Limited view, the market says the seats see the stage or field only in part; vs, sg, sgp and sh). Absent or empty: every listing counts, and the answer is the one with no exclude. A source that cannot state a kind is not filtered by it; `excluded` names what was left out. A price with nothing left is null, never 0. Set it only when the user asks to leave these listings out; the default answer is the whole market.
parkingNoParking passes listed inside the event are never among its tickets. hide (the default) leaves them out; include adds them as the parking group on the first page, at most 200; only lists the passes as the listings. On a parking event the passes are its listings at any value. Set it only when the user asks about parking.
color_byNoprice (the default): each section's lowest price. tickets: the tickets on sale in it (on tm, the seats open).
currencyNousd or venue. venue answers an event in a Canadian or UK venue with every price in the venue's currency (CAD or GBP) at the event's Bank of Canada rate; one rate converts every market, so the cheapest market and any order stay the same. Omit for USD. A view with no price ignores it. An answer in the venue's currency says currency, venue_currency, fx_rate (USD per one unit of venue_currency) and fx_rate_date; quote the currency with every price and the rate date when it is CAD or GBP. A US event is always USD. mlb_* prices keep mlb_currency.
event_idNoThe event to read.
quantityNoNumber of tickets to buy from one listing, or a list of up to 8 numbers (e.g. [2,4]) to keep a listing that sells any of them. Uses the stated splits when available and the listed quantity otherwise.
sectionsNoprices and listings: only these sections, by a market's own label or by section_key (e.g. ["108","FL2","FLOOR-10"]); omit for the whole house. aggregate: the sections to combine, required. find: only these sections at each event; GA or General Admission reaches every general admission section.
event_idsNoThe events to read, at most 50, ours or a marketplace's. Name this or performer_id.
max_priceNoAt or under this price per ticket, in USD, on price_basis.
granularityNo`daily` (the default): one history point a date, its last reading. `intraday`: every reading the history holds, as the app reads it.
price_basisNoall_in (the default): what a buyer pays after fees. pre_fee: before fees. With max_price, a listing with no price on this basis does not match, and unpriced_on_basis counts it.
min_quantityNoAt least this many tickets together in one listing, by the listing's quantity; its splits say what the seller allows. Default 1.
performer_idNoOne performer: its 50 soonest upcoming events. Ticker performer id, `pf` plus ten characters. Name this or event_ids; event_ids wins when both come.
include_historyNoSet false for current levels only.
all_in_price_max_usdNoMaximum all-in USD price per ticket, inclusive.
all_in_price_min_usdNoMinimum all-in USD price per ticket, inclusive.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changed
    • addedInput schema / properties / color_by
      Added value: +{
      +  "description": "price (the default): each section's lowest price. tickets: the tickets on sale in it (on tm, the seats open).",
      +  "enum": [
      +    "price",
      +    "tickets"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / render
      Added value: +{
      +  "description": "A rendered chart (a PNG image content block) is included ahead of the data by default. Pass render:false for a data-only (smaller) response.",
      +  "type": "boolean"
      +}
    • changedInput schema / properties / source / anyOf
      Previous value: -[
      -  {
      -    "description": "all (the default): vs, tm_primary and tm_resale side by side. A market code: that market alone, under its own section names.",
      -    "enum": [
      -      "all",
      -      "vs",
      -      "tmr",
      -      "sh",
      -      "sg",
      -      "sgp",
      -      "tm",
      -      "mlb",
      -      "aq"
      -    ],
      -    "type": "string"
      -  },
      -  {
      -    "description": "all (the default): every listing source the plan includes, and withheld names the rest. A code: that source alone.",
      -    "enum": [
      -      "all",
      -      "vs",
      -      "sh",
      -      "sg",
      -      "tmr",
      -      "sgp",
      -      "aq"
      -    ],
      -    "type": "string"
      -  },
      -  {
      -    "description": "all (the default): every market the plan includes, and withheld names the rest. A code: that market alone.",
      -    "enum": [
      -      "all",
      -      "vs",
      -      "sh",
      -      "sg",
      -      "tmr",
      -      "sgp",
      -      "aq",
      -      "gt"
      -    ],
      -    "type": "string"
      -  }
      -]New value: +[
      +  {
      +    "description": "all (the default): vs, tm_primary and tm_resale side by side. A market code: that market alone, under its own section names.",
      +    "enum": [
      +      "all",
      +      "vs",
      +      "tmr",
      +      "sh",
      +      "sg",
      +      "sgp",
      +      "tm",
      +      "mlb",
      +      "aq"
      +    ],
      +    "type": "string"
      +  },
      +  {
      +    "description": "all (the default): every listing source the plan includes, and withheld names the rest. A code: that source alone.",
      +    "enum": [
      +      "all",
      +      "vs",
      +      "sh",
      +      "sg",
      +      "tmr",
      +      "sgp",
      +      "aq"
      +    ],
      +    "type": "string"
      +  },
      +  {
      +    "description": "all (the default): every market the plan includes, and withheld names the rest. A code: that market alone.",
      +    "enum": [
      +      "all",
      +      "vs",
      +      "sh",
      +      "sg",
      +      "tmr",
      +      "sgp",
      +      "aq",
      +      "gt"
      +    ],
      +    "type": "string"
      +  },
      +  {
      +    "description": "The market whose sections color the map: vs (the default), tmr, sh, sg, sgp, tm or aq. A market the plan does not include is refused.",
      +    "enum": [
      +      "vs",
      +      "tmr",
      +      "sh",
      +      "sg",
      +      "sgp",
      +      "tm",
      +      "aq"
      +    ],
      +    "type": "string"
      +  }
      +]
    • changedInput schema / properties / source / description
      Previous value: -"all (the default): vs, tm_primary and tm_resale side by side. A market code: that market alone, under its own section names. With view listings, all reads every listing source the plan includes, and vs, sh, sg, tmr, sgp or aq reads that one. With view aggregate, one of vs (the default), sh, sg, tmr, sgp or aq. With view find, all or one market, gt too."New value: +"all (the default): vs, tm_primary and tm_resale side by side. A market code: that market alone, under its own section names. With view listings, all reads every listing source the plan includes, and vs, sh, sg, tmr, sgp or aq reads that one. With view aggregate, one of vs (the default), sh, sg, tmr, sgp or aq. With view find, all or one market, gt too. With view map, the market whose sections color the map: vs (the default), tmr, sh, sg, sgp, tm or aq."
    • changedInput schema / properties / view / description
      Previous value: -"find: across a performer's upcoming events or a list of events, the events with listings in a section or on a level, at least min_quantity tickets together, at or under max_price, all-in unless price_basis says otherwise; per section each market where a row exists, with its cheapest and median, and no_match says why an event has none. Takes performer_id or event_ids, not event_id. prices (default): each section's prices and tickets now and for the last 7 days; with source, one market under its own section names (mlb has current sections only); unavailable names a market whose listings could not be read right now. levels: each section's level, the sections close to it on that level and the section across from it, each with the source that answered (our seat map, the section's own names, or the section number); a level is never guessed. listings: the listings on sale, one per row with section_key, row, quantity, prices, the market's own deal score (0 to 10) and ticker_listing_id (Ticker's id for the listing, the same on every read), cheapest first; withheld names a source the plan leaves out, rows_truncated means more listings follow and next_cursor reads them. aggregate: one series across the sections asked (sections, required) on one listing source: lowest, quartiles, tickets and listings per read."New value: +"find: across a performer's upcoming events or a list of events, the events with listings in a section or on a level, at least min_quantity tickets together, at or under max_price, all-in unless price_basis says otherwise; per section each market where a row exists, with its cheapest and median, and no_match says why an event has none. Takes performer_id or event_ids, not event_id. prices (default): each section's prices and tickets now and for the last 7 days; with source, one market under its own section names (mlb has current sections only); unavailable names a market whose listings could not be read right now. levels: each section's level, the sections close to it on that level and the section across from it, each with the source that answered (our seat map, the section's own names, or the section number); a level is never guessed. listings: the listings on sale, one per row with section_key, row, quantity, prices, the market's own deal score (0 to 10), its own seat quality numbers (svs on vs, seat_quality_score and star_rating on sh) and ticker_listing_id (Ticker's id for the listing, the same on every read), cheapest first; withheld names a source the plan leaves out, rows_truncated means more listings follow and next_cursor reads them. aggregate: one series across the sections asked (sections, required) on one listing source: lowest, quartiles, tickets and listings per read. map: the event's section map as a picture, each section colored by one market's lowest price or tickets (color_by), with each drawn section's number by section_key; drawn false means the event has no map to draw."
    • changedInput schema / properties / view / enum
      Previous value: -[
      -  "prices",
      -  "levels",
      -  "listings",
      -  "aggregate",
      -  "find"
      -]New value: +[
      +  "prices",
      +  "levels",
      +  "listings",
      +  "aggregate",
      +  "find",
      +  "map"
      +]
  2. Changed5 schema fields changed
    • addedInput schema / properties / quantity / anyOf
      Added value: +[
      +  {
      +    "maximum": 65535,
      +    "minimum": 1,
      +    "type": "integer"
      +  },
      +  {
      +    "items": {
      +      "maximum": 65535,
      +      "minimum": 1,
      +      "type": "integer"
      +    },
      +    "maxItems": 8,
      +    "minItems": 1,
      +    "type": "array"
      +  }
      +]
    • changedInput schema / properties / quantity / description
      Previous value: -"Number of tickets to buy from one listing. Uses the stated splits when available and the listed quantity otherwise."New value: +"Number of tickets to buy from one listing, or a list of up to 8 numbers (e.g. [2,4]) to keep a listing that sells any of them. Uses the stated splits when available and the listed quantity otherwise."
    • removedInput schema / properties / quantity / maximum
      Removed value: -65535
    • removedInput schema / properties / quantity / minimum
      Removed value: -1
    • removedInput schema / properties / quantity / type
      Removed value: -"integer"
  3. Changed2 schema fields changed
    • changedInput schema / properties / order / description
      Previous value: -"listings: price (the default) reads the cheapest first, by the price after fees and then before. section walks by source, section, row and price. deal_score ranks one source with deal scores, highest first."New value: +"listings: price (the default) reads the cheapest first, by the price after fees and then before. section walks by source (vs, sh, sg, tmr, sgp, aq), then section, row and price. deal_score ranks one source with deal scores, highest first."
    • changedInput schema / properties / view / description
      Previous value: -"find: across a performer's upcoming events or a list of events, the events with listings in a section or on a level, at least min_quantity tickets together, at or under max_price, all-in unless price_basis says otherwise; per section each market where a row exists, with its cheapest and median, and no_match says why an event has none. Takes performer_id or event_ids, not event_id. prices (default): each section's prices and tickets now and for the last 7 days; with source, one market under its own section names (mlb has current sections only); unavailable names a market whose listings could not be read right now. levels: each section's level, the sections close to it on that level and the section across from it, each with the source that answered (our seat map, or the section number); a level is never guessed. listings: the listings on sale, one per row with section_key, row, quantity, prices, the market's own deal score (0 to 10) and ticker_listing_id (Ticker's id for the listing, the same on every read), cheapest first; withheld names a source the plan leaves out, rows_truncated means more listings follow and next_cursor reads them. aggregate: one series across the sections asked (sections, required) on one listing source: lowest, quartiles, tickets and listings per read."New value: +"find: across a performer's upcoming events or a list of events, the events with listings in a section or on a level, at least min_quantity tickets together, at or under max_price, all-in unless price_basis says otherwise; per section each market where a row exists, with its cheapest and median, and no_match says why an event has none. Takes performer_id or event_ids, not event_id. prices (default): each section's prices and tickets now and for the last 7 days; with source, one market under its own section names (mlb has current sections only); unavailable names a market whose listings could not be read right now. levels: each section's level, the sections close to it on that level and the section across from it, each with the source that answered (our seat map, the section's own names, or the section number); a level is never guessed. listings: the listings on sale, one per row with section_key, row, quantity, prices, the market's own deal score (0 to 10) and ticker_listing_id (Ticker's id for the listing, the same on every read), cheapest first; withheld names a source the plan leaves out, rows_truncated means more listings follow and next_cursor reads them. aggregate: one series across the sections asked (sections, required) on one listing source: lowest, quartiles, tickets and listings per read."
  4. Changed7 schema fields changed
    • addedInput schema / properties / all_in_price_max_usd
      Added value: +{
      +  "description": "Maximum all-in USD price per ticket, inclusive.",
      +  "maximum": 90071992547409.9,
      +  "minimum": 0,
      +  "type": "number"
      +}
    • addedInput schema / properties / all_in_price_min_usd
      Added value: +{
      +  "description": "Minimum all-in USD price per ticket, inclusive.",
      +  "maximum": 90071992547409.9,
      +  "minimum": 0,
      +  "type": "number"
      +}
    • changedInput schema / properties / cursor / description
      Previous value: -"listings: next_cursor from the previous page, with the same source, order and sections, for the next page."New value: +"listings: next_cursor from the previous page, with the same source, order and filters, for the next page."
    • changedInput schema / properties / order / description
      Previous value: -"listings: price (the default) reads the cheapest first, by the price after fees and then before; section walks by source, section, row and price."New value: +"listings: price (the default) reads the cheapest first, by the price after fees and then before. section walks by source, section, row and price. deal_score ranks one source with deal scores, highest first."
    • changedInput schema / properties / order / enum
      Previous value: -[
      -  "section",
      -  "price"
      -]New value: +[
      +  "section",
      +  "price",
      +  "deal_score"
      +]
    • addedInput schema / properties / quantity
      Added value: +{
      +  "description": "Number of tickets to buy from one listing. Uses the stated splits when available and the listed quantity otherwise.",
      +  "maximum": 65535,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / row
      Added value: +{
      +  "description": "One row label, matched without case or surrounding spaces.",
      +  "maxLength": 128,
      +  "minLength": 1,
      +  "type": "string"
      +}
  5. Changed1 schema field changed
    • changedInput schema / properties / view / description
      Previous value: -"find: across a performer's upcoming events or a list of events, the events with listings in a section or on a level, at least min_quantity tickets together, at or under max_price, all-in unless price_basis says otherwise; per section each market where a row exists, with its cheapest and median, and no_match says why an event has none. Takes performer_id or event_ids, not event_id. prices (default): each section's prices and tickets now and for the last 7 days; with source, one market under its own section names (mlb has current sections only); unavailable names a market whose listings could not be read right now. levels: each section's level, the sections close to it on that level and the section across from it, each with the source that answered (our seat map, or the section number); a level is never guessed. listings: the listings on sale, one per row with section_key, row, quantity, prices and ticker_listing_id (Ticker's id for the listing, the same on every read), cheapest first; withheld names a source the plan leaves out, rows_truncated means more listings follow and next_cursor reads them. aggregate: one series across the sections asked (sections, required) on one listing source: lowest, quartiles, tickets and listings per read."New value: +"find: across a performer's upcoming events or a list of events, the events with listings in a section or on a level, at least min_quantity tickets together, at or under max_price, all-in unless price_basis says otherwise; per section each market where a row exists, with its cheapest and median, and no_match says why an event has none. Takes performer_id or event_ids, not event_id. prices (default): each section's prices and tickets now and for the last 7 days; with source, one market under its own section names (mlb has current sections only); unavailable names a market whose listings could not be read right now. levels: each section's level, the sections close to it on that level and the section across from it, each with the source that answered (our seat map, or the section number); a level is never guessed. listings: the listings on sale, one per row with section_key, row, quantity, prices, the market's own deal score (0 to 10) and ticker_listing_id (Ticker's id for the listing, the same on every read), cheapest first; withheld names a source the plan leaves out, rows_truncated means more listings follow and next_cursor reads them. aggregate: one series across the sections asked (sections, required) on one listing source: lowest, quartiles, tickets and listings per read."
  6. Changed13 schema fields changed
    • addedInput schema / properties / event_ids
      Added value: +{
      +  "description": "The events to read, at most 50, ours or a marketplace's. Name this or performer_id.",
      +  "items": {
      +    "minLength": 1,
      +    "type": "string"
      +  },
      +  "maxItems": 50,
      +  "minItems": 1,
      +  "type": "array"
      +}
    • addedInput schema / properties / level
      Added value: +{
      +  "description": "Only this level. A number, 100 level, 100s or 100, is the sections numbered 100 to 199, on whatever the venue calls that deck, leaving out suites, boxes, lofts, the floor and pits. A word, lower or mezzanine, is a level that holds the word. An event with no such level comes back in no_match with reason no_such_level and the levels it has.",
      +  "maxLength": 40,
      +  "minLength": 1,
      +  "type": "string"
      +}
    • changedInput schema / properties / limit / description
      Previous value: -"Rows returned. prices: sections when `sections` is omitted, default 40, at most 200. levels: sections, default 200, at most 1000. listings: listings, default 50, at most 100."New value: +"Rows returned. prices: sections when `sections` is omitted, default 40, at most 200. levels: sections, default 200, at most 1000. listings: listings, default 50, at most 100. find: events, default 25, at most 50."
    • addedInput schema / properties / max_price
      Added value: +{
      +  "description": "At or under this price per ticket, in USD, on price_basis.",
      +  "exclusiveMinimum": 0,
      +  "type": "number"
      +}
    • addedInput schema / properties / min_quantity
      Added value: +{
      +  "description": "At least this many tickets together in one listing, by the listing's quantity; its splits say what the seller allows. Default 1.",
      +  "maximum": 100,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / performer_id
      Added value: +{
      +  "anyOf": [
      +    {
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    {
      +      "exclusiveMinimum": 0,
      +      "type": "integer"
      +    }
      +  ],
      +  "description": "One performer: its 50 soonest upcoming events. Ticker performer id, `pf` plus ten characters. Name this or event_ids; event_ids wins when both come."
      +}
    • addedInput schema / properties / price_basis
      Added value: +{
      +  "description": "all_in (the default): what a buyer pays after fees. pre_fee: before fees. With max_price, a listing with no price on this basis does not match, and unpriced_on_basis counts it.",
      +  "enum": [
      +    "all_in",
      +    "pre_fee"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / sections / description
      Previous value: -"prices and listings: only these sections, by a market's own label or by section_key (e.g. [\"108\",\"FL2\",\"FLOOR-10\"]); omit for the whole house. aggregate: the sections to combine, required."New value: +"prices and listings: only these sections, by a market's own label or by section_key (e.g. [\"108\",\"FL2\",\"FLOOR-10\"]); omit for the whole house. aggregate: the sections to combine, required. find: only these sections at each event; GA or General Admission reaches every general admission section."
    • changedInput schema / properties / source / anyOf
      Previous value: -[
      -  {
      -    "description": "all (the default): vs, tm_primary and tm_resale side by side. A market code: that market alone, under its own section names.",
      -    "enum": [
      -      "all",
      -      "vs",
      -      "tmr",
      -      "sh",
      -      "sg",
      -      "sgp",
      -      "tm",
      -      "mlb",
      -      "aq"
      -    ],
      -    "type": "string"
      -  },
      -  {
      -    "description": "all (the default): every listing source the plan includes, and withheld names the rest. A code: that source alone.",
      -    "enum": [
      -      "all",
      -      "vs",
      -      "sh",
      -      "sg",
      -      "tmr",
      -      "sgp",
      -      "aq"
      -    ],
      -    "type": "string"
      -  }
      -]New value: +[
      +  {
      +    "description": "all (the default): vs, tm_primary and tm_resale side by side. A market code: that market alone, under its own section names.",
      +    "enum": [
      +      "all",
      +      "vs",
      +      "tmr",
      +      "sh",
      +      "sg",
      +      "sgp",
      +      "tm",
      +      "mlb",
      +      "aq"
      +    ],
      +    "type": "string"
      +  },
      +  {
      +    "description": "all (the default): every listing source the plan includes, and withheld names the rest. A code: that source alone.",
      +    "enum": [
      +      "all",
      +      "vs",
      +      "sh",
      +      "sg",
      +      "tmr",
      +      "sgp",
      +      "aq"
      +    ],
      +    "type": "string"
      +  },
      +  {
      +    "description": "all (the default): every market the plan includes, and withheld names the rest. A code: that market alone.",
      +    "enum": [
      +      "all",
      +      "vs",
      +      "sh",
      +      "sg",
      +      "tmr",
      +      "sgp",
      +      "aq",
      +      "gt"
      +    ],
      +    "type": "string"
      +  }
      +]
    • changedInput schema / properties / source / description
      Previous value: -"all (the default): vs, tm_primary and tm_resale side by side. A market code: that market alone, under its own section names. With view listings, all reads every listing source the plan includes, and vs, sh, sg, tmr, sgp or aq reads that one. With view aggregate, one of vs (the default), sh, sg, tmr, sgp or aq."New value: +"all (the default): vs, tm_primary and tm_resale side by side. A market code: that market alone, under its own section names. With view listings, all reads every listing source the plan includes, and vs, sh, sg, tmr, sgp or aq reads that one. With view aggregate, one of vs (the default), sh, sg, tmr, sgp or aq. With view find, all or one market, gt too."
    • changedInput schema / properties / view / description
      Previous value: -"prices (default): each section's prices and tickets now and for the last 7 days; with source, one market under its own section names (mlb has current sections only); unavailable names a market whose listings could not be read right now. levels: each section's level, the sections close to it on that level and the section across from it, each with the source that answered (our seat map, or the section number); a level is never guessed. listings: the listings on sale, one per row with section_key, row, quantity, prices and ticker_listing_id (Ticker's id for the listing, the same on every read), cheapest first; withheld names a source the plan leaves out, rows_truncated means more listings follow and next_cursor reads them. aggregate: one series across the sections asked (sections, required) on one listing source: lowest, quartiles, tickets and listings per read."New value: +"find: across a performer's upcoming events or a list of events, the events with listings in a section or on a level, at least min_quantity tickets together, at or under max_price, all-in unless price_basis says otherwise; per section each market where a row exists, with its cheapest and median, and no_match says why an event has none. Takes performer_id or event_ids, not event_id. prices (default): each section's prices and tickets now and for the last 7 days; with source, one market under its own section names (mlb has current sections only); unavailable names a market whose listings could not be read right now. levels: each section's level, the sections close to it on that level and the section across from it, each with the source that answered (our seat map, or the section number); a level is never guessed. listings: the listings on sale, one per row with section_key, row, quantity, prices and ticker_listing_id (Ticker's id for the listing, the same on every read), cheapest first; withheld names a source the plan leaves out, rows_truncated means more listings follow and next_cursor reads them. aggregate: one series across the sections asked (sections, required) on one listing source: lowest, quartiles, tickets and listings per read."
    • changedInput schema / properties / view / enum
      Previous value: -[
      -  "prices",
      -  "levels",
      -  "listings",
      -  "aggregate"
      -]New value: +[
      +  "prices",
      +  "levels",
      +  "listings",
      +  "aggregate",
      +  "find"
      +]
    • removedInput schema / required
      Removed value: -[
      -  "event_id"
      -]
  7. Changed1 schema field changed
    • changedInput schema / properties / currency / description
      Previous value: -"usd or venue. venue answers an event in a Canadian venue with every price in CAD at the event's Bank of Canada rate; one rate converts every market, so the cheapest market and any order stay the same. Omit for USD. A view with no price ignores it. An answer about an event in a Canadian venue says currency, venue_currency, fx_rate (USD per one unit of venue_currency) and fx_rate_date; quote the currency with every price and the rate date when it is CAD. A US event is always USD. mlb_* prices keep mlb_currency."New value: +"usd or venue. venue answers an event in a Canadian or UK venue with every price in the venue's currency (CAD or GBP) at the event's Bank of Canada rate; one rate converts every market, so the cheapest market and any order stay the same. Omit for USD. A view with no price ignores it. An answer in the venue's currency says currency, venue_currency, fx_rate (USD per one unit of venue_currency) and fx_rate_date; quote the currency with every price and the rate date when it is CAD or GBP. A US event is always USD. mlb_* prices keep mlb_currency."
  8. Changed1 schema field changed
    • addedInput schema / properties / exclude
      Added value: +{
      +  "description": "Comma separated. Listings to leave out of this answer: `zone` (Unassigned seats, the seller holds no specific seats yet; vs only) and `view` (Limited view, the market says the seats see the stage or field only in part; vs, sg, sgp and sh). Absent or empty: every listing counts, and the answer is the one with no exclude. A source that cannot state a kind is not filtered by it; `excluded` names what was left out. A price with nothing left is null, never 0. Set it only when the user asks to leave these listings out; the default answer is the whole market.",
      +  "maxLength": 64,
      +  "type": "string"
      +}
  9. Changed6 schema fields changed
    • changedInput schema / properties / currency / description
      Previous value: -"usd or venue. venue answers an event in a Canadian venue with every price in CAD at the event's Bank of Canada rate; one rate converts every market, so the cheapest market and any order stay the same. Omit for the account's saved choice (USD unless the person chose venue in Settings). An answer about an event in a Canadian venue says currency, venue_currency, fx_rate (USD per one unit of venue_currency) and fx_rate_date; quote the currency with every price and the rate date when it is CAD. A US event is always USD. mlb_* prices keep mlb_currency."New value: +"usd or venue. venue answers an event in a Canadian venue with every price in CAD at the event's Bank of Canada rate; one rate converts every market, so the cheapest market and any order stay the same. Omit for USD. A view with no price ignores it. An answer about an event in a Canadian venue says currency, venue_currency, fx_rate (USD per one unit of venue_currency) and fx_rate_date; quote the currency with every price and the rate date when it is CAD. A US event is always USD. mlb_* prices keep mlb_currency."
    • addedInput schema / properties / parking
      Added value: +{
      +  "description": "Parking passes listed inside the event are never among its tickets. hide (the default) leaves them out; include adds them as the parking group on the first page, at most 200; only lists the passes as the listings. On a parking event the passes are its listings at any value. Set it only when the user asks about parking.",
      +  "enum": [
      +    "hide",
      +    "include",
      +    "only"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / source / anyOf
      Added value: +[
      +  {
      +    "description": "all (the default): vs, tm_primary and tm_resale side by side. A market code: that market alone, under its own section names.",
      +    "enum": [
      +      "all",
      +      "vs",
      +      "tmr",
      +      "sh",
      +      "sg",
      +      "sgp",
      +      "tm",
      +      "mlb",
      +      "aq"
      +    ],
      +    "type": "string"
      +  },
      +  {
      +    "description": "all (the default): every listing source the plan includes, and withheld names the rest. A code: that source alone.",
      +    "enum": [
      +      "all",
      +      "vs",
      +      "sh",
      +      "sg",
      +      "tmr",
      +      "sgp",
      +      "aq"
      +    ],
      +    "type": "string"
      +  }
      +]
    • changedInput schema / properties / source / description
      Previous value: -"all (the default): vs, tm_primary and tm_resale side by side. A market code: that market alone, under its own section names. With view listings, all reads every listing source the plan includes, and vs, sh, sg, tmr or sgp reads that one. With view aggregate, one of vs (the default), sh, sg, tmr or sgp."New value: +"all (the default): vs, tm_primary and tm_resale side by side. A market code: that market alone, under its own section names. With view listings, all reads every listing source the plan includes, and vs, sh, sg, tmr, sgp or aq reads that one. With view aggregate, one of vs (the default), sh, sg, tmr, sgp or aq."
    • removedInput schema / properties / source / enum
      Removed value: -[
      -  "all",
      -  "vs",
      -  "tmr",
      -  "sh",
      -  "sg",
      -  "sgp",
      -  "tm",
      -  "mlb"
      -]
    • removedInput schema / properties / source / type
      Removed value: -"string"
  10. Changed1 schema field changed
    • changedInput schema / properties / range / description
      Previous value: -"aggregate: the window, 3d, 7d (the default), 30d, 90d or all."New value: +"prices and aggregate: how far back the series reaches, counted back from today: 3d, 7d (the default), 30d, 90d or all."
  11. Changed8 schema fields changed
    • addedInput schema / properties / cursor
      Added value: +{
      +  "description": "listings: next_cursor from the previous page, with the same source, order and sections, for the next page.",
      +  "maxLength": 400,
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedInput schema / properties / granularity
      Added value: +{
      +  "description": "`daily` (the default): one history point a date, its last reading. `intraday`: every reading the history holds, as the app reads it.",
      +  "enum": [
      +    "daily",
      +    "intraday"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / order
      Added value: +{
      +  "description": "listings: price (the default) reads the cheapest first, by the price after fees and then before; section walks by source, section, row and price.",
      +  "enum": [
      +    "section",
      +    "price"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / range
      Added value: +{
      +  "description": "aggregate: the window, 3d, 7d (the default), 30d, 90d or all.",
      +  "enum": [
      +    "3d",
      +    "7d",
      +    "30d",
      +    "90d",
      +    "all"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / sections / description
      Previous value: -"Only these sections, by a market's own label or by section_key (e.g. [\"108\",\"FL2\",\"FLOOR-10\"]). Omit for the whole house."New value: +"prices and listings: only these sections, by a market's own label or by section_key (e.g. [\"108\",\"FL2\",\"FLOOR-10\"]); omit for the whole house. aggregate: the sections to combine, required."
    • changedInput schema / properties / source / description
      Previous value: -"all (the default): vs, tm_primary and tm_resale side by side. A market code: that market alone, under its own section names. With view listings, all reads every listing source the plan includes, and vs, sh, sg, tmr or sgp reads that one."New value: +"all (the default): vs, tm_primary and tm_resale side by side. A market code: that market alone, under its own section names. With view listings, all reads every listing source the plan includes, and vs, sh, sg, tmr or sgp reads that one. With view aggregate, one of vs (the default), sh, sg, tmr or sgp."
    • changedInput schema / properties / view / description
      Previous value: -"prices (default): prices and tickets per section. levels: level, close sections and opposite. listings: the listings on sale, cheapest first."New value: +"prices (default): each section's prices and tickets now and for the last 7 days; with source, one market under its own section names (mlb has current sections only); unavailable names a market whose listings could not be read right now. levels: each section's level, the sections close to it on that level and the section across from it, each with the source that answered (our seat map, or the section number); a level is never guessed. listings: the listings on sale, one per row with section_key, row, quantity, prices and ticker_listing_id (Ticker's id for the listing, the same on every read), cheapest first; withheld names a source the plan leaves out, rows_truncated means more listings follow and next_cursor reads them. aggregate: one series across the sections asked (sections, required) on one listing source: lowest, quartiles, tickets and listings per read."
    • changedInput schema / properties / view / enum
      Previous value: -[
      -  "prices",
      -  "levels",
      -  "listings"
      -]New value: +[
      +  "prices",
      +  "levels",
      +  "listings",
      +  "aggregate"
      +]
  12. Changed1 schema field changed
    • addedInput schema / properties / currency
      Added value: +{
      +  "description": "usd or venue. venue answers an event in a Canadian venue with every price in CAD at the event's Bank of Canada rate; one rate converts every market, so the cheapest market and any order stay the same. Omit for the account's saved choice (USD unless the person chose venue in Settings). An answer about an event in a Canadian venue says currency, venue_currency, fx_rate (USD per one unit of venue_currency) and fx_rate_date; quote the currency with every price and the rate date when it is CAD. A US event is always USD. mlb_* prices keep mlb_currency.",
      +  "enum": [
      +    "usd",
      +    "venue"
      +  ],
      +  "type": "string"
      +}
  13. Changed4 schema fields changed
    • changedInput schema / properties / limit / description
      Previous value: -"Sections returned when `sections` is omitted. prices: default 40, at most 200. levels: default 200, at most 1000."New value: +"Rows returned. prices: sections when `sections` is omitted, default 40, at most 200. levels: sections, default 200, at most 1000. listings: listings, default 50, at most 100."
    • changedInput schema / properties / source / description
      Previous value: -"all (the default): vs, tm_primary and tm_resale side by side. A market code: that market alone, under its own section names."New value: +"all (the default): vs, tm_primary and tm_resale side by side. A market code: that market alone, under its own section names. With view listings, all reads every listing source the plan includes, and vs, sh, sg, tmr or sgp reads that one."
    • changedInput schema / properties / view / description
      Previous value: -"prices (default): prices and tickets per section. levels: level, close sections and opposite."New value: +"prices (default): prices and tickets per section. levels: level, close sections and opposite. listings: the listings on sale, cheapest first."
    • changedInput schema / properties / view / enum
      Previous value: -[
      -  "prices",
      -  "levels"
      -]New value: +[
      +  "prices",
      +  "levels",
      +  "listings"
      +]
  14. Changed2 schema fields changed
    • changedInput schema / properties / sections / description
      Previous value: -"Only these sections, by label or by section_key (e.g. [\"108\",\"FL2\",\"FLOOR-10\"]). Omit for the whole house."New value: +"Only these sections, by a market's own label or by section_key (e.g. [\"108\",\"FL2\",\"FLOOR-10\"]). Omit for the whole house."
    • addedInput schema / properties / source
      Added value: +{
      +  "description": "all (the default): vs, tm_primary and tm_resale side by side. A market code: that market alone, under its own section names.",
      +  "enum": [
      +    "all",
      +    "vs",
      +    "tmr",
      +    "sh",
      +    "sg",
      +    "sgp",
      +    "tm",
      +    "mlb"
      +  ],
      +  "type": "string"
      +}
  15. Changed4 schema fields changed
    • removedInput schema / properties / include_history / default
      Removed value: -true
    • removedInput schema / properties / limit / default
      Removed value: -40
    • changedInput schema / properties / limit / description
      Previous value: -"Cap on sections returned when `sections` is omitted. The widest events draw 650 sections."New value: +"Sections returned when `sections` is omitted. prices: default 40, at most 200. levels: default 200, at most 1000."
    • addedInput schema / properties / view
      Added value: +{
      +  "description": "prices (default): prices and tickets per section. levels: level, close sections and opposite.",
      +  "enum": [
      +    "prices",
      +    "levels"
      +  ],
      +  "type": "string"
      +}
  16. Changed1 schema field changed
    • changedInput schema / properties / sections / description
      Previous value: -"Only these sections, by label (e.g. [\"108\",\"FL2\"]). Omit for the whole house."New value: +"Only these sections, by label or by section_key (e.g. [\"108\",\"FL2\",\"FLOOR-10\"]). Omit for the whole house."
  17. Changed1 schema field changed
    • removedInput schema / properties / limit / maximum
      Removed value: -200
  18. First observed

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish read-only, non-destructive, closed-world behavior, and the description goes well beyond them: 'withheld' names sources the plan excludes, 'rows_truncated' plus next_cursor signals pagination, 'no_match' explains absence with a reason, a price with nothing left is null never 0, and currency conversion names fx_rate and rate date. These are real behavioral traits an agent must know to avoid misreading a partial or converted response.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The scope and sibling routing are front-loaded, but the opening sentence is a long 'or...or...or' enumeration of all six views that mirrors schema text, and later sentences repeat the default/source semantics already spelled out in the schema. For a 25-parameter tool some length is earned, yet the dense run-on phrasing costs readability without adding proportional value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a high-complexity, 25-parameter tool with no output schema, the description covers the important ground: what each view returns, how partial data is signalled (withheld, rows_truncated, no_match), pagination, parking handling, and currency behavior. It stops short of describing the response envelope or how views compose with limit/cursor defaults, but nothing critical to invoking it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 25 parameters in depth, including the six-value view enum. The description's per-view recap ('view prices (the default) puts the vs, tm_primary and tm_resale markets side by side by section_key') largely restates the schema's view text rather than adding new meaning, so the baseline 3 is the correct ceiling.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb and resource ('Returns market data per section') and immediately enumerates the concrete outputs: prices now and over 7 days, listings, section level/neighbors, an aggregate series, or a map image. It explicitly differentiates itself from get_event_sections_live (open-seat counts) and get_event_seats (single seats), so an agent can route without opening another schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit trigger conditions ('when the person asks about prices or listings by section, or for an event's cheapest listings'), names both alternatives with the condition that selects them, and adds a strong anti-pattern warning: across a performer's shows use view find in ONE call, never one call per event. This is exactly the when/when-not/alternative structure a 5 requires.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources