← EndzoneAPICONTENT HISTORY

Update to EndzoneAPI

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 EndzoneAPI 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 NFL spreads, totals and moneylines across sportsbooks, finds the best price, reads opening-to-closing movement, and browses alternate lines. Use when user asks about the line on a game, which book has the best number, how a line moved, Pinnacle versus the consensus, alternate spreads, or key numbers like 3 and 7. Do not use for devigging or implied probability math, see odds-analysis. Do not use for player props, see prop-modeling.",
  "included_files": [],
  "name": "odds-explorer",
  "skill_md_contents": "---\nname: odds-explorer\ndescription: \"Compares NFL spreads, totals and moneylines across sportsbooks, finds the best price, reads opening-to-closing movement, and browses alternate lines. Use when user asks about the line on a game, which book has the best number, how a line moved, Pinnacle versus the consensus, alternate spreads, or key numbers like 3 and 7. Do not use for devigging or implied probability math, see odds-analysis. Do not use for player props, see prop-modeling.\"\nmetadata:\n  version: 1.0.0\n  author: EndzoneAPI\n---\n\n# Odds Explorer\n\n> **Default data tool:** EndzoneAPI (`endzoneapi-tool`).\n> `get_odds` for one game's lines by book (10 credits). `get_line_movement` for the hourly series (25 credits). `get_alt_lines` for ladders (10 credits). `get_games` already carries the consensus closing line (5 credits per query).\n\nYou are an expert in football betting markets. Your goal is to show where the best price is, what the market says, and how it moved, in numbers the user can check.\n\n## When to Use\n\n- \"What was the closing line for Denver at Kansas City?\"\n- \"Which book had the best number on the Chiefs?\"\n- \"Did the total move after the injury news?\"\n- \"What does a 6.5 point alternate spread cost?\"\n- \"How often do games land on 3 or 7?\"\n\n## When NOT to Use\n\n- Removing vig and converting to probability, see `odds-analysis`\n- Player props, see `prop-modeling`\n\n## Commands Available\n\n| Command | What It Does | Credits |\n|---------|-------------|---------|\n| `get_odds` | `game_id`: consensus close plus each book's opening, closing, latest. Or `season` (and optional `team`): a page of per-book closing lines | 10 per game |\n| `get_line_movement` | Hourly snapshots grouped by `bookmaker` for one `game_id` | 25 |\n| `get_alt_lines` | Alternate spread and total ladders, 2023 to 2025, 6 books | 10 |\n| `get_games` | Consensus closing spread, total, moneylines for many games | 5 |\n| `get_schedule` | Upcoming games with consensus lines where posted | 2 |\n\n## Commands That Do NOT Exist\n\n| Not Available | Use Instead |\n|--------------|-------------|\n| `get_best_line` | Pull `get_odds`, compare the books yourself |\n| `get_public_betting` | Not available. Infer nothing about bet percentages from line moves alone |\n| `get_live_odds` | `get_odds` latest snapshot; not an in-game feed |\n| `get_futures` | Not available |\n\n## Data Coverage\n\n- Consensus closing spread and total: every game since 1999. Moneyline since 2010.\n- Per-book closing: 2014 onward (ESPN source, 4 to 9 books through 2019, closing only).\n- Opening, closing and latest per book: 2020 onward from The Odds API, up to 8 books including Pinnacle. Each line carries its `source`.\n- Books: draftkings, fanduel, betmgm, espnbet, pinnacle, bovada, betonlineag, mybookieag.\n- Alternate ladders: one game at a time, 2023 to 2025 seasons.\n- Hourly snapshots in season begin 2026. Earlier games have opening and closing only.\n\n## Sign Conventions (the first bug everyone ships)\n\nTwo conventions meet in this API. Real example, 2025 Week 17 DEN at KC, where Denver was the favorite:\n\n| Where | Field | Value | Meaning |\n|-------|-------|-------|---------|\n| `get_games`, `consensus_closing` | `spread_line` | -13.5 | Home-side number: negative means the away team is favored |\n| Pinnacle book object | `spread_home` | 13.5 | Book convention: the home team gets +13.5 |\n| Pinnacle book object | `spread_away` | -13.5 | Away team lays 13.5 |\n\nRule: `spread_line` is positive when home is favored. `spread_home` is negative when home is favored. They are negatives of each other. Convert before you compare.\n\nHome covers if `result > spread_line` where `result` is home score minus away score. In the example, KC lost 13 to 20, `result` = -7, which is greater than -13.5, so KC covered.\n\n## How It Works\n\n**Step 1: Get the game id.** From `get_games` or `get_schedule`. Format `2025_17_DEN_KC`.\n\n**Step 2: Pull the book lines.** `get_odds(game_id=\"2025_17_DEN_KC\")`. Add `bookmaker=\"pinnacle\"` to narrow. Real shape of one book entry: `opening`, `latest`, `closing`, each with `ml_home`, `ml_away`, `spread_home`, `spread_home_odds`, `spread_away`, `spread_away_odds`, `total`, `total_over_odds`, `total_under_odds`, `captured_at`, `source`.\n\n**Step 3: Compare.** For each market, the best price for each side independently. Spreads: a half point matters more at 3 and 7 than elsewhere. Moneylines: higher number is better on both sides.\n\n**Step 4: Movement.** From the real Pinnacle entry: total opened 36.5 at -107/-107 and closed 37.5 at -114/+101. A one point total move, with the over price rising, means money or information pushed the total up. Spread stayed at 13.5, only the price moved (-103 to -109 on the home side). Report all three: the number, the price, the time window (`captured_at`).\n\n**Step 5: Key numbers.** In the NFL, 3 and 7 are the most common margins of victory, then 6, 10, 14. Moving a spread across 3 is worth far more than crossing 2 or 4. Measure the actual frequency from `get_games` results (`result` column) over the seasons you have rather than quoting a remembered figure.\n\n**Step 6: Alternate lines.** `get_alt_lines(game_id=\"2025_17_DEN_KC\", market=\"alternate_spreads\", bookmaker=\"pinnacle\")` returns the ladder with `side` (home or away) and each point's price. Buying points has a price; compare to the main line's implied probability change (see `odds-analysis`).\n\n## Reference Line\n\n\n## Credit Usage\n\n| Operation | Credits |\n|-----------|---------|\n| Consensus closing for a whole season | 5 (`get_games`) |\n| One game, all books | 10 |\n| One game, hourly movement | 25 |\n| One game, alternate ladders | 10 |\n| A season of per-book lines | 10 per game, 1,000 for a 100-game page |\n\nUse `estimate_only=true` on `get_odds` to price a season pull before running it. It charges nothing.\n\n## Anti-patterns\n\n| Rationalization | Why It's Wrong | Do This Instead |\n|----------------|---------------|-----------------|\n| \"Spread -13.5 means the home team is favored\" | `spread_line` is home-perspective, positive = home favored | Check against the final score of a known game |\n| \"Latest line equals closing line\" | Latest is the newest snapshot, which may be hours before kickoff | Use the `closing` snapshot for historical work |\n| \"Any 0.5 move is equal\" | Moves through 3 and 7 carry real probability | Weight by key number |\n| \"Books agree, so skip the comparison\" | Prices differ even when numbers match | Compare the odds, not just the line |\n\n## Output Format\n\n```\nDEN @ KC -- Dec 25, 2025 (kickoff 01:15 UTC Dec 26)\nConsensus close: DEN -13.5, total 37.5, ML DEN -1100 / KC +700\nPinnacle: KC +13.5 (-109), DEN -13.5 (-102); total 37.5 (O -114 / U +101)\nMovement: total 36.5 -> 37.5 (+1.0), spread unchanged, DEN price -109 -> -102\nNote: spread_line is -13.5 (home-side), the book shows KC +13.5.\n```\n\n## What to Do Next\n\n| What You Found | Next Action | Skill |\n|----------------|-------------|-------|\n| Two-sided price | Remove vig | `odds-analysis` |\n| Large move | Check injuries and news in the matchup | `game-preview` |\n"
}

SHA-256 of public snapshot: 680efbd5701fb7b5b99491a9913ee3b9d848cc27742cf192370ff7ff3d2f41c6