← FastballAPICONTENT HISTORY

Update to FastballAPI

Snapshot Oct 30, 2026 · 00:06 UTC · version 1.0.0

Collection source: downloaded plugin package.

WHAT CHANGED

First saved snapshot

No earlier snapshot is available to establish a change.

Save FastballAPI and check future changes in Following.

Up to 10 plugins free · no card required.

Compare saved observations

Download comparison JSON
Full technical diff · 0 changed fields
Full snapshot data
{
  "description": "Compares MLB and college baseball sportsbook lines across books: moneyline, run line and total, best price, opening vs closing, vig, and pre-game line movement. Use when the user asks what the odds are, which book has the best price, how a line moved, what the closing line was, or whether the favourite won and the total went over. Do not use for devigging or implied probability math: see odds-analysis. Do not use for player prop lines: see prop-modeling.",
  "included_files": [],
  "name": "odds-explorer",
  "skill_md_contents": "---\nname: odds-explorer\ndescription: \"Compares MLB and college baseball sportsbook lines across books: moneyline, run line and total, best price, opening vs closing, vig, and pre-game line movement. Use when the user asks what the odds are, which book has the best price, how a line moved, what the closing line was, or whether the favourite won and the total went over. Do not use for devigging or implied probability math: see odds-analysis. Do not use for player prop lines: see prop-modeling.\"\nmetadata:\n  version: 1.0.0\n  author: FastballAPI\n---\n\n# Odds Explorer\n\n> **Default data tool:** FastballAPI (`fastballapi-tool`).\n> `get_odds` with `game_id` (5 credits) or `date` (10 credits for the whole slate). `get_line_movement` (10 credits per game). `get_schedule` (2) for the median line of upcoming games.\n\nYou report what the books posted, find the best price, and read movement without over-reading it. FastballAPI stores snapshots of lines, not a live betting feed. Always say when the snapshot was taken.\n\n## When to Use\n\n- \"What are the lines on Dodgers at Brewers?\"\n- Best moneyline, run line or total across books\n- Opening vs closing line, per book\n- How a line moved before first pitch\n- Did the favourite win and did the total go over (finished games)\n- Which book is consistently the outlier on a market\n\n## When NOT to Use\n\n- Removing the margin or converting odds to probabilities: `odds-analysis`\n- Player props (hits, strikeouts, total bases): `prop-modeling`\n- Anything needing a live in-game price: not available\n\n## Commands Available\n\n| Command | What it does | Credits |\n|---------|--------------|---------|\n| `get_odds` | Each book's moneyline, run line, total for a game (`game_id`, 5) or a date (`date`, 10); opening and closing per book | 5 or 10 |\n| `get_line_movement` | Snapshots of each book's line before first pitch for one `game_id`; optional `provider` | 10 |\n| `get_schedule` | Upcoming games with the median line across books | 2 |\n| `get_game` | One game with each book's open and close inside the box score | 5 |\n\n## Commands That Do NOT Exist\n\n| Not available | Use instead |\n|---------------|-------------|\n| `get_live_odds` | `get_schedule` or `get_odds` (stored snapshots) |\n| `get_best_line`, `compare_books` | Compute from the `get_odds` `books` array |\n| `get_public_betting` | Not available. Infer nothing about bet splits |\n| `get_closing_line` | `get_odds` for a finished game: `home_ml_close`, `total_close` |\n| `get_alt_lines`, `get_first_five` | Not available. Only full-game moneyline, run line, total |\n| `get_odds_history` | `get_odds` for a past `game_id` or `date` |\n\n## Coverage\n\n- Per-book opening and closing lines from July 2020 (The Odds API), and from 2024 ESPN's feed as well. Before July 2020, only ESPN's final line.\n- Books per game: 4 to 13 from 2015 to 2023; 6 to 8 with opening and closing since July 2020. The book list in a response is the truth: do not assume Pinnacle or FanDuel is present for an old game. Live per-season counts: https://fastballapi.com/docs/atlas.\n- Pre-game snapshots (`get_line_movement`) are ESPN's once a day and The Odds API's hourly for games in the next two days. That is coarse: a steam move between two snapshots is invisible.\n- College lines start in 2023, a median of 5 or 6 books per game, some with one.\n\n## How It Works\n\n**Step 1: Get the game id.** `get_schedule` (upcoming) or `get_games` (past). Do not call `get_odds` with a team name.\n\n**Step 2: Pull the lines.**\n\n```json\nPOST /v1/get_odds\n{\"game_id\": \"401809265\"}\n```\n\nReal response (NYY 9, TOR 6, 2025-10-07, 8 books, one book shown, trimmed):\n\n```json\n{\"data\": {\"games\": [{\"game_id\": \"401809265\", \"date\": \"2025-10-07\",\n  \"home\": {\"abbrev\": \"NYY\", \"runs\": 9}, \"away\": {\"abbrev\": \"TOR\", \"runs\": 6},\n  \"books\": [{\"provider\": \"DraftKings\",\n    \"home_ml_open\": -139, \"home_ml_close\": -174,\n    \"away_ml_open\": 114,  \"away_ml_close\": 142,\n    \"home_close_prob\": 0.635, \"away_close_prob\": 0.413,\n    \"home_run_line_close\": -1.5, \"run_line_home_odds\": 123, \"run_line_away_odds\": -149,\n    \"total_close\": 8, \"over_odds\": -119, \"under_odds\": -102}],\n  \"result\": {\"median_home_ml\": -172, \"median_total\": 8, \"favourite_won\": true, \"over\": true}}]}}\n```\n\nNotes on the fields: `*_prob` values are raw implied probabilities (0.635 plus 0.413 is 1.048, so the margin is still in them). `result` appears for finished games and is graded against the median close.\n\n**Step 3: Find the best price per side.** For each of home ML, away ML, over, under, run line sides, take the best number across books. Best for a favourite is the least negative; for an underdog the most positive; for a total side, the better price at the same number. A different total (7.5 at one book, 8 at another) is not a price difference; it is a different bet.\n\n**Step 4: Show the margin.** For a two-way market, margin = implied_home + implied_away minus 1. DraftKings above: 0.635 + 0.413 = 1.048, a 4.8% margin. Fine to show; the correct removal method is in `odds-analysis`.\n\n**Step 5: Movement.** Opening to closing per book from `get_odds` is free of extra cost. For the path in between, `get_line_movement`:\n\n```json\nPOST /v1/get_line_movement\n{\"game_id\": \"401809265\", \"provider\": \"DraftKings\"}\n```\n\nThe response has a `movement` object keyed by book, each a list of `{captured_at, home_ml, away_ml, home_run_line, total}`. Read it as follows:\n\n| Pattern | Reading |\n|---------|---------|\n| All books move the same direction | Market-wide news or money; likely real |\n| One book moves, others do not | That book's own risk; wait for the others |\n| Moneyline moves but total does not | Starter or lineup change is more likely than a weather change |\n| Total moves 0.5 and prices shift | Weather, wind or lineup news |\n| Home ML -139 to -174 across all books | In the NYY example, the whole market moved toward the home side |\n\nNever claim \"sharp money\". Without bet splits or timestamps finer than hourly, you cannot know. Say \"the market moved toward X\".\n\n## The Run Line and Totals\n\n- Run line is almost always the favourite -1.5 or the dog +1.5. The price, not the number, carries the information.\n- Totals in baseball are priced off the starters, park and weather. A half-run move is large. Prices on a total can differ by 20 cents between books at the same number: that is where a best-price search pays most.\n- Extra innings count in totals, which makes \"under\" tickets live longer than they look.\n\n## Credit Usage\n\n| Operation | Credits |\n|-----------|---------|\n| One game's lines | 5 |\n| A day's whole slate | 10 |\n| One game's line movement | 10 |\n| Median lines for the week | 2 |\n\nPrefer the date form: a 15-game slate costs 10 credits as one `get_odds` call vs 75 as 15 calls.\n\n## Anti-patterns\n\n| Mistake | Why it is wrong | Do This |\n|---------|-----------------|---------|\n| Quoting a snapshot as live | Stored, refreshed on a schedule | Give the timestamp (`captured_at`) |\n| Averaging prices across books | Mixes numbers and margins | Report each book, then best and median |\n| Mixing totals | 7.5 at -110 is not 8 at -110 | Group by the number first |\n| Reading hourly snapshots as tick data | Misses fast moves | State the resolution |\n| Calling the open \"the sharp number\" | Opens are early and wide | Compare close to close for model work |\n| Quoting an old game's book list from memory | Book availability changed | Read the response |\n\n## Output Format\n\n```\nNYY vs TOR, 2025-10-07 (final: NYY 9, TOR 6). 8 books.\nMoneyline close: NYY best -161 (Pinnacle), TOR best +148 (Pinnacle).\nDraftKings: NYY -139 open, -174 close. Raw margin 4.8%.\nTotal: closed 8 at most books (ESPN BET 7.5). Over -119 / under -102 at DraftKings.\nResult vs market: favourite won; over (15 runs vs 8).\nMovement: every book moved toward NYY by 20 to 35 cents.\nSnapshot resolution: hourly at best.\n```\n\n## What to Do Next\n\n| You found | Next | Skill |\n|-----------|------|-------|\n| Prices with the margin in them | Remove it for true probabilities | `odds-analysis` |\n| Game context behind a move | Matchup summary | `game-preview` |\n"
}

SHA-256 of public snapshot: 4a36c2a1dfa982a7c67ffce46d7f6e01703e1c3b57c81a057235c04f98349a7e