Free, no key: NFL + NBA prop boards, NHL model, Kalshi vs Polymarket gaps, Fed odds, EV/Kelly.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
In season: Kalshi vs book-consensus gaps on this week's NFL props, widest first, filter by position. Free. (ADP gaps return in the 2027 offseason.)
Max rows (default 15). Values above 50 are clamped to 50.
Optional position filter (FLEX = RB/WR/TE). One of: QB · RB · WR · TE · FLEX.
In season: Kalshi vs book-consensus gaps on this week's NFL props, widest first, filter by position. Free. (ADP gaps return in the 2027 offseason.)
| Argument | Type | Description |
|---|---|---|
| limit | number | string | null | Max rows (default 15). Values above 50 are clamped to 50. |
| position | any | Optional position filter (FLEX = RB/WR/TE). One of: QB · RB · WR · TE · FLEX. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": [
"number",
"string",
"null"
],
"description": "Max rows (default 15). Values above 50 are clamped to 50."
},
"position": {
"anyOf": [
{
"type": "string"
},
{
"enum": [
"QB",
"RB",
"WR",
"TE",
"FLEX"
],
"type": "string"
}
],
"description": "Optional position filter (FLEX = RB/WR/TE). One of: QB · RB · WR · TE · FLEX."
}
}
}Use for "how does this price compare to history" and "is the market ignoring the base rate". Compares a market price with the historical base rate for a class of events: the gap in pp, a signal, and sample-size quality. Pass a known baseRateId (the parameter lists them) or your own baseRateValue.
| Argument | Type | Description |
|---|---|---|
| baseRateId | any | Known base-rate id to look up (includes sample size + source). One of: incumbent_reelected · fed_hold_unemp_below_4 · fed_cut_cpi_above_3 · recession_called_12mo · sp500_positive_year · bitcoin_above_100k_eoy · gdp_growth_above_2 · cpi_above_3 · senate_incumbent_wins_primary · vix_below_20_eoy · interest_rate_cut_next_meeting · major_sports_upset. |
| marketPrice | number | string | Current market price in cents / implied probability % (0–100). Needed for a real answer. Accepts 55, "55%", "55¢", "$0.55", 0.55 or American odds (+120 / -150) — all read as 55%. |
| baseRateValue | number | Your own base rate in % (0–100), used when no baseRateId is given. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"baseRateId": {
"anyOf": [
{
"type": "string"
},
{
"enum": [
"incumbent_reelected",
"fed_hold_unemp_below_4",
"fed_cut_cpi_above_3",
"recession_called_12mo",
"sp500_positive_year",
"bitcoin_above_100k_eoy",
"gdp_growth_above_2",
"cpi_above_3",
"senate_incumbent_wins_primary",
"vix_below_20_eoy",
"interest_rate_cut_next_meeting",
"major_sports_upset"
],
"type": "string"
}
],
"description": "Known base-rate id to look up (includes sample size + source). One of: incumbent_reelected · fed_hold_unemp_below_4 · fed_cut_cpi_above_3 · recession_called_12mo · sp500_positive_year · bitcoin_above_100k_eoy · gdp_growth_above_2 · cpi_above_3 · senate_incumbent_wins_primary · vix_below_20_eoy · interest_rate_cut_next_meeting · major_sports_upset."
},
"marketPrice": {
"type": [
"number",
"string"
],
"description": "Current market price in cents / implied probability % (0–100). Needed for a real answer. Accepts 55, \"55%\", \"55¢\", \"$0.55\", 0.55 or American odds (+120 / -150) — all read as 55%."
},
"baseRateValue": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "Your own base rate in % (0–100), used when no baseRateId is given."
}
}
}Update a prior probability with one or more pieces of evidence using Bayes theorem. Given a prior and a list of evidence items (each with P(evidence | true) and P(evidence | false)), returns the posterior probability and the per-step chain. Use for "update my estimate with new information", "posterior probability", "how does this news change the odds".
| Argument | Type | Description |
|---|---|---|
| prior | number | string | Prior probability the hypothesis is true, in % (0–100). Needed for a real answer. Accepts 55, "55%", "55¢", "$0.55", 0.55 or American odds (+120 / -150) — all read as 55%. |
| evidence | array | One or more evidence items, applied in order. Each item needs likelihoodIfTrue and likelihoodIfFalse on the 0–100 scale, e.g. [{ "likelihoodIfTrue": 80, "likelihoodIfFalse": 20 }]. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"prior": {
"type": [
"number",
"string"
],
"description": "Prior probability the hypothesis is true, in % (0–100). Needed for a real answer. Accepts 55, \"55%\", \"55¢\", \"$0.55\", 0.55 or American odds (+120 / -150) — all read as 55%."
},
"evidence": {
"type": "array",
"items": {
"type": "object",
"required": [
"likelihoodIfTrue",
"likelihoodIfFalse"
],
"properties": {
"label": {
"type": "string",
"description": "Optional short caption for this evidence. Defaults to \"Evidence 1\", \"Evidence 2\", …"
},
"likelihoodIfTrue": {
"type": [
"number",
"string"
],
"description": "P(observing this evidence | hypothesis is true), in % (0–100). Accepts a number or a numeric string (\"3\", \"3pp\", \"3%\")."
},
"likelihoodIfFalse": {
"type": [
"number",
"string"
],
"description": "P(observing this evidence | hypothesis is false), in % (0–100). Accepts a number or a numeric string (\"3\", \"3pp\", \"3%\")."
}
}
},
"minItems": 1,
"description": "One or more evidence items, applied in order. Each item needs likelihoodIfTrue and likelihoodIfFalse on the 0–100 scale, e.g. [{ \"likelihoodIfTrue\": 80, \"likelihoodIfFalse\": 20 }]."
}
}
}In season: where the best available PRICE is on this week's NFL props — strikes where Kalshi and the book consensus are 5¢+ apart. Free.
| Argument | Type | Description |
|---|---|---|
| limit | number | string | null | Max rows (default 15). Values above 50 are clamped to 50. |
| roster | any | Optional: player names on the USER's team — their strikes are shown first. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": [
"number",
"string",
"null"
],
"description": "Max rows (default 15). Values above 50 are clamped to 50."
},
"roster": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "string"
},
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
],
"description": "Optional: player names on the USER's team — their strikes are shown first."
}
}
}Use for "where is it cheapest to buy", "Kalshi or Polymarket US for the Bears game" and "cheapest venue for the Georgia Senate race". The same contract on Kalshi, Polymarket US and Novig as the cost to buy one contract including each venue's taker fee, with the cheapest named. Sports games (team, league or matchup), 2026 midterm races (state, slug or district) or the next FOMC meeting. Ranked by price only.
| Argument | Type | Description |
|---|---|---|
| q | string | Free text: a team, matchup, race or "next Fed meeting". |
| race | string | A 2026 race: state, slug (georgia-senate) or district (AZ-01). |
| teams | string | One or two teams, e.g. "Bears" or "NE @ CHI". |
| league | string | NBA, NHL, NFL or MLB. |
| meeting | string | Any value asks for the next FOMC meeting. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"q": {
"type": "string",
"maxLength": 120,
"description": "Free text: a team, matchup, race or \"next Fed meeting\"."
},
"race": {
"type": "string",
"maxLength": 60,
"description": "A 2026 race: state, slug (georgia-senate) or district (AZ-01)."
},
"teams": {
"type": "string",
"maxLength": 60,
"description": "One or two teams, e.g. \"Bears\" or \"NE @ CHI\"."
},
"league": {
"type": "string",
"maxLength": 10,
"description": "NBA, NHL, NFL or MLB."
},
"meeting": {
"type": "string",
"maxLength": 40,
"description": "Any value asks for the next FOMC meeting."
}
}
}Use for "is this contract mispriced" and "what is my edge". Give a Kalshi or Polymarket price in cents and your own probability; returns the % expected-value edge and a BUY / SELL / SKIP read.
| Argument | Type | Description |
|---|---|---|
| marketPrice | number | string | Current contract price in cents (1–99), equal to the implied probability in %. Required for a real answer. Accepts 55, "55%", "55¢", "$0.55", 0.55 or American odds (+120 / -150) — all read as 55%. |
| yourProbability | number | string | Your own estimate of the true probability the contract resolves YES, in % (0–100). Required for a real answer. Accepts 55, "55%", "55¢", "$0.55", 0.55 or American odds (+120 / -150) — all read as 55%. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"marketPrice": {
"type": [
"number",
"string"
],
"description": "Current contract price in cents (1–99), equal to the implied probability in %. Required for a real answer. Accepts 55, \"55%\", \"55¢\", \"$0.55\", 0.55 or American odds (+120 / -150) — all read as 55%."
},
"yourProbability": {
"type": [
"number",
"string"
],
"description": "Your own estimate of the true probability the contract resolves YES, in % (0–100). Required for a real answer. Accepts 55, \"55%\", \"55¢\", \"$0.55\", 0.55 or American odds (+120 / -150) — all read as 55%."
}
}
}Use for "price a same-game NFL combo" and "is this combo worth it". Pass nflGame ("NYG-LAR", "Giants vs Rams") to list that game's Kalshi legs — moneyline, spreads, totals, player props — then legIds to price your pick with the correlation done for you. Or pass legPrices + trueWinProbability for a fair band; add offeredOdds for EV and a verdict. Free.
| Argument | Type | Description |
|---|---|---|
| kind | any | With nflGame: "game" = all game lines, "prop" = props only. One of: game · prop. |
| stat | string | With nflGame: props of one stat (e.g. "rec_yds"). |
| limit | number | string | null | With nflGame: max props listed (default 40, max 200). |
| legIds | any | 2–6 leg ids from a previous nflGame call (an array, or one comma-separated string). We compute the correlation-aware joint for exactly these legs. |
| player | string | With nflGame: every strike for a player whose name contains this (e.g. "Mariota"). |
| nflGame | string | An NFL game on the live board, as "AWAY-HOME" (e.g. "NYG-LAR"). Alone: lists its legs with ids, trimmed (narrow with player/stat/kind/limit). With legIds: prices that exact combo. |
| legPrices | array | Each leg's YES price in cents (1–99). Used only for the theoretical assemble ceiling. Omit when using nflGame + legIds — we read the real prices. |
Use for "gold edge today" and "oil or bitcoin trade signal". The Kalshi daily gold, silver or WTI strike, or hourly bitcoin strike, with the largest PMP model edge, as a ticket: side, entry price, resolve criterion, model probability, edge, tier and quarter-Kelly size. Pass tickers[] to check a watchlist. Pro — sign in with PredictionMarketsPicks, or a Pro API key.
| Argument | Type | Description |
|---|---|---|
| tickers | array | Optional Kalshi ticker watchlist (up to 25) — e.g. paste the tickers from your Kalshi Pro screener or Canvas to get PMP's edge on exactly those markets. Full market or 3-segment event tickers both work. Tickers PMP doesn't model are returned as not_covered (never a fabricated edge). |
| commodity | any | Which commodity edge to read (needed for a real answer). One of: silver · bitcoin · gold · oil. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"tickers": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional Kalshi ticker watchlist (up to 25) — e.g. paste the tickers from your Kalshi Pro screener or Canvas to get PMP's edge on exactly those markets. Full market or 3-segment event tickers both work. Tickers PMP doesn't model are returned as not_covered (never a fabricated edge)."
},
"commodity": {
"anyOf": [
{
"type": "string"
},
{
"enum": [
"silver",
"bitcoin",
"gold",
"oil"
],
"type": "string"
}
],
"description": "Which commodity edge to read (needed for a real answer). One of: silver · bitcoin · gold · oil."
}
}
}Compare 2–4 NFL players this week: every Kalshi prop strike each has, the best price per side across venues, our probability where we publish one, and a ranked verdict on whose price the model disagrees with most, and on which strike. Use for "<A> or <B> this week", "compare <A> and <B> props", "who has the better prop, <A> or <B>", "<A> vs <B> receiving yards".
| Argument | Type | Description |
|---|---|---|
| players | any | 2–4 player full names to compare. |
| scoring | any | Scoring format: standard, half_ppr (default), or ppr (full PPR). Overrides a platform preset. Works for Yahoo/ESPN/Sleeper defaults. One of: standard · half_ppr · ppr. |
| platform | any | League platform — applies its default scoring, size, roster + best-ball settings (overridable by explicit scoring/teams). Underdog/DraftKings are best ball. One of: yahoo · espn · sleeper · nfl · cbs · fantrax · draftkings · underdog. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"players": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "string"
},
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
],
"description": "2–4 player full names to compare."
},
"scoring": {
"anyOf": [
{
"type": "string"
},
{
"enum": [
"standard",
"half_ppr",
"ppr"
],
"type": "string"
}
],
"description": "Scoring format: standard, half_ppr (default), or ppr (full PPR). Overrides a platform preset. Works for Yahoo/ESPN/Sleeper defaults. One of: standard · half_ppr · ppr."
},
"platform": {
"anyOf": [
{
"type": "string"
},
{
"enum": [
"yahoo",
"espn",
"sleeper",
"nfl",
"cbs",
"fantrax",
"draftkings",
"underdog"
],
"type": "string"
}
],
"description": "League platform — applies its default scoring, size, roster + best-ball settings (overridable by explicit scoring/teams). Underdog/DraftKings are best ball. One of: yahoo · espn · sleeper · nfl · cbs · fantrax · draftkings · underdog."
}
}
}Convert between implied probability, American odds, and decimal odds. Give one value and its format and get all three back (American odds carry no commas, e.g. +441 or -200). Use for "what is +150 as a probability", "convert 62% to American odds", "decimal to implied odds".
| Argument | Type | Description |
|---|---|---|
| value | number | string | The numeric value to convert. Needed for a real answer, with format. Accepts a number or a numeric string ("+150", "62%", "2.5"). |
| format | any | Format of `value`: probability (0–100 %), american (e.g. -200 / +150), or decimal (e.g. 2.5). One of: probability · american · decimal. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"value": {
"type": [
"number",
"string"
],
"description": "The numeric value to convert. Needed for a real answer, with format. Accepts a number or a numeric string (\"+150\", \"62%\", \"2.5\")."
},
"format": {
"anyOf": [
{
"type": "string"
},
{
"enum": [
"probability",
"american",
"decimal"
],
"type": "string"
}
],
"description": "Format of `value`: probability (0–100 %), american (e.g. -200 / +150), or decimal (e.g. 2.5). One of: probability · american · decimal."
}
}
}In season: this week's QB/RB/WR/TE rankings by the median Kalshi prices each player at (pass/rush/rec yds), plus anytime-TD price. Free. (Draft board returns in 2027.)
| Argument | Type | Description |
|---|---|---|
| limit | number | string | null | Max rows (default 15). Values above 50 are clamped to 50. |
| position | any | Optional position filter (FLEX = RB/WR/TE). One of: QB · RB · WR · TE · FLEX. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": [
"number",
"string",
"null"
],
"description": "Max rows (default 15). Values above 50 are clamped to 50."
},
"position": {
"anyOf": [
{
"type": "string"
},
{
"enum": [
"QB",
"RB",
"WR",
"TE",
"FLEX"
],
"type": "string"
}
],
"description": "Optional position filter (FLEX = RB/WR/TE). One of: QB · RB · WR · TE · FLEX."
}
}
}Use for "any edge on Kalshi" and "weather trade signals". Our model alerts on Kalshi — weather, bitcoin/silver/gold/oil, mispricings — with feed, tier, side, price, model probability, edge and link. Real time with Pro; free is delayed 24h without the thesis. One identical, impersonal feed for every subscriber; filters only select. Informational, not investment advice.
| Argument | Type | Description |
|---|---|---|
| feed | string | Comma-separated feeds to include: weather, bitcoin, silver, gold, oil, mispricing, sports_arb, nfl. Omit for all. |
| limit | number | string | null | Max alerts to return (default 25). Values above 100 are clamped to 100. |
| since | string | ISO-8601 timestamp — only alerts created after it. |
| min_tier | any | Minimum confidence tier (returns that tier and above). One of: SPECULATIVE · MODERATE · STRONG. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"feed": {
"type": "string",
"description": "Comma-separated feeds to include: weather, bitcoin, silver, gold, oil, mispricing, sports_arb, nfl. Omit for all."
},
"limit": {
"type": [
"number",
"string",
"null"
],
"description": "Max alerts to return (default 25). Values above 100 are clamped to 100."
},
"since": {
"type": "string",
"description": "ISO-8601 timestamp — only alerts created after it."
},
"min_tier": {
"anyOf": [
{
"type": "string"
},
{
"enum": [
"SPECULATIVE",
"MODERATE",
"STRONG"
],
"type": "string"
}
],
"description": "Minimum confidence tier (returns that tier and above). One of: SPECULATIVE · MODERATE · STRONG."
}
}
}Why the PredictionMarketsPicks model prices one NFL game where it does: the Kalshi price and market line, our published win probability and what it is anchored to, the model's own line as a lean in points, each team's power rating split into offense, defense and special teams, the QB gate (PASS, ADJUSTED, FORK with both lines, or HOLD), and the published position (side, Kalshi price, edge) or why none is published. Use for "why do you price <team> vs <team> there", "explain the <team> game line", "what is driving the model on <team>'s game". Pass game as two teams in any form ("Bills vs Chiefs", "BUF@KC") or one team for its game; week defaults to the current week.
| Argument | Type | Description |
|---|---|---|
| game | string | The matchup — two teams in any form ("Bills vs Chiefs", "BUF@KC", "Buffalo at Kansas City"), or one team for its game that week. |
| week | number | string | Optional NFL week (e.g. 6). Defaults to the current week. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"game": {
"type": "string",
"description": "The matchup — two teams in any form (\"Bills vs Chiefs\", \"BUF@KC\", \"Buffalo at Kansas City\"), or one team for its game that week."
},
"week": {
"type": [
"number",
"string"
],
"description": "Optional NFL week (e.g. 6). Defaults to the current week."
}
}
}Why PredictionMarketsPicks' Ladder reads one NFL strike ladder the way it does — a game's spread, a team's season win total, or a player's prop: the read (SHAPE, LOCATION, PRICED, MARKET READ or QB HOLD) in words — which way our curve leans, or whether it is tighter or wider than Kalshi's and where they cross — where Kalshi's ladder centres beside our projection, the widest published gap, and every listed strike with Kalshi's price and our number where we publish one (30–70% only). One ladder per call. Use for "explain the Chiefs win total ladder", "why does the ladder lean Browns", "what does SHAPE mean on <player> receptions".
| Argument | Type | Description |
|---|---|---|
| stat | string | Prop stat for a player, e.g. "receptions" or "rec_yds". Defaults to his widest ladder. |
| team | string | Team code or nickname (KC, Chiefs) — its game spread ladder, or its season-win ladder with family "season_wins". |
| family | any | Ladder family. Omit to take the team's spread first. One of: spread · season_wins · props. |
| player | string | Player name, full or partial — his prop ladder. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"stat": {
"type": "string",
"description": "Prop stat for a player, e.g. \"receptions\" or \"rec_yds\". Defaults to his widest ladder."
},
"team": {
"type": "string",
"description": "Team code or nickname (KC, Chiefs) — its game spread ladder, or its season-win ladder with family \"season_wins\"."
},
"family": {
"anyOf": [
{
"type": "string"
},
{
"enum": [
"spread",
"season_wins",
"props"
],
"type": "string"
}
],
"description": "Ladder family. Omit to take the team's spread first. One of: spread · season_wins · props."
},
"player": {
"type": "string",
"description": "Player name, full or partial — his prop ladder."
}
}
}Why the PredictionMarketsPicks model prices an NFL player's Kalshi prop strikes where it does this week: the projection, The Ladder's verdict (SHAPE, LOCATION, PRICED or market-only), the widest published model-vs-market gap, and what the model does NOT account for. Our number appears only where it is measured calibrated (30–70%). Use for "why do you price <player> there", "explain <player>'s prop", "what's driving the model on <player>", "why is <player>'s over priced at that".
| Argument | Type | Description |
|---|---|---|
| stat | string | Optional stat to narrow to, e.g. "rec_yds", "receptions", "rush_yds". |
| player | string | Player name, full or partial (e.g. "Puka Nacua"). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"stat": {
"type": "string",
"description": "Optional stat to narrow to, e.g. \"rec_yds\", \"receptions\", \"rush_yds\"."
},
"player": {
"type": "string",
"description": "Player name, full or partial (e.g. \"Puka Nacua\")."
}
}
}Why PredictionMarketsPicks publishes a call on one NFL player prop this week: the Kalshi contract, the YES/NO call and Kalshi's price for that side, our tier and — where our probability is measured calibrated — our odds, our projection against the threshold, whether it is published or held at WATCH (and why), The Ladder's read on that stat, and what the model does not account for. One contract per call. Use for "why do you like <player>'s over", "explain the <player> prop", "why is <player> on your board". For the full strike ladder use explain_player.
| Argument | Type | Description |
|---|---|---|
| line | number | string | Optional contract threshold or line (e.g. 60 or 59.5) to pick one strike. |
| stat | string | Optional stat, e.g. "rec_yds", "receptions", "rush_yds", "pass_tds" or "receiving yards". Defaults to the player's strongest published call. |
| player | string | Player name, full or partial (e.g. "Josh Allen"). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"line": {
"type": [
"number",
"string"
],
"description": "Optional contract threshold or line (e.g. 60 or 59.5) to pick one strike."
},
"stat": {
"type": "string",
"description": "Optional stat, e.g. \"rec_yds\", \"receptions\", \"rush_yds\", \"pass_tds\" or \"receiving yards\". Defaults to the player's strongest published call."
},
"player": {
"type": "string",
"description": "Player name, full or partial (e.g. \"Josh Allen\")."
}
}
}Use for "will the Fed cut, hold or hike" and "next FOMC meeting odds". Live Kalshi odds for each remaining 2026 FOMC meeting: the next meeting's full strike breakdown and days-until, the rate path, the current fed funds rate, and a next-meeting cross-venue check against Polymarket and CME futures, with the gap in pp.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}Use for "what is the ETH 15-minute market doing" and "which Kalshi 15-minute markets are open". Every Kalshi 15-minute up-or-down series — crypto, metals, energy, FX — with window status, YES price, close time, target price, what it settles on and the up rate over the last 96 windows, plus the same window on Polymarket (international) for BTC, ETH, SOL and XRP with each venue's settlement index and a graded record of the two venues on the same Bitcoin windows, and our Bitcoin top-of-hour strategy (v2 — the version our bot trades live, with its live and paper record). Pass series ("eth", "KXBTC15M") or asset_class.
| Argument | Type | Description |
|---|---|---|
| limit | number | string | null | Max rows (default 30). Values above 40 are clamped to 40. |
| series | string | One series: ticker (KXETH15M) or asset ("eth", "gold", "euro"). |
| open_only | boolean | Only series with a window open right now (default false). |
| asset_class | any | crypto · commodity · currency · all (default all). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": [
"number",
"string",
"null"
],
"description": "Max rows (default 30). Values above 40 are clamped to 40."
},
"series": {
"type": "string",
"maxLength": 40,
"description": "One series: ticker (KXETH15M) or asset (\"eth\", \"gold\", \"euro\")."
},
"open_only": {
"type": "boolean",
"description": "Only series with a window open right now (default false)."
},
"asset_class": {
"anyOf": [
{
"type": "string"
},
{
"enum": [
"crypto",
"commodity",
"currency",
"all"
],
"type": "string"
}
],
"description": "crypto · commodity · currency · all (default all)."
}
}
}Use for "where is the arbitrage" and "Kalshi vs Polymarket price gaps". Cross-venue gaps on the same sports contract (NFL, NBA, NHL, MLB) against Polymarket's international book: the gap in pp, the WATCH/ARB signal, the cheaper venue and whether both contracts settle the same way (settlement_match). Free: the top 3 gaps in full; Pro returns the whole board.
| Argument | Type | Description |
|---|---|---|
| minGap | number | string | Minimum gap in percentage points to include (default 3 = WATCH threshold). Accepts a number or a numeric string ("3", "3pp", "3%"). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"minGap": {
"type": [
"number",
"string"
],
"description": "Minimum gap in percentage points to include (default 3 = WATCH threshold). Accepts a number or a numeric string (\"3\", \"3pp\", \"3%\")."
}
}
}Compute the optimal Kelly position size for a prediction-market contract. Given your win probability, the market price (which sets the payout), your bankroll, and a Kelly fraction (full / half / quarter / eighth), returns the dollar stake and a risk rating. Use for "how much should I stake", "what is my position size", "Kelly sizing for this trade".
| Argument | Type | Description |
|---|---|---|
| bankroll | number | string | Total bankroll in dollars (e.g. 1000). Optional — omit it and the result is the % of bankroll to stake, without a dollar figure. Accepts a number or a numeric string ("1000", "$1,000"). |
| fraction | any | Kelly fraction to apply. Half-Kelly is the common sharp-money default. One of: full · half · quarter · eighth. |
| marketPrice* | number | string | Contract price in cents (1–99). Sets the payout ratio. Accepts 55, "55%", "55¢", "$0.55", 0.55 or American odds (+120 / -150) — all read as 55%. |
| winProbability* | number | string | Your probability the contract resolves YES, in % (0–100). Accepts 55, "55%", "55¢", "$0.55", 0.55 or American odds (+120 / -150) — all read as 55%. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"winProbability",
"marketPrice"
],
"properties": {
"bankroll": {
"type": [
"number",
"string"
],
"description": "Total bankroll in dollars (e.g. 1000). Optional — omit it and the result is the % of bankroll to stake, without a dollar figure. Accepts a number or a numeric string (\"1000\", \"$1,000\")."
},
"fraction": {
"anyOf": [
{
"type": "string"
},
{
"enum": [
"full",
"half",
"quarter",
"eighth"
],
"type": "string"
}
],
"description": "Kelly fraction to apply. Half-Kelly is the common sharp-money default. One of: full · half · quarter · eighth."
},
"marketPrice": {
"type": [
"number",
"string"
],
"description": "Contract price in cents (1–99). Sets the payout ratio. Accepts 55, \"55%\", \"55¢\", \"$0.55\", 0.55 or American odds (+120 / -150) — all read as 55%."
},
"winProbability": {
"type": [
"number",
"string"
],
"description": "Your probability the contract resolves YES, in % (0–100). Accepts 55, \"55%\", \"55¢\", \"$0.55\", 0.55 or American odds (+120 / -150) — all read as 55%."
}
}
}Use for "is any CFB ladder mispriced" and "where can I make a market on Kalshi". Kalshi college football and NFL spread/total strikes priced out of order: locked arbitrage, crossed-mid inversions and wide books worth making a market in, with both tickers and books, gross edge, volume and tier. Pro adds the resting orders, net-of-fee edge and quarter-Kelly size.
| Argument | Type | Description |
|---|---|---|
| limit | number | string | null | Max rows (default 20, max 100). Values above 100 are clamped to 100. |
| sport | any | cfb · nfl · both (default both). |
| signal | any | locked · inverted · wide · all (default all). |
| min_edge | number | string | Minimum NET edge in cents (default 1). Accepts 2, "2c", "2". Accepts a number or a numeric string ("+150", "62%", "2.5"). |
| min_volume | number | string | Minimum per-leg volume in dollars (default 20000). Accepts 20000, "$20,000". Accepts a number or a numeric string ("+150", "62%", "2.5"). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": [
"number",
"string",
"null"
],
"description": "Max rows (default 20, max 100). Values above 100 are clamped to 100."
},
"sport": {
"anyOf": [
{
"type": "string"
},
{
"enum": [
"cfb",
"nfl",
"both"
],
"type": "string"
}
],
"description": "cfb · nfl · both (default both)."
},
"signal": {
"anyOf": [
{
"type": "string"
},
{
"enum": [
"locked",
"inverted",
"wide",
"all"
],
"type": "string"
}
],
"description": "locked · inverted · wide · all (default all)."
},
"min_edge": {
"type": [
"number",
"string"
],
"description": "Minimum NET edge in cents (default 1). Accepts 2, \"2c\", \"2\". Accepts a number or a numeric string (\"+150\", \"62%\", \"2.5\")."
},
"min_volume": {
"type": [
"number",
"string"
],
"description": "Minimum per-leg volume in dollars (default 20000). Accepts 20000, \"$20,000\". Accepts a number or a numeric string (\"+150\", \"62%\", \"2.5\")."
}
}
}The US macro-health composite (0–100) and regime plus the six category scores (growth, labor, inflation, rates, liquidity, sentiment). Returns the composite, the regime call and 2 category scores without an account, 4 to a signed-in account, and all six with Pro. Use for "how is the US economy", "macro regime", "risk-on or risk-off".
| Argument | Type | Description |
|---|---|---|
| topic | any | macro = the US macro-health composite (the only topic). One of: macro. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"topic": {
"anyOf": [
{
"type": "string"
},
{
"enum": [
"macro"
],
"type": "string"
}
],
"description": "macro = the US macro-health composite (the only topic). One of: macro."
}
}
}Use for "show my fantasy team" and "what is Kalshi pricing my starters at". Give a Sleeper username (and a league name if you have several): your roster, each starter's opponent and kickoff, OUT and QB-gate flags, and every Kalshi prop strike on him this week with the best price per side. Market data; Pro adds our weekly projection.
| Argument | Type | Description |
|---|---|---|
| league | string | League name (partial) or Sleeper league id, when the user is in several. |
| sleeper_username | string | Sleeper username (profile → username, not the display name). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"league": {
"type": "string",
"maxLength": 60,
"description": "League name (partial) or Sleeper league id, when the user is in several."
},
"sleeper_username": {
"type": "string",
"maxLength": 40,
"description": "Sleeper username (profile → username, not the display name)."
}
}
}Use for "Knicks moneyline on Kalshi vs the books" and "cheapest place for the Celtics spread tonight". Kalshi NBA moneyline, spread and total beside DraftKings, FanDuel, BetRivers, Fanatics, ESPN, Novig and ProphetX at the same line: the cheapest venue per side, Kalshi fee included. Market prices only, no model.
| Argument | Type | Description |
|---|---|---|
| game | string | Two teams, e.g. "BOS @ DET". |
| team | string | Team code or name (NYK, Knicks). |
| limit | number | string | null | Max games (default 5). Values above 20 are clamped to 20. |
| market | any | Optional market. One of: moneyline · spread · total. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"game": {
"type": "string",
"maxLength": 60,
"description": "Two teams, e.g. \"BOS @ DET\"."
},
"team": {
"type": "string",
"maxLength": 40,
"description": "Team code or name (NYK, Knicks)."
},
"limit": {
"type": [
"number",
"string",
"null"
],
"description": "Max games (default 5). Values above 20 are clamped to 20."
},
"market": {
"anyOf": [
{
"type": "string"
},
{
"enum": [
"moneyline",
"spread",
"total"
],
"type": "string"
}
],
"description": "Optional market. One of: moneyline · spread · total."
}
}
}Use for "Embiid's out tonight — who benefits?" and "who's out in the NBA today". Today's NBA absences from the official injury report, and for each absent star the teammates whose minutes, points, rebounds, assists and usage rose in past games without him (last two seasons, sample size on every row), beside today's Kalshi prop prices. Questionable players fork into plays/sits branches until ruled. Historical splits only, no projection.
| Argument | Type | Description |
|---|---|---|
| game | string | Two teams, e.g. "BOS @ NYK". |
| stat | any | Stat to rank beneficiaries by (default points). One of: pts · reb · ast · min · usg · fg3m · stl · blk. |
| team | string | Team code or name (PHI, Sixers). |
| player | string | The absent player, or a teammate to look up (partial name). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"game": {
"type": "string",
"maxLength": 60,
"description": "Two teams, e.g. \"BOS @ NYK\"."
},
"stat": {
"anyOf": [
{
"type": "string"
},
{
"enum": [
"pts",
"reb",
"ast",
"min",
"usg",
"fg3m",
"stl",
"blk"
],
"type": "string"
}
],
"description": "Stat to rank beneficiaries by (default points). One of: pts · reb · ast · min · usg · fg3m · stl · blk."
},
"team": {
"type": "string",
"maxLength": 40,
"description": "Team code or name (PHI, Sixers)."
},
"player": {
"type": "string",
"maxLength": 60,
"description": "The absent player, or a teammate to look up (partial name)."
}
}
}Use for "where is LeBron's points line cheapest tonight". Every Kalshi NBA player-prop strike (points, rebounds, assists, threes) beside DraftKings, FanDuel, BetRivers, Fanatics, ESPN, Novig and ProphetX at the same strike: the cheapest venue per side, Kalshi fee included. Market prices only, no model.
| Argument | Type | Description |
|---|---|---|
| game | string | Two teams, e.g. "BOS @ DET". |
| team | string | Team code or name (LAL, Lakers). |
| limit | number | string | null | Max rows (default 15). Values above 50 are clamped to 50. |
| player | string | Player name (partial). |
| statType | any | Optional stat. One of: pts · reb · ast · threes. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"game": {
"type": "string",
"maxLength": 60,
"description": "Two teams, e.g. \"BOS @ DET\"."
},
"team": {
"type": "string",
"maxLength": 40,
"description": "Team code or name (LAL, Lakers)."
},
"limit": {
"type": [
"number",
"string",
"null"
],
"description": "Max rows (default 15). Values above 50 are clamped to 50."
},
"player": {
"type": "string",
"maxLength": 60,
"description": "Player name (partial)."
},
"statType": {
"anyOf": [
{
"type": "string"
},
{
"enum": [
"pts",
"reb",
"ast",
"threes"
],
"type": "string"
}
],
"description": "Optional stat. One of: pts · reb · ast · threes."
}
}
}Use for "which NFL games are mispriced on Kalshi" and "NFL win total, MVP or Super Bowl edges". Our NFL model vs live Kalshi prices — this week's game positions, season win totals, MVP and championship odds: model probability, price, edge and side. tickers[] checks a watchlist (futures, mvp, championship). Pro — sign in with PredictionMarketsPicks, or a Pro API key.
| Argument | Type | Description |
|---|---|---|
| limit | number | string | null | Max rows (default 10). Values above 25 are clamped to 25. |
| market | any | game = this week moneyline edges; futures = season win totals; mvp = KXNFLMVP; championship = playoff/conference/Super Bowl. One of: game · futures · mvp · championship. |
| minEdge | number | string | Minimum absolute edge in pp (default 4) — futures / mvp / championship only; game rows are the published positions. Ignored when tickers[] is passed. Accepts a number or a numeric string ("3", "3pp", "3%"). |
| tickers | array | Optional Kalshi ticker watchlist (up to 25) — e.g. paste the tickers from your Kalshi Pro screener or Canvas to get PMP's edge on exactly those markets. Full market or 3-segment event tickers both work. Tickers PMP doesn't model are returned as not_covered (never a fabricated edge). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": [
"number",
"string",
"null"
],
"description": "Max rows (default 10). Values above 25 are clamped to 25."
},
"market": {
"anyOf": [
{
"type": "string"
},
{
"enum": [
"game",
"futures",
"mvp",
"championship"
],
"type": "string"
}
],
"description": "game = this week moneyline edges; futures = season win totals; mvp = KXNFLMVP; championship = playoff/conference/Super Bowl. One of: game · futures · mvp · championship."
},
"minEdge": {
"type": [
"number",
"string"
],
"description": "Minimum absolute edge in pp (default 4) — futures / mvp / championship only; game rows are the published positions. Ignored when tickers[] is passed. Accepts a number or a numeric string (\"3\", \"3pp\", \"3%\")."
},
"tickers": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional Kalshi ticker watchlist (up to 25) — e.g. paste the tickers from your Kalshi Pro screener or Canvas to get PMP's edge on exactly those markets. Full market or 3-segment event tickers both work. Tickers PMP doesn't model are returned as not_covered (never a fabricated edge)."
}
}
}Use for "where does the model disagree with Kalshi on the Rams spread" and "biggest ladder gaps this week". Every NFL strike ladder — spreads, season win totals, player props — with Kalshi's price at each strike beside our distribution and a SHAPE / LOCATION / PRICED / PARTIAL verdict. Our number is published only between 30% and 70%.
| Argument | Type | Description |
|---|---|---|
| kind | any | Verdict filter. One of: shape · location · agree · partial. |
| team | string | Team abbrev (SEA, LAR, JAX) — ladders involving that club. |
| limit | number | string | null | Max ladders (default 8). Values above 25 are clamped to 25. |
| family | any | Ladder family. Omit for all three. One of: spread · season_wins · props. |
| player | string | Player name (partial, case-insensitive) — prop ladders only. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"kind": {
"anyOf": [
{
"type": "string"
},
{
"enum": [
"shape",
"location",
"agree",
"partial"
],
"type": "string"
}
],
"description": "Verdict filter. One of: shape · location · agree · partial."
},
"team": {
"type": "string",
"description": "Team abbrev (SEA, LAR, JAX) — ladders involving that club."
},
"limit": {
"type": [
"number",
"string",
"null"
],
"description": "Max ladders (default 8). Values above 25 are clamped to 25."
},
"family": {
"anyOf": [
{
"type": "string"
},
{
"enum": [
"spread",
"season_wins",
"props"
],
"type": "string"
}
],
"description": "Ladder family. Omit for all three. One of: spread · season_wins · props."
},
"player": {
"type": "string",
"description": "Player name (partial, case-insensitive) — prop ladders only."
}
}
}The PredictionMarketsPicks NFL power ratings — PWR for all 32 teams: points per game above an average team on a neutral field, where PWR = Off PR + Def PR + ST PR. Includes each team's rank and tier. Use for "best NFL teams by power rating", "NFL power rankings 2026", "is Baltimore overrated", "how good is Kansas City", "NFL team ratings".
| Argument | Type | Description |
|---|---|---|
| team | string | Optional team abbreviation (e.g. "KC", "SF", "LAR") — returns just that team's rating + rank. |
| tier | string | Optional: only teams in this tier — one of "Elite" (PWR ≥+7), "Contender" (≥+4), "Playoff" (≥+1), "Average" (≥−2), "Below Avg" (≥−5), "Rebuild" (<−5). A tier with no teams at current ratings returns an empty board, not an error. |
| limit | number | string | null | Max teams to return, best rating first (default 32 = full board). Values above 32 are clamped to 32. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"team": {
"type": "string",
"description": "Optional team abbreviation (e.g. \"KC\", \"SF\", \"LAR\") — returns just that team's rating + rank."
},
"tier": {
"type": "string",
"description": "Optional: only teams in this tier — one of \"Elite\" (PWR ≥+7), \"Contender\" (≥+4), \"Playoff\" (≥+1), \"Average\" (≥−2), \"Below Avg\" (≥−5), \"Rebuild\" (<−5). A tier with no teams at current ratings returns an empty board, not an error."
},
"limit": {
"type": [
"number",
"string",
"null"
],
"description": "Max teams to return, best rating first (default 32 = full board). Values above 32 are clamped to 32."
}
}
}Use for "where is the best price on <player> receiving yards" and "is Kalshi cheaper than the books". Best price on every NFL prop this week: Kalshi (fee included) vs five books (DraftKings, FanDuel, BetRivers, Fanatics, ESPN) and the Novig and ProphetX exchanges — the best price per side, how much cheaper Kalshi is than the books, the consensus gap, and the Kalshi close once a strike settles. Filter by team, game, player or stat.
| Argument | Type | Description |
|---|---|---|
| game | string | Game anchor away-home, e.g. "ne-sea" — rows for that game only. |
| team | string | Team abbrev (SEA, NE, LAR, JAX) — rows for that club only. |
| limit | number | string | null | Max rows (default 15). Values above 50 are clamped to 50. |
| player | string | Player name (partial, case-insensitive), e.g. "Nacua". |
| gapsOnly | boolean | Only strikes where Kalshi and the consensus are 5¢+ apart (default false). |
| statType | any | Optional prop type filter. One of: pass_yds · pass_tds · rush_yds · rec_yds · receptions · anytime_td. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"game": {
"type": "string",
"description": "Game anchor away-home, e.g. \"ne-sea\" — rows for that game only."
},
"team": {
"type": "string",
"description": "Team abbrev (SEA, NE, LAR, JAX) — rows for that club only."
},
"limit": {
"type": [
"number",
"string",
"null"
],
"description": "Max rows (default 15). Values above 50 are clamped to 50."
},
"player": {
"type": "string",
"description": "Player name (partial, case-insensitive), e.g. \"Nacua\"."
},
"gapsOnly": {
"type": "boolean",
"description": "Only strikes where Kalshi and the consensus are 5¢+ apart (default false)."
},
"statType": {
"anyOf": [
{
"type": "string"
},
{
"enum": [
"pass_yds",
"pass_tds",
"rush_yds",
"rec_yds",
"receptions",
"anytime_td"
],
"type": "string"
}
],
"description": "Optional prop type filter. One of: pass_yds · pass_tds · rush_yds · rec_yds · receptions · anytime_td."
}
}
}Use for "best NFL props today" and "receiving yards prop value". Our projection vs the Kalshi "X or more" prop line: the contract, the YES/NO call, our odds and Kalshi's price for that side, the projection and the edge, with WATCH rows labelled. Live in season. Pro — sign in with PredictionMarketsPicks, or a Pro API key.
| Argument | Type | Description |
|---|---|---|
| limit | number | string | null | Max rows (default 10). Values above 25 are clamped to 25. |
| minEdge | number | string | Min absolute edge in pp (default 5). Accepts a number or a numeric string ("3", "3pp", "3%"). |
| propType | any | Optional filter by prop type. One of: pass_yds · pass_tds · rush_yds · rec_yds · receptions · anytime_td. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": [
"number",
"string",
"null"
],
"description": "Max rows (default 10). Values above 25 are clamped to 25."
},
"minEdge": {
"type": [
"number",
"string"
],
"description": "Min absolute edge in pp (default 5). Accepts a number or a numeric string (\"3\", \"3pp\", \"3%\")."
},
"propType": {
"anyOf": [
{
"type": "string"
},
{
"enum": [
"pass_yds",
"pass_tds",
"rush_yds",
"rec_yds",
"receptions",
"anytime_td"
],
"type": "string"
}
],
"description": "Optional filter by prop type. One of: pass_yds · pass_tds · rush_yds · rec_yds · receptions · anytime_td."
}
}
}Use for "who wins Chiefs vs 49ers" and "what does a -7 spread mean". Pass homeTeam + awayTeam (or game, or one team) for our QB-gated model line (raw power ratings if unscheduled), or a spread (home favored negative). Returns win, cover and over/under probability, the projected score and our own total; neutral-site games get no home edge.
| Argument | Type | Description |
|---|---|---|
| game | string | Or name the game in one string — "Bills vs Chiefs", "BUF@KC", "Buffalo at Kansas City". The schedule decides which side is home. |
| total | number | Game total (over/under points) — this is the LINE you want tested, not our projection. Defaults to the model’s league-average total if omitted. Our own projected total comes back as `model_total` regardless of what you pass here (teams mode only). |
| spread | number | Point spread from the home team's perspective — home favored is NEGATIVE (e.g. -6.5). Provide this OR homeTeam+awayTeam. |
| awayTeam | string | Away team — same formats as homeTeam (SF, 49ers, San Francisco 49ers). Used with homeTeam. |
| homeTeam | string | Home team — abbrev (KC), nickname (Chiefs), full name (Kansas City Chiefs) or city (Kansas City) all work. Auto-derives the spread from PMP power ratings. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"game": {
"type": "string",
"description": "Or name the game in one string — \"Bills vs Chiefs\", \"BUF@KC\", \"Buffalo at Kansas City\". The schedule decides which side is home."
},
"total": {
"type": "number",
"description": "Game total (over/under points) — this is the LINE you want tested, not our projection. Defaults to the model’s league-average total if omitted. Our own projected total comes back as `model_total` regardless of what you pass here (teams mode only).",
"exclusiveMinimum": 0
},
"spread": {
"type": "number",
"description": "Point spread from the home team's perspective — home favored is NEGATIVE (e.g. -6.5). Provide this OR homeTeam+awayTeam."
},
"awayTeam": {
"type": "string",
"description": "Away team — same formats as homeTeam (SF, 49ers, San Francisco 49ers). Used with homeTeam."
},
"homeTeam": {
"type": "string",
"description": "Home team — abbrev (KC), nickname (Chiefs), full name (Kansas City Chiefs) or city (Kansas City) all work. Auto-derives the spread from PMP power ratings."
}
}
}Use for "NHL predictions tonight" and "Stanley Cup odds". Tonight's NHL games on Kalshi — moneyline, puck line, totals, period markets — as Market · Model · Fair, starting goalies checked first. market=goals: anytime and first-goal contracts; market=futures: Cup, conference and division markets on Kalshi and Polymarket (international book) vs a 10,000-season sim. Free.
| Argument | Type | Description |
|---|---|---|
| team | string | Optional NHL club to filter — code (CAR, EDM, LAK), Kalshi code (LA, TB), nickname ("Oilers") or city ("Edmonton"). |
| limit | number | string | null | Max rows (default 16). Values above 40 are clamped to 40. |
| market | any | game = tonight's board (moneyline, puck line, totals, periods); goals = player-goal contracts; futures = Stanley Cup + season markets. One of: game · goals · futures. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"team": {
"type": "string",
"maxLength": 40,
"description": "Optional NHL club to filter — code (CAR, EDM, LAK), Kalshi code (LA, TB), nickname (\"Oilers\") or city (\"Edmonton\")."
},
"limit": {
"type": [
"number",
"string",
"null"
],
"description": "Max rows (default 16). Values above 40 are clamped to 40."
},
"market": {
"anyOf": [
{
"type": "string"
},
{
"enum": [
"game",
"goals",
"futures"
],
"type": "string"
}
],
"description": "game = tonight's board (moneyline, puck line, totals, periods); goals = player-goal contracts; futures = Stanley Cup + season markets. One of: game · goals · futures."
}
}
}Use for "where does a 5x bitcoin long liquidate on Kalshi". Estimates a Kalshi perp's liquidation price and the % move to it from Kalshi's risk parameters (a 5x BTC long is about 8% away, not the 20% the 100÷leverage rule implies), plus fees and expected funding. An estimate; Kalshi's app shows the exact one. Assets: btc, eth, sol, xrp, doge, hype, link, gold, silver, platinum, palladium. Free.
| Argument | Type | Description |
|---|---|---|
| side | any | Direction. One of: long · short. |
| asset | any | The perp. One of: btc · eth · sol · xrp · doge · hype · link · gold · silver · platinum · palladium. |
| entry | number | string | Entry price (default: the live price). Accepts a number or a numeric string ("+150", "62%", "2.5"). |
| margin | number | string | Margin in dollars (default 1000). Accepts a number or a numeric string ("+150", "62%", "2.5"). |
| leverage | number | string | Leverage, e.g. 5 or "5x". Capped at Kalshi’s maximum for the size and side. |
| hold_days | number | Days held, for the funding estimate (default 7). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"side": {
"anyOf": [
{
"type": "string"
},
{
"enum": [
"long",
"short"
],
"type": "string"
}
],
"description": "Direction. One of: long · short."
},
"asset": {
"anyOf": [
{
"type": "string"
},
{
"enum": [
"btc",
"eth",
"sol",
"xrp",
"doge",
"hype",
"link",
"gold",
"silver",
"platinum",
"palladium"
],
"type": "string"
}
],
"description": "The perp. One of: btc · eth · sol · xrp · doge · hype · link · gold · silver · platinum · palladium."
},
"entry": {
"type": [
"number",
"string"
],
"description": "Entry price (default: the live price). Accepts a number or a numeric string (\"+150\", \"62%\", \"2.5\")."
},
"margin": {
"type": [
"number",
"string"
],
"description": "Margin in dollars (default 1000). Accepts a number or a numeric string (\"+150\", \"62%\", \"2.5\")."
},
"leverage": {
"type": [
"number",
"string"
],
"description": "Leverage, e.g. 5 or \"5x\". Capped at Kalshi’s maximum for the size and side."
},
"hold_days": {
"type": "number",
"default": 7,
"maximum": 365,
"minimum": 0,
"description": "Days held, for the funding estimate (default 7)."
}
}
}Use for "Kalshi perps funding rate" and "how much leverage on Kalshi gold perps". Every Kalshi perpetual future: price, 24h volume, open interest, max leverage long and short, funding cadence, and what funding has cost a long since launch. Pass asset ("btc", "gold") for one.
| Argument | Type | Description |
|---|---|---|
| asset | string | One perp: symbol or name ("btc", "gold", "XAG"). |
| limit | number | string | null | Max rows (default 25). Values above 30 are clamped to 30. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"asset": {
"type": "string",
"maxLength": 30,
"description": "One perp: symbol or name (\"btc\", \"gold\", \"XAG\")."
},
"limit": {
"type": [
"number",
"string",
"null"
],
"description": "Max rows (default 25). Values above 30 are clamped to 30."
}
}
}One NFL player this week — every Kalshi prop line, the best price across venues, and our probability at each strike. Free. Use for "is <player> a good play this week", "<player> props".
| Argument | Type | Description |
|---|---|---|
| player | string | Player name, full or partial (e.g. "Puka Nacua", "Bijan"). |
| scoring | any | Scoring format: standard, half_ppr (default), or ppr (full PPR). Overrides a platform preset. Works for Yahoo/ESPN/Sleeper defaults. One of: standard · half_ppr · ppr. |
| platform | any | League platform — applies its default scoring, size, roster + best-ball settings (overridable by explicit scoring/teams). Underdog/DraftKings are best ball. One of: yahoo · espn · sleeper · nfl · cbs · fantrax · draftkings · underdog. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"player": {
"type": "string",
"description": "Player name, full or partial (e.g. \"Puka Nacua\", \"Bijan\")."
},
"scoring": {
"anyOf": [
{
"type": "string"
},
{
"enum": [
"standard",
"half_ppr",
"ppr"
],
"type": "string"
}
],
"description": "Scoring format: standard, half_ppr (default), or ppr (full PPR). Overrides a platform preset. Works for Yahoo/ESPN/Sleeper defaults. One of: standard · half_ppr · ppr."
},
"platform": {
"anyOf": [
{
"type": "string"
},
{
"enum": [
"yahoo",
"espn",
"sleeper",
"nfl",
"cbs",
"fantrax",
"draftkings",
"underdog"
],
"type": "string"
}
],
"description": "League platform — applies its default scoring, size, roster + best-ball settings (overridable by explicit scoring/teams). Underdog/DraftKings are best ball. One of: yahoo · espn · sleeper · nfl · cbs · fantrax · draftkings · underdog."
}
}
}Use for "who wins the Kansas Senate race" and "Michigan governor odds". Live Kalshi odds for one 2026 Senate, governor or competitive House race, by state, code, slug or district ("TX-34"): every leg's price, volume and link, the seat holder and rating, forecaster bands, and the race page. Prices are never estimated.
| Argument | Type | Description |
|---|---|---|
| race* | string | State name or code, a race slug (kansas-senate, michigan-governor, tx-34-house), or a House district (TX-34). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"race"
],
"properties": {
"race": {
"type": "string",
"minLength": 1,
"description": "State name or code, a race slug (kansas-senate, michigan-governor, tx-34-house), or a House district (TX-34)."
}
}
}Scan Polymarket contracts for mispricings against the PMP model (a probability swarm). Returns each market where the model disagrees with the price, the direction to take, the edge in percentage points, and quarter-Kelly sizing, sorted by absolute edge. The scanner is being rebuilt for the 2026 midterms and usually returns no rows today; the response says when it last ran. Pro — sign in with PredictionMarketsPicks, or a Pro API key. Use for "where is the edge today", "mispriced markets", "what should I trade".
| Argument | Type | Description |
|---|---|---|
| limit | number | string | null | Max rows to return (default 10). Values above 25 are clamped to 25. |
| minEdge | number | string | Minimum absolute edge in pp to include (default 5). Accepts a number or a numeric string ("3", "3pp", "3%"). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": [
"number",
"string",
"null"
],
"description": "Max rows to return (default 10). Values above 25 are clamped to 25."
},
"minEdge": {
"type": [
"number",
"string"
],
"description": "Minimum absolute edge in pp to include (default 5). Accepts a number or a numeric string (\"3\", \"3pp\", \"3%\")."
}
}
}Use for "2026 Senate map" and "which Senate seats are toss-ups". Every 2026 Senate seat: holder and role, structure rating, forecaster bands where tracked, and the live Kalshi price (Democrat win probability where provable), closest race first, with a page URL per seat. Prices are never estimated — an unpriced seat returns null.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}Every NFL player whose Kalshi prop price the PredictionMarketsPicks model disagrees with this week, ranked, each marked underpriced (model above the market) or overpriced (model below) with the stat driving it. Free, the complete list, no key. Which strike, at what price and by how much is the Pro nfl_prop_edge tool. Use for "undervalued players this week", "who is the market overpricing", "which players is the market wrong on", "overrated players week N", "where does your model disagree with the market most", "sleepers this week", "busts to avoid this week".
| Argument | Type | Description |
|---|---|---|
| position | any | Optional position filter. One of: QB · RB · WR · TE. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"position": {
"anyOf": [
{
"type": "string"
},
{
"enum": [
"QB",
"RB",
"WR",
"TE"
],
"type": "string"
}
],
"description": "Optional position filter. One of: QB · RB · WR · TE."
}
}
}Use for "should I start Nacua or Adams" and "who does the market like more this week". For 2–4 players: the median Kalshi is pricing for each stat (read off his own strike ladder) and his anytime-TD price, compared on the stats they share. Market prices only — the call stays yours; Pro adds our weekly projection.
| Argument | Type | Description |
|---|---|---|
| players | any | Two to four player names, e.g. ["Puka Nacua", "Davante Adams"] or "Nacua, Adams". |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"players": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string",
"maxLength": 40
},
"maxItems": 4
},
{
"type": "string",
"maxLength": 160
}
],
"description": "Two to four player names, e.g. [\"Puka Nacua\", \"Davante Adams\"] or \"Nacua, Adams\"."
}
}
}Use for "how accurate is your model" and "what's your track record". Every graded PredictionMarketsPicks signal per engine (bitcoin, gold, silver, oil, weather, NHL) and the daily editorial call (POTD): W-L, net P/L, a 95% win-rate range and the current model era, and the NFL model's backtest. WATCH calls are reported apart.
| Argument | Type | Description |
|---|---|---|
| lane | string | Optional lane: bitcoin, gold, silver, oil, weather, nhl, potd, nfl — or an engine slug. Omit for every lane. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"lane": {
"type": "string",
"maxLength": 40,
"description": "Optional lane: bitcoin, gold, silver, oil, weather, nhl, potd, nfl — or an engine slug. Omit for every lane."
}
}
}Use for "who is everyone adding off waivers" and "trending waiver adds this week". Sleeper's most-added players in the last 24 hours with what Kalshi is pricing each at this week; pass position, and a Sleeper username + league to see only players still available. Market data only.
| Argument | Type | Description |
|---|---|---|
| limit | number | string | null | Max players (default 10). Values above 25 are clamped to 25. |
| league | string | League name (partial) or id, when the user is in several. |
| position | any | Optional position filter. One of: QB · RB · WR · TE. |
| sleeper_username | string | Sleeper username — with it, players already rostered in your league are left out. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": [
"number",
"string",
"null"
],
"description": "Max players (default 10). Values above 25 are clamped to 25."
},
"league": {
"type": "string",
"maxLength": 60,
"description": "League name (partial) or id, when the user is in several."
},
"position": {
"anyOf": [
{
"type": "string"
},
{
"enum": [
"QB",
"RB",
"WR",
"TE"
],
"type": "string"
}
],
"description": "Optional position filter. One of: QB · RB · WR · TE."
},
"sleeper_username": {
"type": "string",
"maxLength": 40,
"description": "Sleeper username — with it, players already rostered in your league are left out."
}
}
}Use for "Kalshi NYC high temperature odds". Every open Kalshi daily-high strike in 13 cities: YES price, settlement station and source, the strict-comparison rule, close time, and the NWS forecast high beside it. Pass city ("nyc", "KXHIGHCHI"). Market data only.
| Argument | Type | Description |
|---|---|---|
| day | any | today · tomorrow · all (default). |
| city | string | City name or series ("nyc", "KXHIGHTBOS"). Omit for all. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"day": {
"anyOf": [
{
"type": "string"
},
{
"enum": [
"today",
"tomorrow",
"all"
],
"type": "string"
}
],
"description": "today · tomorrow · all (default)."
},
"city": {
"type": "string",
"maxLength": 40,
"description": "City name or series (\"nyc\", \"KXHIGHTBOS\"). Omit for all."
}
}
}In season: the Kalshi props listed on the players you name (2–4), with the best price per strike. Free. Pass roster: ['Player A', 'Player B'].
| Argument | Type | Description |
|---|---|---|
| roster | any | 2–4 player names on your roster (full or partial). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"roster": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "string"
},
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
],
"description": "2–4 player names on your roster (full or partial)."
}
}
}| offeredOdds | number | The combo price your platform actually quotes — American odds (e.g. -150, 988) or a decimal payout multiplier (e.g. 10.7). Grades EV + verdict against fair value. Omit to get fair value + band only. |
| offeredAmerican | number | Alias for offeredOdds (the response reports the quote as offered_american, so this name is accepted on input too). American odds or a decimal multiplier, same parsing. If both are given, offeredOdds wins. |
| trueWinProbability | number | Your correlation-aware estimate of the true joint probability all legs hit, in % (0–100). Omit when using nflGame + legIds — we compute it from the scoreline model. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"kind": {
"anyOf": [
{
"type": "string"
},
{
"enum": [
"game",
"prop"
],
"type": "string"
}
],
"description": "With nflGame: \"game\" = all game lines, \"prop\" = props only. One of: game · prop."
},
"stat": {
"type": "string",
"description": "With nflGame: props of one stat (e.g. \"rec_yds\")."
},
"limit": {
"type": [
"number",
"string",
"null"
],
"description": "With nflGame: max props listed (default 40, max 200)."
},
"legIds": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "string"
}
],
"description": "2–6 leg ids from a previous nflGame call (an array, or one comma-separated string). We compute the correlation-aware joint for exactly these legs."
},
"player": {
"type": "string",
"description": "With nflGame: every strike for a player whose name contains this (e.g. \"Mariota\")."
},
"nflGame": {
"type": "string",
"description": "An NFL game on the live board, as \"AWAY-HOME\" (e.g. \"NYG-LAR\"). Alone: lists its legs with ids, trimmed (narrow with player/stat/kind/limit). With legIds: prices that exact combo."
},
"legPrices": {
"type": "array",
"items": {
"type": "number",
"maximum": 99,
"minimum": 1
},
"minItems": 2,
"description": "Each leg's YES price in cents (1–99). Used only for the theoretical assemble ceiling. Omit when using nflGame + legIds — we read the real prices."
},
"offeredOdds": {
"type": "number",
"description": "The combo price your platform actually quotes — American odds (e.g. -150, 988) or a decimal payout multiplier (e.g. 10.7). Grades EV + verdict against fair value. Omit to get fair value + band only."
},
"offeredAmerican": {
"type": "number",
"description": "Alias for offeredOdds (the response reports the quote as offered_american, so this name is accepted on input too). American odds or a decimal multiplier, same parsing. If both are given, offeredOdds wins."
},
"trueWinProbability": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "Your correlation-aware estimate of the true joint probability all legs hit, in % (0–100). Omit when using nflGame + legIds — we compute it from the scoreline model."
}
}
}