Pinnacle API Alternative: Backtest on Pinnacle Odds Without Pinnacle API Access
On 23 July 2025 Pinnacle closed its API to the public, and the odds feed reached end of life on 1 January 2026. The homemade backtesters built on it went dark with it. Bet2Invest keeps the part that mattered: years of Pinnacle prices, settled, and an engine to test rules against them, reachable by API.
What happened to the Pinnacle API
For a decade the Pinnacle API was the quiet backbone of serious betting tooling: the sharpest prices in the market, low margins, and a feed anyone with an account could poll. Since 23 July 2025 that access is closed to the general public. Pinnacle now serves data to select commercial partners, high-value accounts and academic projects on request, and the old /v1/odds endpoint reached end of life on 1 January 2026.
Third-party feeds have stepped in to relay live Pinnacle prices, which is fine for line shopping or tracking the closing line value of today's bets. Backtesting needs something else: years of opening and closing prices, matched to results, cleaned of duplicates and voids. A live feed you started recording last month cannot give you that, and most relays either have no history or sell short snapshots as an add-on.
Bet2Invest is an official Pinnacle API partner and has been archiving Pinnacle opening and closing odds for years. The Pinnacle historical odds database sits behind a backtesting engine you can drive from the app, from the public REST API, or from the open-source Python client.
Pinnacle public API vs Bet2Invest at a glance
Pinnacle public API (until 2025): Pinnacle account plus API approval; closed to individuals since July 2025
Bet2Invest: Any Bet2Invest account on a Sharp or Edge plan; key generated in one click, no Pinnacle account required
Pinnacle public API (until 2025): Live feed only; you recorded it yourself and lived with the gaps
Bet2Invest: Up to 10 years of soccer, 20 years coming soon, and 5 years on seven other sports; opening and closing prices, cleaned and settled
Pinnacle public API (until 2025): Your own code, your own settlement logic
Bet2Invest: One endpoint: send a filter tree, get bets, yield, drawdown, win rate and the equity curve
Pinnacle public API (until 2025): Whatever you captured
Bet2Invest: Moneyline and 1X2, spreads and Asian handicaps, totals and team totals, on the main line or a fixed line
Pinnacle public API (until 2025): None, raw prices
Bet2Invest: 37 filters: price bands, de-vigged probability, vig, liquidity, league line movement, form, standings, rest days, season phase, market-implied expected goals
Pinnacle public API (until 2025): Your bot, on your account
Bet2Invest: Optional: Pinnacle Automation places bets on your own Pinnacle account through the official API, non-custodial, flat 0.2% fee
Pinnacle public API (until 2025): Community wrappers, now unmaintained
Bet2Invest: Open-source Python client with zero dependencies, OpenAPI schema and Redoc reference
Pinnacle public API (until 2025): Free with an approved Pinnacle account
Bet2Invest: Explorer plan free in the app; the API comes with Sharp (€119.95) and Edge (€239.95) per month, cheaper on quarterly billing
What the live relays give you, and what they do not
Services such as OddsPapi, SharpAPI, The Odds API or pinnapi relay Pinnacle-derived prices in real time. They are the right tool for comparing lines this afternoon, feeding a live model, or logging the closing price of the bets you place. They are not a backtest: you get today, not ten seasons, and you still have to write the settlement, the deduplication and the statistics yourself. Where a history is offered it usually starts in 2021 or later and is billed as an extra.
What Bet2Invest exposes instead
1. The archive
Every matchup in the database carries its Pinnacle opening and closing price and its settled result: up to 10 years of soccer, soon 20, and 5 years each of basketball, tennis, American football, baseball, ice hockey, volleyball and esports. Moneyline and 1X2, spreads and Asian handicaps, totals and team totals wherever Pinnacle quoted them. See the sports coverage for the exact depth per sport.
2. The engine
You describe a strategy as a tree of filters and a bet selection, the engine settles every simulated bet at the actual closing price and returns bet count, yield, profit, maximum drawdown, streaks and the cumulative P&L curve. Through the API that is one POST to run the backtest and one GET to collect the result; unchanged strategies are served from cache instantly.
3. The client
The Python client is open source, has no dependencies and fits a backtest in twenty lines:
from pinnaclebacktest import AND, SPORTS, Bet2Invest, league, moneyline, odds_range
api = Bet2Invest() # reads B2I_API_KEY
strategy = api.create_strategy("EPL home underdogs", SPORTS["soccer"], moneyline("home"))
strategy.set_filters(AND(
league(api.league_id("Premier League", SPORTS["soccer"])),
odds_range("home", 2.2, 3.4),
))
print(strategy.backtest().summary())
It lives at github.com/bet2invest/pinnacle-backtest-api, and the full REST reference is published as OpenAPI and Redoc.
4. From backtest to live bets
A strategy that holds up can be saved: it then runs on live Pinnacle prices, delivers picks by email or Telegram, tracks them against the close, and, if you have a Pinnacle account, places them on it through the official Pinnacle API with Pinnacle Automation. Your funds never leave your account.
When you still need the real Pinnacle API
If your use case is a live model that must price thousands of markets a minute, or programmatic placement at scale outside our automation, apply to Pinnacle directly at api{'@'}pinnacle.com and describe the project. Bet2Invest is not a live odds feed and does not resell Pinnacle prices. It replaces the part of the old workflow that individuals actually built: the history and the backtest.
Getting started
- Create a free account and try the builder in the app on the Explorer plan.
- Upgrade to Pro or Elite, generate a key under Settings > API.
pip install pinnacle-backtest-api, export the key, run the quickstart.- Keep the strategies that survive the closing line and follow them live.
Keep exploring
Frequently asked questions
Is this the official Pinnacle API?
No. Bet2Invest is an official Pinnacle API partner, and Pinnacle Automation places bets through Pinnacle's API, but the backtesting API is Bet2Invest's own endpoint over its archive of Pinnacle prices. Pinnacle's public API itself is closed to individuals.
Do I need a Pinnacle account?
Not to backtest, follow strategies or receive picks. You only need one if you want Pinnacle Automation to place the bets on it for you.
Can I download the raw historical odds?
The API returns backtest results, statistics and picks rather than a bulk odds dump. Each pick carries its opening, detection and closing price, so a saved strategy builds its own settled price history over time.
How far back does the history go?
Up to 10 years for soccer, with 20 years on the way, and 5 years for basketball, tennis, American football, baseball, ice hockey, volleyball and esports. Every matchup keeps both the opening and the closing Pinnacle price.
Which plan includes the API?
Sharp and Edge. The Explorer plan is free and gives you the same engine in the app with a capped backtest window, so you can try the data before paying for programmatic access.
Are there rate limits?
Yes: 120 requests per minute per key and 10 backtest runs per minute. Backtests are cached, so re-running an unchanged strategy does not count against the limit.
Backtest on Pinnacle prices today
Try the engine free in the app, then drive it from Python with an API key.