Pinnacle API is a RESTful service for betting all bet types on all sports.
api.pinnacle.com
Access to Pinnacle API suite has been closed for the general public since July 23rd, 2025. We offer bespoke data services for select high value bettors & commercial partnerships. We also support academics and pregame handicapping projects. To apply for access please write a short description of your use case to api@pinnacle.com. Our team will get back to you with options.
The API uses HTTP Basic access authentication. Always use HTTPS to access the API.
You need to send HTTP Request header like this:
Authorization: Basic <Base64 value of UTF-8 encoded “username:password”>
Example:
Authorization: Basic U03MyOT23YbzMDc6d3c3O1DQ1
Please note that in order to access Pinnacle API, you must have a funded account.
Pinnacle API supports only JSON format.
HTTP header Accept must be set:
Accept: application/json
POST HTTP Request must have JSON body content and Content-Type HTTP header must be set:
Content-Type: application/json
Pinnacle API supports HTTP compression. We strongly recommend using compression as it would give the best performance.
Please make sure to set the User-Agent HTTP header or compression might not work.
All dates and times are in GMT time zone, ISO 8601 format
When a client issues a network request, it is always possible for the request to timeout or return an error status code indicating that the bet may not have been accepted. This opens up the possibility of the same request being sent more than once, which could create duplicate bets. Deduplication is a technique to avoid creating these duplicates when retrying a create request. We do the deduplication automatically for you.
If the bet is accepted, we store the uniqueRequestId in the system for 30 min. If you try again within that time range to place a bet with the same uniqueRequestId, you will get the appropriate error.
All place bet requests support deduplication.
v1 - Current
v2 - Current
v3 - Deprecated
v4 - Current
-
Delta and snapshot calls are supported in
/fixtures,/fixtures/special,/oddsand/odds/specialendpoints. Delta calls return changes since the providedsincevalue. For delta calls,sinceparameter must not be set to 0 or 1, it must always be the value of thelastproperty from the previous response. Snapshot calls return the current state,sinceparameter must not be provided for snapshot calls. -
Always issue a snapshot call first, then proceed with delta calls. This yields faster response times and smaller payloads, so your client will receive odds and fixture updates more quickly.
-
The client must not call the
/oddsor/fixtureeendpoints in a loop for each sport, league, or fixture. If you’re interested in certain leagues only, include all their IDs in theleagueIdspparameter in a single call. Likewise, if you need specific events, include all their IDs in theeventIdsparameter together. -
For the
/sportscall: requests must be limited to once every 60 minutes. The list of sports rarely changes, and the “active events” count is obsolete functionality that will eventually be removed. -
The client must not call the
/lineendpoint in a loop. This endpoint exists solely to check a price prior to placing a bet. -
IP Restrictions: Access to the entire API is restricted to a maximum of 2 distinct IP addresses per client.
All API endpoints that expose odds data are subject to strict rate limiting:
-
/v1/odds
-
/v1/odds/special
-
/v1/odds/parlay
-
/v2/odds
-
/v1/line
-
/v1/line/special
-
/v1/line/parlay
Request Rate Limit: 1 request per 2 minutes, per endpoint, per sportId. Requests exceeding the allowed rate will result in 429 HTTP error:
HTTP/1.1 429 Too Many Requests
Content-Type: application/json
{
"code": "TOO_MANY_REQUESTS",
"message": "Notice of Excessive Request Activity"
}Example
2025-10-14T18:00:00Z /v1/odds?sportId=29 200 OK
2025-10-14T18:00:01Z /v1/odds?sportId=15 200 OK
2025-10-14T18:00:02Z /v1/odds?sportId=3 200 OK
2025-10-14T18:01:02Z /v1/odds?sportId=29&since=3301748841 429 Too Many Requests
...
2025-10-14T18:02:01Z /v1/odds?sportId=29&since=3301748841 200 OK
2025-10-14T18:02:02Z /v1/odds?sportId=15&since=3301749826 200 OK
2025-10-14T18:02:03Z /v1/odds?sportId=3&since=33017511801 200 OK
...
2025-10-14T18:04:02Z /v1/odds?sportId=29&since=3301748841 200 OK
2025-10-14T18:04:03Z /v1/odds?sportId=15&leagueIds=4347&leagueIds=889&since=3301742786 200 OK
2025-10-14T18:04:04Z /v1/odds?sportId=3&since=33017511801 200 OK
Pinnacle is not liable for use of the API for any purpose. The API is provided on an “as is” and “as available” basis, without warranties of any kind, either expressed or implied, including, without limitation, implied warranties of merchantability and fitness for a particular purpose or non-infringement.