Skip to main content
Glama

Ticker: Live Event Ticket Market

Get Event Price or Demand History

get_event_chart
Read-only

Returns one event's price or demand history as a series, with a chart image. Use it when the person asks how an event's prices, listings, interest or sales moved over time. metric price (the default) reads one source at a time, vs resale unless source names another, and never mixes primary and resale. metric demand reads Interest and Sales as whole numbers. For the event's numbers now use get_event_analytics; for one section in finer steps use get_event_sections_live with view series.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "event_id": "<event_id>"
    },
    "name": "get_event_chart"
  }
}

Input Schema

NameRequiredDescriptionDefault
rangeNoLookback window: 3d | 7d | 14d | 28d | 30d | 90d | all. Price: absent or all is every point, on every source. Demand: default 28d, and all is about a year.
marketNoThe market `rows` reads; vs is the default. A market the account's plan does not include is refused; markets still gives every market the plan includes.
metricNoprice (default): prices, listings and tickets from one source, one point per date or, at granularity intraday, one per reading; a date with no row has no reading, and vs ends on the latest reading. demand: Interest (the most people viewing in an hour) and Sales (tickets bought, with orders beside them on vs), one row per date or, at granularity intraday, per hour for at most 90 days; markets carries each market's Sales over 24 hours, 7 and 30 days and its Interest side by side, never summed.
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.
sourceNoComparison source: choose one of the source codes. Every code answers the series envelope ({source, meta:{coverageStart, lastMeasuredAt, granularity, mapped, bases}, series:[{date, floor, median, p25, p75, floorAip, medianAip, p25Aip, p75Aip, listings, tickets}]}); mapped:false means that source does not read the event. Default vs; tm is the primary market, tmr the resale market, and vs, tp, tmr, gt, sg, sh, aq and go are all resale. Never mix a primary and a resale source into one series. Every code but aq and go serves the price (before fees) in floor and the all-in price (with fees) in floorAip; compare like with like. aq (named AQ B2B) is wholesale resale depth: floor (its lowest asking price), median, p25, p75, listings and tickets from confirmed readings; all-in fields are null. go states one price, its lowest all-in price (floorAip), and its tickets on sale; every other field is null, and mapped:false on go means not read. mlb is the club's own primary market for an mlb game, with disclosed face values with their disclosed all-in beside them. sgp is the sg primary market; sg is the sg resale market only.
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.
sectionNomlb only: one or more sections of this event, comma separated (at most 60), each as get_event_sections_live view now with source mlb keys it (its sectionKey). With one section the series is that section's own statistics. With several, tickets is their sum, floor the lowest floor and median the median of the section medians; p25 and p75 are null, because a quantile does not add. A reading in which no named section was measured has no point. Any other source answers 400 when it is passed.
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_idYesThe event to chart. Ticker event id, `ev` plus ten characters, as returned by every tool here. A marketplace event link also resolves, as does a marketplace id with its source prefix (`vs:`, `sh:`, `tm:`, `sg:`, `gt:`, `ax:`, `tp:`) or bare until 2027-09-13. An id two events share is refused with both their ids.
granularityNoPrice: `daily` (default): one point per date, `date` is YYYY-MM-DD. `intraday`: one point per reading, `date` is its time, where the source holds them; `meta.granularity` says which was served. Demand: `daily` (default), one row per date; `intraday`, one row per reading for the window's last 90 dates, one row per date before them.

Schema Changelog

