Pinnacle Odds API Documentation
Authentication, the odds endpoint and its parameters, response fields, and rate limits for pulling Pinnacle lines, with working code in TypeScript, Python, and cURL.
You can get Pinnacle odds via API by using an odds aggregation service like SharpAPI. Sign up for a free account and generate an API key. Then make a single REST call to get Pinnacle live odds, moneylines, point spreads, totals, and props. Covers 40+ other sportsbooks. No Pinnacle account required. Pinnacle's own API exists but requires a funded account and regional access. Most developers use third-party aggregators for easier integration, access to Pinnacle sharp lines, and multi-book coverage.
This page is the API reference and integration walkthrough: endpoint, authentication, parameters, response fields, and working code. For market coverage, update frequency, and plan pricing, see the Pinnacle odds API page.
Pinnacle Odds API Reference
SharpAPI serves Pinnacle odds from a single REST endpoint. Authenticate with a bearer token and filter to Pinnacle with the sportsbook parameter. Each row carries the raw American and decimal odds plus an implied probability. No-vig fair odds are a separate endpoint, GET /api/v1/opportunities/ev, which computes them from the Pinnacle line for you.
| Endpoint | GET https://api.sharpapi.io/api/v1/odds |
| Authentication | Authorization: Bearer YOUR_API_KEY |
| Pinnacle filter | sportsbook=pinnacle |
| Parameters (REST) | sport, league, sportsbook, market_type (moneyline, point_spread, total_points)The SDKs name this one market — singular, no underscore — as the examples above use. Same Atlas ids either way. |
| Response rows | One sportsbook, market, and selection per row: id, sportsbook, sport, league, event_id, home_team, away_team, market_type, selection, selection_type, odds_american, odds_decimal, probability, line, is_live, start_time, timestamp |
| No-vig fair odds | Not on /odds. Use GET /api/v1/opportunities/ev, which returns no_vig_odds, no_vig_probability, and fair_probability computed from the Pinnacle line. |
| SDKs | npm install @sharp-api/client or pip install sharpapi |
| Rate limits | Requests per minute by plan, starting at 12 on the free tier. See pricing for per-plan limits and Pinnacle availability. |
Why Pinnacle Odds Matter
Pinnacle is the benchmark for sharp sports betting lines. Unlike DraftKings, FanDuel, or BetMGM, Pinnacle doesn't limit winning bettors. This means their lines reflect true market sentiment from the most informed players in the world.
Pinnacle's business model is fundamentally different: low margins (1-3% vig on major markets), high volume, and no bet restrictions. Pinnacle's lines are shaped by professional syndicates, algorithmic traders, and the sharpest money in sports betting.
Vig on major markets (vs. 5-10% at recreational books)
Soccer leagues covered, more than any other sportsbook
On winning bettors, lines reflect true sharp money
Your Options for Getting Pinnacle Data
| Method | Requirements | Data | Best For |
|---|---|---|---|
| Pinnacle Partner API | Funded Pinnacle account, regional access, affiliate/partner approval | Pinnacle only | Pinnacle affiliates |
| SharpAPI | Free sign-up, no Pinnacle account needed | Pinnacle + 20 other books | Developers building betting tools |
| The Odds API | Free tier (500 credits/mo) | Pinnacle + 40 other books | Simple REST access, basic comparison |
| Web scraping | Proxy infrastructure, anti-bot bypass, ongoing maintenance | Pinnacle only (fragile) | Not recommended |
Recommendation: Using an aggregation API is the fastest path. You skip Pinnacle scraper maintenance, rate limit handling, and geo-restrictions. You also get multi-book data for cross-referencing.
Step-by-Step: Get Pinnacle Odds in 5 Minutes
Create a free SharpAPI account
Sign up at sharpapi.io, no credit card required. You get 12 requests/minute immediately across 2 sportsbooks. Pinnacle is not one of them: it is on the Sharp tier, which has a 3-day free trial, so you can pull Pinnacle lines without paying up front.
Generate an API key
Go to your API Keys dashboard and create a new key. Copy it for use in the Authorization header.
Install the SDK (optional)
npm install @sharp-api/client or pip install sharpapi. Or use plain HTTP with any language.
Request Pinnacle odds
Pass sportsbook=pinnacle to filter for Pinnacle data specifically, or omit it to get all sportsbooks at once.
Code Examples
TypeScript (SDK)
import { SharpAPI } from '@sharp-api/client'
const client = new SharpAPI(process.env.SHARPAPI_KEY)
// Fetch Pinnacle moneyline odds for the NBA
const odds = await client.odds.get({
sportsbook: ['pinnacle'],
league: 'NBA',
market: 'moneyline',
})
for (const row of odds.data) {
// flat rows: one sportsbook + market + selection per row
console.log(row.home_team, 'vs', row.away_team, '-', row.market_type, row.selection, row.odds_american)
}Python (SDK)
from sharpapi import SharpAPI
client = SharpAPI(api_key="YOUR_API_KEY")
# Fetch Pinnacle moneyline odds for the NBA
odds = client.odds.get(
sportsbook=["pinnacle"],
league="NBA",
market="moneyline",
)
for row in odds.data:
print(f"{row.home_team} vs {row.away_team} - {row.market_type}: {row.selection} {row.odds_american}")cURL (any language)
curl -X GET "https://api.sharpapi.io/api/v1/odds?sportsbook=pinnacle&league=NBA&market_type=moneyline" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"Calculating No-Vig Fair Odds from Pinnacle
Pinnacle's low vig makes them the ideal source for computing fair odds (true probability without the sportsbook's margin). Here's the math:
Worked Example: Vig Removal
Pinnacle line: Team A -115 | Team B +105
Step 1: Convert to implied probability
Team A: 115 / (115 + 100) = 53.5%
Team B: 100 / (105 + 100) = 48.8%
Step 2: Sum implied probabilities
Total = 53.5% + 48.8% = 102.3% (2.3% is Pinnacle's vig)
Step 3: Divide each by total to get fair probability
Team A fair: 53.5% / 102.3% = 52.3%
Team B fair: 48.8% / 102.3% = 47.7%
Step 4: Convert back to American odds
Team A fair: -109.6 (was -115)
Team B fair: +109.6 (was +105)SharpAPI does this automatically. The +EV endpoint returns pre-computed no-vig fair odds derived from Pinnacle lines, so arbitrage detection and live betting analysis do not require you to strip the vig yourself. No manual calculation needed.
Using Pinnacle Lines for +EV Detection
Once you have Pinnacle's fair odds, compare them against every other sportsbook. This reveals positive expected value (+EV) opportunities, also called value betting, where a sportsbook offers better odds than the true probability suggests.
+EV Calculation Example
Pinnacle fair probability for Team A: 52.3%
DraftKings offers Team A at -105 (1.952 decimal)
EV% = (fair_probability x decimal_odds - 1) x 100
EV% = (0.523 x 1.952 - 1) x 100
EV% = (1.021 - 1) x 100
EV% = +2.1% <-- Positive EV! This is a value bet.SharpAPI's +EV endpoint computes this across all sportsbooks in real-time. You can also stream +EV alerts via SSE.