Changes observed during successful MCP inspections.

  1. 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."
  2. 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"
      +}
  3. Changed2 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."
    • changedInput schema / properties / source / description
      Previous value: -"Comparison source: choose one of the source codes. Every code answers the series envelope ({source, meta:{coverageStart, lastMeasuredAt, granularity, mapped, bases}, series:[{date, floor, median, p25, p75, floorAip, medianAip, p25Aip, p75Aip, listings, tickets}]}); mapped:false means that source does not read the event. Default vs; tm is the primary market, tmr the resale market, and vs, tp, tmr, gt, sg, sh, aq and go are all resale. Never mix a primary and a resale source into one series. Every code but aq and go serves the price (before fees) in floor and the all-in price (with fees) in floorAip; compare like with like. aq (named AQ B2B) is a wholesale resale summary: floor (its lowest listing price, never all-in), listings and tickets; every other price field is null. go states one price, its lowest all-in price (floorAip), and its tickets on sale; every other field is null, and mapped:false on go means not read. mlb is the club's own primary market for an mlb game, with disclosed face values with their disclosed all-in beside them. sgp is the sg primary market; sg is the sg resale market only."New value: +"Comparison source: choose one of the source codes. Every code answers the series envelope ({source, meta:{coverageStart, lastMeasuredAt, granularity, mapped, bases}, series:[{date, floor, median, p25, p75, floorAip, medianAip, p25Aip, p75Aip, listings, tickets}]}); mapped:false means that source does not read the event. Default vs; tm is the primary market, tmr the resale market, and vs, tp, tmr, gt, sg, sh, aq and go are all resale. Never mix a primary and a resale source into one series. Every code but aq and go serves the price (before fees) in floor and the all-in price (with fees) in floorAip; compare like with like. aq (named AQ B2B) is wholesale resale depth: floor (its lowest asking price), median, p25, p75, listings and tickets from confirmed readings; all-in fields are null. go states one price, its lowest all-in price (floorAip), and its tickets on sale; every other field is null, and mapped:false on go means not read. mlb is the club's own primary market for an mlb game, with disclosed face values with their disclosed all-in beside them. sgp is the sg primary market; sg is the sg resale market only."
  4. Changed2 schema fields changed
    • changedInput schema / properties / source / description
      Previous value: -"Comparison source: choose one of the source codes. Every code answers the series envelope ({source, meta:{coverageStart, lastMeasuredAt, granularity, mapped, bases}, series:[{date, floor, median, p25, p75, floorAip, medianAip, p25Aip, p75Aip, listings, tickets}]}); mapped:false means that source does not read the event. Default vs; tm is the primary market, tmr the resale market, and vs, tp, tmr, gt, sg, sh and aq are all resale. Never mix a primary and a resale source into one series. Every code but aq serves the price (before fees) in floor and the all-in price (with fees) in floorAip; compare like with like. aq (named AQ B2B) is a wholesale resale summary: floor (its lowest listing price, never all-in), listings and tickets; every other price field is null. mlb is the club's own primary market for an mlb game, with disclosed face values with their disclosed all-in beside them. sgp is the sg primary market; sg is the sg resale market only."New value: +"Comparison source: choose one of the source codes. Every code answers the series envelope ({source, meta:{coverageStart, lastMeasuredAt, granularity, mapped, bases}, series:[{date, floor, median, p25, p75, floorAip, medianAip, p25Aip, p75Aip, listings, tickets}]}); mapped:false means that source does not read the event. Default vs; tm is the primary market, tmr the resale market, and vs, tp, tmr, gt, sg, sh, aq and go are all resale. Never mix a primary and a resale source into one series. Every code but aq and go serves the price (before fees) in floor and the all-in price (with fees) in floorAip; compare like with like. aq (named AQ B2B) is a wholesale resale summary: floor (its lowest listing price, never all-in), listings and tickets; every other price field is null. go states one price, its lowest all-in price (floorAip), and its tickets on sale; every other field is null, and mapped:false on go means not read. mlb is the club's own primary market for an mlb game, with disclosed face values with their disclosed all-in beside them. sgp is the sg primary market; sg is the sg resale market only."
    • changedInput schema / properties / source / enum
      Previous value: -[
      -  "vs",
      -  "tp",
      -  "tm",
      -  "tmr",
      -  "gt",
      -  "sg",
      -  "sh",
      -  "mlb",
      -  "sgp",
      -  "aq",
      -  "axs",
      -  "axsr"
      -]New value: +[
      +  "vs",
      +  "tp",
      +  "tm",
      +  "tmr",
      +  "gt",
      +  "sg",
      +  "sh",
      +  "mlb",
      +  "sgp",
      +  "aq",
      +  "axs",
      +  "axsr",
      +  "go"
      +]
  5. Changed4 schema fields changed
    • addedInput schema / properties / market
      Added value: +{
      +  "description": "The market `rows` reads; vs is the default. A market the account's plan does not include is refused; markets still gives every market the plan includes.",
      +  "enum": [
      +    "vs",
      +    "sh"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / metric / description
      Previous value: -"price (default): prices and inventory. demand: interest and sales, whole numbers."New value: +"price (default): prices, listings and tickets from one source, one point per date or, at granularity intraday, one per reading; a date with no row has no reading, and vs ends on the latest reading. demand: Interest (the most people viewing in an hour) and Sales (tickets bought, with orders beside them on vs), one row per date or, at granularity intraday, per hour for at most 90 days; markets carries each market's Sales over 24 hours, 7 and 30 days and its Interest side by side, never summed."
    • addedInput schema / properties / section
      Added value: +{
      +  "description": "mlb only: one or more sections of this event, comma separated (at most 60), each as get_event_sections_live view now with source mlb keys it (its sectionKey). With one section the series is that section's own statistics. With several, tickets is their sum, floor the lowest floor and median the median of the section medians; p25 and p75 are null, because a quantile does not add. A reading in which no named section was measured has no point. Any other source answers 400 when it is passed.",
      +  "maxLength": 3900,
      +  "minLength": 1,
      +  "type": "string"
      +}
    • changedInput schema / properties / source / description
      Previous value: -"Comparison source: choose one of the source codes. Every code answers the series envelope ({source, meta:{coverageStart, lastMeasuredAt, granularity, mapped, bases}, series:[{date, floor, median, p25, p75, floorAip, medianAip, p25Aip, p75Aip, listings, tickets}]}); mapped:false means the event has no link to that source. Default vs; tm is the primary market, tmr the resale market, and vs, tp, tmr, gt, sg, sh and aq are all resale. Never mix a primary and a resale source into one series. Every code but aq serves the price (before fees) in floor and the all-in price (with fees) in floorAip; compare like with like. aq (named AQ B2B) is a wholesale resale summary: floor (its lowest listing price, never all-in), listings and tickets; every other price field is null. mlb is the club's own primary market for an mlb game, with disclosed face values with their disclosed all-in beside them. sgp is the sg primary market; sg is the sg resale market only."New value: +"Comparison source: choose one of the source codes. Every code answers the series envelope ({source, meta:{coverageStart, lastMeasuredAt, granularity, mapped, bases}, series:[{date, floor, median, p25, p75, floorAip, medianAip, p25Aip, p75Aip, listings, tickets}]}); mapped:false means that source does not read the event. Default vs; tm is the primary market, tmr the resale market, and vs, tp, tmr, gt, sg, sh and aq are all resale. Never mix a primary and a resale source into one series. Every code but aq serves the price (before fees) in floor and the all-in price (with fees) in floorAip; compare like with like. aq (named AQ B2B) is a wholesale resale summary: floor (its lowest listing price, never all-in), listings and tickets; every other price field is null. mlb is the club's own primary market for an mlb game, with disclosed face values with their disclosed all-in beside them. sgp is the sg primary market; sg is the sg resale market only."
  6. Changed3 schema fields changed
    • changedInput schema / properties / granularity / description
      Previous value: -"`daily` (default): one row per date, its value for the date. `intraday`: one row per reading for the window's last 90 dates (last_snapshot_time is when it was read), one row per date before them."New value: +"Price: `daily` (default): one point per date, `date` is YYYY-MM-DD. `intraday`: one point per reading, `date` is its time, where the source holds them; `meta.granularity` says which was served. Demand: `daily` (default), one row per date; `intraday`, one row per reading for the window's last 90 dates, one row per date before them."
    • changedInput schema / properties / range / description
      Previous value: -"Lookback window: 3d | 7d | 14d | 28d | 30d | 90d | all (about a year). Default 90d for price, on every source, and 28d for demand."New value: +"Lookback window: 3d | 7d | 14d | 28d | 30d | 90d | all. Price: absent or all is every point, on every source. Demand: default 28d, and all is about a year."
    • changedInput schema / properties / source / description
      Previous value: -"Comparison source: choose one of the source codes. vs answers the per-date rollup; every other code answers the per-source series envelope ({source, meta:{coverageStart, lastMeasuredAt, granularity, mapped, bases}, series:[{date, floor, median, p25, p75, floorAip, medianAip, p25Aip, p75Aip, listings, tickets}]}), data only; mapped:false means the event has no link to that source. Default vs (this tool's classic per-date rollup shape); tm is the primary market, tmr the resale market, and vs, tp, tmr, gt, sg, sh and aq are all resale. Never mix a primary and a resale source into one series. Every code but aq serves the price (before fees) in floor and the all-in price (with fees) in floorAip; compare like with like. aq (named AQ B2B) is a wholesale resale summary: floor (its lowest listing price, never all-in), listings and tickets; every other price field is null. mlb is the club's own primary market for an mlb game, with disclosed face values with their disclosed all-in beside them. sgp is the sg primary market; sg is the sg resale market only."New value: +"Comparison source: choose one of the source codes. Every code answers the series envelope ({source, meta:{coverageStart, lastMeasuredAt, granularity, mapped, bases}, series:[{date, floor, median, p25, p75, floorAip, medianAip, p25Aip, p75Aip, listings, tickets}]}); mapped:false means the event has no link to that source. Default vs; tm is the primary market, tmr the resale market, and vs, tp, tmr, gt, sg, sh and aq are all resale. Never mix a primary and a resale source into one series. Every code but aq serves the price (before fees) in floor and the all-in price (with fees) in floorAip; compare like with like. aq (named AQ B2B) is a wholesale resale summary: floor (its lowest listing price, never all-in), listings and tickets; every other price field is null. mlb is the club's own primary market for an mlb game, with disclosed face values with their disclosed all-in beside them. sgp is the sg primary market; sg is the sg resale market only."
  7. Changed1 schema field changed
    • changedInput schema / properties / source / description
      Previous value: -"Comparison source: choose one of the source codes. vs answers the per-date rollup; every other code answers the per-source series envelope ({source, meta:{coverageStart, lastMeasuredAt, granularity, mapped, bases}, series:[{date, floor, median, p25, p75, floorAip, medianAip, p25Aip, p75Aip, listings, tickets}]}), data only; mapped:false means the event has no link to that source. Default vs (this tool's classic per-date rollup shape); tm is the primary market, tmr the resale market, and vs, tp, tmr, gt, sg, sh and aq are all resale. Never mix a primary and a resale source into one series. Every code but aq serves the price (before fees) in floor and the all-in price (with fees) in floorAip; compare like with like. aq (named AQ B2B) is a wholesale resale summary: floor (its lowest listing price, never all-in), listings and tickets; every other price field is null. mlb is the club box office of an mlb game, a primary market of disclosed face values with their disclosed all-in beside them. sgp is the sg primary market; sg is the sg resale market only."New value: +"Comparison source: choose one of the source codes. vs answers the per-date rollup; every other code answers the per-source series envelope ({source, meta:{coverageStart, lastMeasuredAt, granularity, mapped, bases}, series:[{date, floor, median, p25, p75, floorAip, medianAip, p25Aip, p75Aip, listings, tickets}]}), data only; mapped:false means the event has no link to that source. Default vs (this tool's classic per-date rollup shape); tm is the primary market, tmr the resale market, and vs, tp, tmr, gt, sg, sh and aq are all resale. Never mix a primary and a resale source into one series. Every code but aq serves the price (before fees) in floor and the all-in price (with fees) in floorAip; compare like with like. aq (named AQ B2B) is a wholesale resale summary: floor (its lowest listing price, never all-in), listings and tickets; every other price field is null. mlb is the club's own primary market for an mlb game, with disclosed face values with their disclosed all-in beside them. sgp is the sg primary market; sg is the sg resale market only."
  8. 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"
      +}
  9. Changed3 schema fields changed
    • changedInput schema / properties / metric / description
      Previous value: -"price (default): prices and inventory. demand: interest and sales per hour."New value: +"price (default): prices and inventory. demand: interest and sales, whole numbers."
    • changedInput schema / properties / source / description
      Previous value: -"Comparison source: vs | tp | tm | tmr | gt | sg | sh | mlb | sgp | aq. vs answers the per-date rollup; every other code answers the per-source series envelope ({source, meta:{coverageStart, lastMeasuredAt, granularity, mapped, bases}, series:[{date, floor, median, p25, p75, floorAip, medianAip, p25Aip, p75Aip, listings, tickets}]}), data only; mapped:false means the event has no link to that source. Default vs (this tool's classic per-date rollup shape); tm is the primary market, tmr the resale market, and vs, tp, tmr, gt, sg, sh and aq are all resale. Never mix a primary and a resale source into one series. Every code but aq serves the price (before fees) in floor and the all-in price (with fees) in floorAip; compare like with like. aq (named AQ B2B) is a wholesale resale summary: floor (its lowest listing price, never all-in), listings and tickets; every other price field is null. mlb is the club box office of an mlb game, a primary market of disclosed face values with their disclosed all-in beside them. sgp is the sg primary market; sg is the sg resale market only."New value: +"Comparison source: choose one of the source codes. vs answers the per-date rollup; every other code answers the per-source series envelope ({source, meta:{coverageStart, lastMeasuredAt, granularity, mapped, bases}, series:[{date, floor, median, p25, p75, floorAip, medianAip, p25Aip, p75Aip, listings, tickets}]}), data only; mapped:false means the event has no link to that source. Default vs (this tool's classic per-date rollup shape); tm is the primary market, tmr the resale market, and vs, tp, tmr, gt, sg, sh and aq are all resale. Never mix a primary and a resale source into one series. Every code but aq serves the price (before fees) in floor and the all-in price (with fees) in floorAip; compare like with like. aq (named AQ B2B) is a wholesale resale summary: floor (its lowest listing price, never all-in), listings and tickets; every other price field is null. mlb is the club box office of an mlb game, a primary market of disclosed face values with their disclosed all-in beside them. sgp is the sg primary market; sg is the sg resale market only."
    • changedInput schema / properties / source / enum
      Previous value: -[
      -  "vs",
      -  "tp",
      -  "tm",
      -  "tmr",
      -  "gt",
      -  "sg",
      -  "sh",
      -  "mlb",
      -  "sgp",
      -  "aq"
      -]New value: +[
      +  "vs",
      +  "tp",
      +  "tm",
      +  "tmr",
      +  "gt",
      +  "sg",
      +  "sh",
      +  "mlb",
      +  "sgp",
      +  "aq",
      +  "axs",
      +  "axsr"
      +]
  10. Changed2 schema fields changed
    • changedInput schema / properties / range / description
      Previous value: -"Lookback window: 7d | 14d | 28d | 90d | all (about a year). Default 90d for price, 28d for demand. vs only on price; other sources answer full depth."New value: +"Lookback window: 3d | 7d | 14d | 28d | 30d | 90d | all (about a year). Default 90d for price, on every source, and 28d for demand."
    • changedInput schema / properties / range / enum
      Previous value: -[
      -  "7d",
      -  "14d",
      -  "28d",
      -  "90d",
      -  "all"
      -]New value: +[
      +  "3d",
      +  "7d",
      +  "14d",
      +  "28d",
      +  "30d",
      +  "90d",
      +  "all"
      +]
  11. Changed2 schema fields changed
    • changedInput schema / properties / source / description
      Previous value: -"Comparison source: vs | tp | tm | tmr | sg | sh | mlb | sgp | aq. vs answers the per-date rollup; every other code answers the per-source series envelope ({source, meta:{coverageStart, lastMeasuredAt, granularity, mapped, bases}, series:[{date, floor, median, p25, p75, floorAip, medianAip, p25Aip, p75Aip, listings, tickets}]}), data only; mapped:false means the event has no link to that source. Default vs (this tool's classic per-date rollup shape); tm is the primary market, tmr the resale market, and vs, tp, tmr, sg, sh and aq are all resale. Never mix a primary and a resale source into one series. Every code but aq serves the price (before fees) in floor and the all-in price (with fees) in floorAip; compare like with like. aq (named AQ B2B) is a wholesale resale summary: floor (its lowest listing price, never all-in), listings and tickets; every other price field is null. mlb is the club box office of an mlb game, a primary market of disclosed face values with their disclosed all-in beside them. sgp is the sg primary market; sg is the sg resale market only."New value: +"Comparison source: vs | tp | tm | tmr | gt | sg | sh | mlb | sgp | aq. vs answers the per-date rollup; every other code answers the per-source series envelope ({source, meta:{coverageStart, lastMeasuredAt, granularity, mapped, bases}, series:[{date, floor, median, p25, p75, floorAip, medianAip, p25Aip, p75Aip, listings, tickets}]}), data only; mapped:false means the event has no link to that source. Default vs (this tool's classic per-date rollup shape); tm is the primary market, tmr the resale market, and vs, tp, tmr, gt, sg, sh and aq are all resale. Never mix a primary and a resale source into one series. Every code but aq serves the price (before fees) in floor and the all-in price (with fees) in floorAip; compare like with like. aq (named AQ B2B) is a wholesale resale summary: floor (its lowest listing price, never all-in), listings and tickets; every other price field is null. mlb is the club box office of an mlb game, a primary market of disclosed face values with their disclosed all-in beside them. sgp is the sg primary market; sg is the sg resale market only."
    • changedInput schema / properties / source / enum
      Previous value: -[
      -  "vs",
      -  "tp",
      -  "tm",
      -  "tmr",
      -  "sg",
      -  "sh",
      -  "mlb",
      -  "sgp",
      -  "aq"
      -]New value: +[
      +  "vs",
      +  "tp",
      +  "tm",
      +  "tmr",
      +  "gt",
      +  "sg",
      +  "sh",
      +  "mlb",
      +  "sgp",
      +  "aq"
      +]
  12. Changed2 schema fields changed
    • changedInput schema / properties / granularity / description
      Previous value: -"`daily` (default): one row per date, the date's last reading. `intraday`: one row per reading for the window's last 90 dates (last_snapshot_time is when it was read), one row per date before them."New value: +"`daily` (default): one row per date, its value for the date. `intraday`: one row per reading for the window's last 90 dates (last_snapshot_time is when it was read), one row per date before them."
    • changedInput schema / properties / metric / description
      Previous value: -"price (default): prices and inventory. demand: interest and sales levels."New value: +"price (default): prices and inventory. demand: interest and sales per hour."
  13. Changed1 schema field changed
    • changedInput schema / properties / source / description
      Previous value: -"Comparison source: vs | tp | tm | tmr | sg | sh | mlb | sgp | aq. vs answers the per-date rollup; every other code answers the per-source series envelope ({source, meta:{coverageStart, lastMeasuredAt, granularity, mapped, bases}, series:[{date, floor, median, p25, p75, floorAip, medianAip, p25Aip, p75Aip, listings, tickets}]}), data only; mapped:false means the event has no link to that source. Default vs (this tool's classic per-date rollup shape); tm is the primary market, tmr the resale market, and vs, tp, tmr, sg, sh and aq are all resale. Never mix a primary and a resale source into one series. Every code but aq serves the price (before fees) in floor and the all-in price (with fees) in floorAip; compare like with like. aq is a wholesale resale summary: floor (its lowest listing price, never all-in), listings and tickets; every other price field is null. mlb is the club box office of an mlb game, a primary market of disclosed face values with their disclosed all-in beside them. sgp is the sg primary market; sg is the sg resale market only."New value: +"Comparison source: vs | tp | tm | tmr | sg | sh | mlb | sgp | aq. vs answers the per-date rollup; every other code answers the per-source series envelope ({source, meta:{coverageStart, lastMeasuredAt, granularity, mapped, bases}, series:[{date, floor, median, p25, p75, floorAip, medianAip, p25Aip, p75Aip, listings, tickets}]}), data only; mapped:false means the event has no link to that source. Default vs (this tool's classic per-date rollup shape); tm is the primary market, tmr the resale market, and vs, tp, tmr, sg, sh and aq are all resale. Never mix a primary and a resale source into one series. Every code but aq serves the price (before fees) in floor and the all-in price (with fees) in floorAip; compare like with like. aq (named AQ B2B) is a wholesale resale summary: floor (its lowest listing price, never all-in), listings and tickets; every other price field is null. mlb is the club box office of an mlb game, a primary market of disclosed face values with their disclosed all-in beside them. sgp is the sg primary market; sg is the sg resale market only."
  14. Changed2 schema fields changed
    • changedInput schema / properties / source / description
      Previous value: -"Comparison source: vs | tp | tm | tmr | sg | sh | mlb | sgp. vs answers the per-date rollup; every other code answers the per-source series envelope ({source, meta:{coverageStart, lastMeasuredAt, granularity, mapped, bases}, series:[{date, floor, median, p25, p75, floorAip, medianAip, p25Aip, p75Aip, listings, tickets}]}), data only; mapped:false means the event has no link to that source. Default vs (this tool's classic per-date rollup shape); tm is the primary market, tmr the resale market, and vs, tp, tmr, sg and sh are all resale. Never mix a primary and a resale source into one series. Every code serves the price (before fees) in floor and the all-in price (with fees) in floorAip; compare like with like. mlb is the club box office of an mlb game, a primary market of disclosed face values with their disclosed all-in beside them. sgp is the sg primary market; sg is the sg resale market only."New value: +"Comparison source: vs | tp | tm | tmr | sg | sh | mlb | sgp | aq. vs answers the per-date rollup; every other code answers the per-source series envelope ({source, meta:{coverageStart, lastMeasuredAt, granularity, mapped, bases}, series:[{date, floor, median, p25, p75, floorAip, medianAip, p25Aip, p75Aip, listings, tickets}]}), data only; mapped:false means the event has no link to that source. Default vs (this tool's classic per-date rollup shape); tm is the primary market, tmr the resale market, and vs, tp, tmr, sg, sh and aq are all resale. Never mix a primary and a resale source into one series. Every code but aq serves the price (before fees) in floor and the all-in price (with fees) in floorAip; compare like with like. aq is a wholesale resale summary: floor (its lowest listing price, never all-in), listings and tickets; every other price field is null. mlb is the club box office of an mlb game, a primary market of disclosed face values with their disclosed all-in beside them. sgp is the sg primary market; sg is the sg resale market only."
    • changedInput schema / properties / source / enum
      Previous value: -[
      -  "vs",
      -  "tp",
      -  "tm",
      -  "tmr",
      -  "sg",
      -  "sh",
      -  "mlb",
      -  "sgp"
      -]New value: +[
      +  "vs",
      +  "tp",
      +  "tm",
      +  "tmr",
      +  "sg",
      +  "sh",
      +  "mlb",
      +  "sgp",
      +  "aq"
      +]
  15. Changed1 schema field changed
    • changedInput schema / properties / event_id / description
      Previous value: -"The event to chart. Ticker event id, `ev` plus ten characters, as returned by every tool here. A marketplace id also resolves when it carries its source prefix (`vs:`, `tm:`, `tp:`), and a bare marketplace id resolves until 2027-09-13."New value: +"The event to chart. Ticker event id, `ev` plus ten characters, as returned by every tool here. A marketplace event link also resolves, as does a marketplace id with its source prefix (`vs:`, `sh:`, `tm:`, `sg:`, `gt:`, `ax:`, `tp:`) or bare until 2027-09-13. An id two events share is refused with both their ids."
  16. Changed2 schema fields changed
    • changedInput schema / properties / source / description
      Previous value: -"Comparison source: vs | tp | tm | tmr | gt | sg | sh | mlb | sgp. vs answers the per-date rollup; every other code answers the per-source series envelope ({source, meta:{coverageStart, lastMeasuredAt, granularity, mapped, bases}, series:[{date, floor, median, p25, p75, floorAip, medianAip, p25Aip, p75Aip, listings, tickets}]}), data only; mapped:false means the event has no link to that source. Default vs (this tool's classic per-date rollup shape); tm is the primary market, tmr the resale market, and vs, tp, tmr, gt, sg and sh are all resale. Never mix a primary and a resale source into one series. Every code serves the price (before fees) in floor and the all-in price (with fees) in floorAip; compare like with like. mlb is the club box office of an mlb game, a primary market of disclosed face values with their disclosed all-in beside them. sgp is the sg primary market; sg is the sg resale market only."New value: +"Comparison source: vs | tp | tm | tmr | sg | sh | mlb | sgp. vs answers the per-date rollup; every other code answers the per-source series envelope ({source, meta:{coverageStart, lastMeasuredAt, granularity, mapped, bases}, series:[{date, floor, median, p25, p75, floorAip, medianAip, p25Aip, p75Aip, listings, tickets}]}), data only; mapped:false means the event has no link to that source. Default vs (this tool's classic per-date rollup shape); tm is the primary market, tmr the resale market, and vs, tp, tmr, sg and sh are all resale. Never mix a primary and a resale source into one series. Every code serves the price (before fees) in floor and the all-in price (with fees) in floorAip; compare like with like. mlb is the club box office of an mlb game, a primary market of disclosed face values with their disclosed all-in beside them. sgp is the sg primary market; sg is the sg resale market only."
    • changedInput schema / properties / source / enum
      Previous value: -[
      -  "vs",
      -  "tp",
      -  "tm",
      -  "tmr",
      -  "gt",
      -  "sg",
      -  "sh",
      -  "mlb",
      -  "sgp"
      -]New value: +[
      +  "vs",
      +  "tp",
      +  "tm",
      +  "tmr",
      +  "sg",
      +  "sh",
      +  "mlb",
      +  "sgp"
      +]
  17. Changed1 schema field changed
    • changedInput schema / properties / granularity / description
      Previous value: -"`daily` (default): one row per date, the date's last reading. `intraday`: one row per reading for the window's last 14 dates (last_snapshot_time is when it was read), one row per date before them."New value: +"`daily` (default): one row per date, the date's last reading. `intraday`: one row per reading for the window's last 90 dates (last_snapshot_time is when it was read), one row per date before them."
  18. Changed1 schema field changed
    • addedInput schema / properties / granularity
      Added value: +{
      +  "description": "`daily` (default): one row per date, the date's last reading. `intraday`: one row per reading for the window's last 14 dates (last_snapshot_time is when it was read), one row per date before them.",
      +  "enum": [
      +    "daily",
      +    "intraday"
      +  ],
      +  "type": "string"
      +}
  19. Added

TDQS

A4.9/5.0
Behavior5/5

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

Beyond the read-only annotations, the description discloses important behavior: the default rendered PNG chart, the smaller data-only response when render is false, and the rule that price never mixes primary and resale sources. It also explains source-specific nulls, exclusion behavior, currency handling, and section aggregation effects.

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

Conciseness5/5

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

The description is front-loaded with purpose, then usage, metric semantics, and alternatives. It is dense but well organized, and every sentence adds routing or behavioral information.

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

Completeness5/5

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

Given the tool's complexity, 10 parameters, 6 enums, and no output schema, the definition is complete enough for correct invocation. It covers purpose, usage, key defaults, source behavior, and alternatives, while the schema provides detailed parameter-level semantics.

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

Parameters4/5

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

Schema coverage is already 100%, so the baseline is 3. The description still adds useful top-level meaning by clarifying the default metric, how price and demand differ, when primary and resale are never mixed, and how alternatives map to adjacent tools.

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?

The description states a specific verb and resource: returning one event's price or demand history as a series with a chart image. It distinguishes the two metrics and names sibling tools for adjacent use cases, so an agent can identify the tool without opening the 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?

It explicitly says when to use this tool: when the person asks how an event's prices, listings, interest or sales moved over time. It also names alternatives and the conditions that select them, including get_event_analytics for current numbers and get_event_sections_live with view series for one section at finer steps.

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