• ENUMS
    • BET_STATUS
    • ODDS_FORMAT
    • BET_TYPE
    • SIDE_TYPE
    • BOOLAEN
    • WIN_RISK_TYPE
    • PLACEBET_RESPONSE_STATUS
    • PLACEBET_ERROR_CODE
    • PLACE_PARLAY_BET_RESPONSE_STATUS
    • PLACE_PARLAY_BET_ERROR_CODE
    • PLACE_PARLAY_LEG_RESPONSE_STATUS
    • PLACE_PARLEY_LEG_ERROR_CODE
    • PARLAY_RESTRICTION
    • GETLINE_RESPONSE_STATUS
    • TEAM_TYPE
    • BETLIST_TYPE
    • EVENT_STATUS
    • LIVE_STATUS
    • YES_NO_ TYPE
    • BOOLEAN2
    • FEED_ODDS_FORMAT_TYPE
    • FEED_STATUS_RESPONSE
    • INRUNNING_STATE
    • ROUND_ROBIN_OPTIONS

Feedback for the API XML odds feed should be directed to csd@pinnaclesports.com, however, we do not offer technical support or instructions beyond the available manual

Pinnacle Sports API Specification v1.0
(updated: 2015/8/31)

Version Control

VersionDateChange
1.0.0 2013/08/23 Initial release
1.0.1 2013/11/04 1. Added betterLineWasAccepted parameter to Place Bet response

2. Added following parameter to Get Bets response
· pitcher1
· pitcher2
· pitcher1MustStart
· pitcher2MustStart

3. Added LISTED_PITCHERS_SELECTION_ERROR to PLACEBET_ERROR_CODE enum
1.0.2 2013/11/14 Added the following properties to the Get Bets response:
· team1
· team2
1.0.3 2013/12/09 Corrected wording: · In Place Bet Response, updated Description column for errCode parameter
· Getting Started, Step 2 - Get Lines, Note
1.0.4 2014/01/27 Added period number description to Place Bet request, Get Feed response and Get Line request
Added Get Feed operation example in PHP

1.0.5 2014/02/10 Added to Overview “Please note that in order to access Pinnacle Sports API the account must be funded”
1.0.6 2014/11/05 Added new properties to Get Bets response:
  • isLive
  • periodNumber
  • team1Score
  • team1Score
  • ftTeam1Score
  • ftTeam2Score
  • pTeam1Score
  • pTeam1Score

Added new property lStatus to Get Feed response

Added Java example for Get Feed operation

1.1.0 2014/12/29

Added Get Inrunning operation

Translation Operation

1.2.0 2015/05/11

Added Get Odds operation
Added Get Fixtures operation
Added support for Parlays:

  • Get /line/parlay
  • Post /bets/parlay
2015/08/31 added R library package in Code Examples

Overview

Pinnacle Sports API is a RESTful service for straight bet and accumuculator betting on all sports. Current version does not support betting teasers and propositions (contests).

Please note that in order to access Pinnacle Sports API you must have a funded account.

Data Formats

There are 2 groups of operations:

Group 1 - These operations support only XML format of the response:

        - Get Sports

        - Get Leagues

        - Get Feed

        - Get Currencies

Group 2 - These operations support XML and JSON format:

        - Get Client Balance

        - Place Bet

        - Get Line

        - Get Bets

        - Get InRunning

        - Get Translations

Group 3 - These operations support only JSON format:

        - Get Odds

        - Get Fixtures

        - Place Parlay Bet

        - Get Parlay Lines

Please note that long term aim is to support just the JSON format as a more compact format than XML.

For these methods you can use HTTP content negotiation for the response format. HTTP Request must have:

Accept: application/json
Or
Accept: application/xml

For POST requests you can use JSON and XML formats. HTTP Request must have:

Content-Type: application/json
Or
Content-Type: application/xml

Compression

API supports HTTP compression. We stronly recommend using compression as it would give the best performances.

Please make sure you set the User Agent http header or compression might not work.

Date time

All dates and times are in UTC time zone, ISO 8601 format

Authentication

API use 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”>

For example:
Authorization: Basic U03MyOT23YbzMDc6d3c3O1DQ1

How To Migrate To New Odds Operations

We have introduced 2 new operations Get Odds and Get Fixtures in order to replace Get Feed operation.

Why this change?

Get Feed is a legacy operation not designed to for high traffic. With the new operations we want to give better service to our clients, to be able to retrieve the odds faster. We have split the static and less volatile fixtures data from the highly volatile odds data, minimized the payload and the number of updates client has to process.

How to migrate?

There is an important difference how Get Odds works comparing to legacy Get Feed operation. On delta call (with since parameter) Get Odds operations returns just the changed periods. This is in contrary to Get Feed operation where we return event with all the periods always, whatever was changed within the event. Get Odds full snapshot request (without since parameter) returns events with all periods, even those that have cutoff date time in the past. This is in contrary to the Get Feed full snapshot request (without last parameter). Get Odds does not support returning maximums by currencycode. For that purpose we have added currency rate to Get Currency operation response, so that client can convert maximums to whatever currency. New operations supports JSON only. Reason for that is that this is more compact and widely adopted format. We will keep Get Feed operation for now but eventually we will have to decommission it. It is strongly advised to plan the migration to use of Get Fixtures and Get Odds.

Event type attribute from Get Feed event element is moved to Get Leagues homeTeamType property.

The property names in Get Fixtures and Get Odds intuitively match the properties in Get Feed operation.

Getting Started

Step 1 – Sign Up

To get started you would need to create an account.

Please note that in order to access Pinnacle Sports API the account must be funded.

Step 2 - Get a List of Offered Sports and Leagues

You would need to get the list of sports from Get Sports operation. If you are interested in particular leagues you can get all sport leagues by calling Get Leagues operation.

Step 3 - Place Bet

To place a bet please check sections How to place a straight bet? and How to place a parlay bet?

Step 4 - Get Bets

To check the status of the placed bet you need to call Get Bets operation. The recommended way is to use bet id.
For bets on live events that are in PENDING_ACCEPTANCE state, you can call Get Bets every 5 sec to get the new status of the bet, to see if it’s accepted or rejected.

How to place straight bet?

Step 1 – Call Get Fixtures operation

This will return the list of events that are currently offered. To get updates use delta requests (with since parameter)

Step 2 – Call Get Odds operation

This will return the list of odds that are currently offered. To get updates use delta requests (with since parameter)

Step 3 - Get Line (optional)

Call Get Line operation if you need exact stake limits or if you are interested only in a specific line. Please note that the limits in the Get Feed response are just general limits. Limits in the Get Line response are the exact limits.

Step 4 - Place Bet

To place a bet you need to call Place Bet operation.



Table shows how to do mapping of Get Odds operation response to Place Bet and Get Line request.

ParameterGet Odds response parameter
sportId sportId
leagueId League Type -> id
eventId Event Type -> id
periodNumber Period Type -> number
team

Depends on selected odds from:

· Spread Type
· Moneyline Type
· Team Total Points

check the value in the corresponding Get Leagues Response -> League Type -> homeTeamType and set the appropriate value.

Example 1:

Given:
    homeTeamType="Team1"
When:
    Selected odds is Spread Type -> away
Then:
    team=Team2

Example 2:

When:
    Selected odds is Moneyline Type -> draw
Then:
    team=Draw

Example 3:

Given:
    homeTeamType="Team2"
When:
    Selected odds is Team Total Points Type -> away
Then:
    team=Team1

handicap Spread Type -> hdp
Total Points Type -> points
Team Total Points Type -> Total Points Type -> points
lineId Period Type -> lineId
altLineId Spread Type ->altLineId
Total Points Type -> altLineId

If you call Get Line operation, use the lineId (altLineId) from the response.

A period in an event is open for betting if:

1. Get Fixtures Response -> Event Type -> status has a value I or O
2. Event period has odds in Get Odds Response
3. Get Odds Response -> Period Type -> cutoff is in the future.

Please note that for live events, odds change quite frequently as well as the event status, from O/I to H and vice versa. Due to these frequent changes, it’s possible that you will be getting status NOT_EXISTS in the Get Line response more often than for the dead ball events.

How to place parlay bet?

Step 1 – Call Get Fixtures operation
This will return the list of events that are currently offered. To get updates use delta requests (with since parameter)
 
Step 2 – Call Get Odds operation
This will return the list of odds that are currently offered. To get updates use delta requests (with since parameter)
 
Step 3 – Call Get Parlay Lines operation
For each event and bet type you want to bet on, construct a Leg object for Get Parlay Lines call and submit your request using

POST /line/parlay

If response contains Invalid Legs – remove them and resubmit the request
If response have status = ‘VALID’ – place parlay bet request can be created
 
Step 4 – Call Place Parlay Bet
Construct a list of legs using lineId values from Get Parlay Lines response and specify roundRobbinOptions out of those retuned in Get Parlay Lines response.

FAQs

Fair Use

This API is provided free of charge to our players, partners and affiliates. However, use of this free resource is subject to our "Fair Use Policy" which is set out below.

When you utilise the API, you are agreeing to this policy. Any breeches of this policy, whether intentional or not, may result in a temporary suspension of your access. In extreme cases, we reserve the right to terminate your access completely. These decisions will be taken after discussions with you (where possible) and will be entirely at our discretion.

Fair usage

The following limitations must be observed per sport:

Also, you will not attempt or encourage others to:

Best practice

Please use an delta /feed calls (with the last parameter) instead of a snapshot /feed (without last parameter).

Please use an delta /fixtures and /odds calls (with the since parameter) calls instead of a snapshot /fixtures and /odds calls (without since parameter).

Disclaimer

While every effort is made to ensure the accuracy and validity of the information included in this feed, Pinnacle Sports make no representation that the operation of this feed will be uninterrupted or error free. As such, Pinnacle Sports provide this service at the users own risk and will not be liable for any consequences arising from any interruptions or errors.

Code Examples


Place Bet call in C#

Get Feed call in PHP

Get Feed call in Java

For users of R, please try this fully documented R package for accessing our API in R

Operations

Get Sports

Returns all sports with the status whether they currently have lines or not.

Request

GET v1/sports

No request parameters

URL Example:
https://api.pinnaclesports.com/v1/sports

Response

Response is only in XML.

Rsp Type

ParameterTypeOptionalDescription
@status FEED_STATUS_RESPONSE No Status of the response
sports Sport type Yes Sports container. It will be present if @status = “ok”
err GenericException2 type Yes Error details. It will be present if @status = “fail”

Sport type

ParameterTypeOptionalDescription
@id Int No Sport Id
@feedContents BOOLEAN2 No Whether the sport currently has lines
sport String No Sport name

Example of successful response

<rsp status="ok">
    <sports>
        <sport id="1" feedContents="0">Badminton</sport>
        <sport id="3" feedContents="1">Baseball</sport>
        <sport id="4" feedContents="1">Basketball</sport>
        <sport id="6" feedContents="0">Boxing</sport>
        <sport id="8" feedContents="0">Cricket</sport>
        <sport id="9" feedContents="0">Curling</sport>
        <sport id="10" feedContents="0">Darts</sport>
        <sport id="11" feedContents="0">Darts (Legs)</sport>
        <sport id="12" feedContents="0">E Sports</sport>
        <sport id="14" feedContents="0">Floorball</sport>
        <sport id="15" feedContents="1">Football</sport>
        <sport id="16" feedContents="0">Futsal</sport>
        <sport id="17" feedContents="0">Golf</sport>
        <sport id="18" feedContents="0">Handball</sport>
        <sport id="19" feedContents="0">Hockey</sport>
        <sport id="20" feedContents="0">Horse Racing</sport>
        <sport id="22" feedContents="0">Mixed Martial Arts</sport>
        <sport id="23" feedContents="0">Other Sports</sport>
        <sport id="24" feedContents="0">Politics</sport>
        <sport id="26" feedContents="0">Rugby League</sport>
        <sport id="27" feedContents="0">Rugby Union</sport>
        <sport id="28" feedContents="0">Snooker</sport>
        <sport id="29" feedContents="1">Soccer</sport>
        <sport id="30" feedContents="0">Softball</sport>
        <sport id="31" feedContents="0">Squash</sport>
        <sport id="32" feedContents="0">Table Tennis</sport>
        <sport id="33" feedContents="0">Tennis</sport>
        <sport id="34" feedContents="0">Volleyball</sport>
        <sport id="35" feedContents="0">Volleyball (Points)</sport>
        <sport id="36" feedContents="0">Water Polo</sport>
        <sport id="39" feedContents="1">Aussie Rules</sport>
    </sports>
</rsp>


Example of response with an error

<rsp status="fail">
    <err code="99">Internal server error</err>
</rsp>

Period IDs by Sport

Below is a list of Period numbers available for each sport, and what their definition:

Get Leagues

Returns all sports leagues with the status whether they currently have lines or not.

Request

GET v1/leagues?sportid={sportid}

ParameterTypeOptionalDescription
sportId Int No Sport id for which the leagues are requested

Example

To get all leagues for baseball:
https://api.pinnaclesports.com/v1/leagues?sportid=3

Response

Response is only in XML.

Rsp type

ParameterTypeOptionalDescription
@status FEED_STATUS_RESPONSE No Status of the response
sportId Int Yes Echo of the requested sport id. It will be present if @status = “ok”
leagues Array of League type Yes Leagues container. It will be present if @status = “ok”
err GenericException2 type Yes Error details. It will be present if @status = “fail”

League

ParameterTypeOptionalDescription
id Int No League id
feedContents BOOLEAN2 No Whether the sport currently has lines
homeTeamType TEAM_TYPE No Specifies whether the home team is team1 or team2. You need this information to place a bet
allowRoundRobins BOOLEAN2 No Specifies whether you can place parlay round robins on events in this league
league String No Name of the league

Example of successful response:

<rsp status="ok">
  <sportId>2</sportId>
  <leagues>
    <league id="182" homeTeamType="Team1" feedContents="0" allowRoundRobins="0">European Cup</league>
    <league id="183" homeTeamType="Team1" feedContents="0" allowRoundRobins="0">Finland - Bandyliiga - Men</league>
    <league id="187" homeTeamType="Team1" feedContents="0" allowRoundRobins="0">International Super Cup</league>
    <league id="211" homeTeamType="Team1" feedContents="0" allowRoundRobins="0">Exte World Cup - Men</league>
    <league id="212" homeTeamType="Team1" feedContents="0" allowRoundRobins="0">World International Championships - Men</league>
  </leagues>
</rsp>

Example of response with an error

<rsp status="fail">
<err code="1">Invalid sport ID</err>
</rsp>

Get Feed

This operation is obsolete, please check section Migration from Get Feed to Get Odds and Get Fixtures operations.

Returns current lines.

Request

GET /v1/feed?sportid={sportid}&leagueid={leagueid}&last={last}&oddsformat={oddsformat}&islive={islive}&currencycode={currencycode}

ParameterTypeOptionalDescription
sportId Int Yes The sportid for which the feed is desired. Mandatory only if islive parameter is not set and is not equal to "1".
leagueId String Yes The league id that belongs to the same sport Id. If sportid/leagueid is an invalid pair, no results will be returned. You can also pass multiple leagues separated by a dash "-". Please see the examples below.
oddsFormat FEED_ODDS_FORMAT_TYPE Yes Default is American. If otherwise specified, returns odds in different format.
last Long Yes This is used to receive incremental updates. Use the value of feedTime from previous feed response.
When last parameter is not provided, the response does not return the freshest lines. Please always use last parameter to get the freshest line changes.
islive BOOLEAN2 Yes To retrieve ONLY live games set the value to islive=1. If sportid is provided along with the request, the result will be related to a single sport.
islive=0 cannot be used without the sportid parameter. This ensures that the speed of the feed is not compromised.
currencyCode String Yes To convert amounts (such as maximum bet amount) to another currency. If omitted, the default is United States Dollar (USD). The currency code should be one from the Get Currencies operation response.

URL Examples

All soccer lines:
https://api.pinnaclesports.com/v1/feed?sportid=29

Soccer line changes since last refresh:
https://api.pinnaclesports.com/v1/feed?sportid=29&last=1373383152874

All live Soccer lines:
https://api.pinnaclesports.com/v1/feed?sportid=29&islive=1

Live Soccer line changes since last refresh:
https://api.pinnaclesports.com/v1/feed?sportid=29&islive=1&last=1373383152874

Selected soccer leagues:
https://api.pinnaclesports.com/v1/feed?sportid=29&leagueid=1728-1792-1817

Selected soccer leagues line changes since last refresh:
https://api.pinnaclesports.com/v1/feed?sportid=29&leagueid=1728-1792-1817&last=1373383152874

Response

Response is only in XML

Rsp Type

ParameterTypeOptionalDescription
@status FEED_STATUS_RESPONSE No Status of the response
fd Feed type Yes Container of the successful response. It will be present if @status = “ok”
err GenericException2 type Yes Error details. It will be present if @status = “fail”

Feed Type

ParameterTypeOptionalDescription
@fdTime Long No Feed timestamp. Use this value for the subsequent feed requests for last query parameter to get just the line changes since previous response.
sports Array of FeedSport type No Container for sports. Can be empty array if we currently don’t have any offerings for the requested sport.

FeedSport Type

ParameterTypeOptionalDescription
id Int No Sport id
leagues Array of FeedLeague type No Container for leagues

FeedLeague Type

ParameterTypeOptionalDescription
id Int No League id
events Array of FeedEvent type No Container for events

FeedEvent Type

ParameterTypeOptionalDescription
id Int No Event id
startDateTime Date Time No Date time when the event starts
IsLive YES_NO_TYPE No Whether or not the event is live
lStatus LIVE_STATUS No Live status of the event
status EVENT_STATUS No Status of the event.
drawRotNum Int Yes Rotation number for draw. Present only for sports/leagues where draw is possible.
awayTeam FeedTeam type No Container for away team
homeTeam FeedTeam type No Container for home team
periods Array of FeedPeriod type No Container for periods

FeedTeam Type

ParameterTypeOptionalDescription
@type TEAM_TYPE No Team type
Name String No Team name
rotNum Int No Rotation number
pitcher String Yes Pitcher name. Only for baseball.
score Int Yes Current score. Only for live soccer events.
redCards Int Yes Current red cards. Only for live soccer events.

FeedPeriod Type

ParameterTypeOptionalDescription

@lineId
Int No Line id
number Int No This represents the period of the match. For example, for soccer we have:
0 - Game
1 - 1st Half
2 - 2nd Half
description String Period type description
cutoffDateTime Date Time No Period’s wagering cut off date
spreads Array of FeedSpread type Yes Container for spread lines
totals Array of FeedTotalPoints type Yes Container for total lines
moneyLine Array of FeedMoneyline type Yes Container for moneyLine lines
teamTotals FeedTeamTotalPointsContainer type Yes Container for team total points
maxBetAmount FeedMaxBet type Container for maximum bet amounts

FeedMaxBet Type

ParameterTypeOptionalDescription
spread Decimal Yes Maximum spread bet
totalPoints Decimal Yes Maximum total points bet
moneyLine Decimal Yes Maximum moneyline bet
teamTotals Decimal Yes Maximum team total points bet

FeedSpread Type

ParameterTypeOptionalDescription
@altLineId Int Yes This is present only if it’s is alternative line
awaySpread Decimal No Away team handicap
awayPrice Decimal No Away team price
homeSpread Decimal No Home team handicap
homePrice Decimal No Home team handicap

FeedMoneyline Type

ParameterTypeOptionalDescription
awayPrice Decimal No Away team price
homePrice Decimal No Home team price
drawPrice Decimal Yes Draw price. This is present only for events we offer price for draw

FeedTotalPoints Type

ParameterTypeOptionalDescription
@altLineId Int Yes This is present only if it’s alternative line
points Decimal No Total points
overPrice Decimal No Over price
underPrice Decimal No Under price

FeedTeamTotalPointsContainer Type

ParameterTypeOptionalDescription
homeTeamTotal TotalPoints Yes Home team total points
awayTeamTotal TotalPoints Yes Away team total points

Example of successful response

<rsp status="ok">
  <fd>
    <fdTime>1372336682214</fdTime>
    <sports>
      <sport>
        <id>29</id>
        <leagues>
          <league>
            <id>2436</id>
            <events>
              <event>
                <startDateTime>2013-06-28T00:31:00Z</startDateTime>
                <id>309893600</id>
                <IsLive>Yes</IsLive>
                <lStatus>1</lStatus>
                <status>O</status>
                <drawRotNum>25</drawRotNum>
                <homeTeam type="Team1">
                  <name>AC Milan</name>
                  <rotNum>23</rotNum>
                  <score>1</score>
                </homeTeam>
                <awayTeam type="Team2">
                  <name>AS Roma</name>
                  <rotNum>24</rotNum>
                  <score>2</score>
                </awayTeam>
                <periods>
                  <period lineId="103648769">
                    <number>0</number>
                    <description>Game</description>
                    <cutoffDateTime>2013-06-28T00:31:00Z</cutoffDateTime>
                    <spreads>
                      <spread>
                        <awaySpread>1</awaySpread>
                        <awayPrice>105</awayPrice>
                        <homeSpread>-1</homeSpread>
                        <homePrice>-115</homePrice>
                      </spread>
                      <spread altLineId="186287960">
                        <awaySpread>1.25</awaySpread>
                        <awayPrice>-121</awayPrice>
                        <homeSpread>-1.25</homeSpread>
                        <homePrice>110</homePrice>
                      </spread>
                    </spreads>
                    <totals>
                      <total>
                        <points>1</points>
                        <overPrice>-105</overPrice>
                        <underPrice>-105</underPrice>
                      </total>
                      <total altLineId="186287961">
                        <points>0.75</points>
                        <overPrice>110</overPrice>
                        <underPrice>-124</underPrice>
                      </total>
                    </totals>
                    <moneyLine>
                      <awayPrice>112</awayPrice>
                      <homePrice>121</homePrice>
                      <drawPrice>131</drawPrice>
                    </moneyLine>
                    <teamTotals>
                      <homeTeamTotal>
                        <total>1</total>
                        <overPrice>-105</overPrice>
                        <underPrice>-105</underPrice>
                      </homeTeamTotal>
                      <awayTeamTotal>
                        <total>2</total>
                        <overPrice>-105</overPrice>
                        <underPrice>-105</underPrice>
                      </awayTeamTotal>
                    </teamTotals>
                    <maxBetAmount>
                      <spread>4000</spread>
                      <totalPoints>4000</totalPoints>
                      <moneyLine>2000</moneyLine>
                      <teamTotals>5000</teamTotals>
                    </maxBetAmount>
                  </period>
                </periods>
              </event>
            </events>
          </league>
        </leagues>
      </sport>
    </sports>
  </fd>
</rsp>


Example of response with an error

<rsp status="fail">
<err code="1">Invalid sport ID</err>
</rsp>

Get Fixtures

Returns all non-settled events.

Please note that it is possible that the event is in Get Fixtures response but not in Get Odds. This is happens when the odds have not been set yet for the event.

Request

GET  /v1/fixtures?sportId={sportid} &leagueIds=[{leagueId1},{leagueId2},…]&since={since}&IsLive={islive}

ParameterTypeOptionalDescription
sportId Int No The sportid for which to retrieve the fixutres.
leagueIds Array Yes The leagueIds array may contain a list of comma separated league ids.
since Long Yes This is used to receive incremental updates. Use the value of last from previous fixtures response.

When since parameter is not provided, the fixtures are delayed up to 1 min to encourage the use of the parameter.
islive BOOLEAN2 Yes To retrieve ONLY live events set the value to islive =1. Any other value will result in retrieval of events regardless of their Live status.

URL Examples:

All soccer events:
https://api.pinnaclesports.com/v1/fixtures?sportid=29

Soccer events changes since last refresh:
https://api.pinnaclesports.com/v1/fixtures?sportid=29&since=26142386

All live Soccer events:
https://api.pinnaclesports.com/v1/fixtures?sportid=29&islive=1

Live Soccer events changes since last refresh:
https://api.pinnaclesports.com/v1/fixtures?sportid=29&islive=1& since=26142386

Selected soccer leagues:
https://api.pinnaclesports.com/v1/fixtures?sportid=29&leagueids=1728,1792,1817

Selected soccer leagues fixtures changes since last refresh:
https://api.pinnaclesports.com/v1/fixtures?sportid=29&leagueid=1728-1792-1817&since=1373383152874

Response

Response is only in JSON

ParameterTypeOptionalDescription
sportId Int No Same as requested sport Id
last long No Use this value for the subsequent requests for since query parameter to get just the changes since previous response
league Array of League Type No Contains a list of Leagues

League Type:

ParameterTypeOptionalDescription
id Int No League ID
events Array of Event Type No Contains a list of events

Event Type:

ParameterTypeOptionalDescription
id Int No Event ID
starts DateTime No Start time of the event in UTC
home String No Home team name
away String No Away team name
rotNum String No Team1 rotation number
liveStatus LIVE_STATUS Yes Indicates event’s live status
status EVENT_STATUS No Status of the event
parlayRestriction PARLAY_RESTRICTION No Parlay status of the event

JSON Example:

GET /v1/fixtures?sportId=29&leagueIds=1833

{
    "sportId": 29,
    "last": 26142386,
    "league": [
        {
            "id": 1833,
            "events": [
                {
                    "id": 383911973,
                    "starts": "2015-01-22T21:00:00Z",
                    "home": "America de Natal",
                    "away": "Barras",
                    "rotNum": "901",
                    "liveStatus": 0,
                    "status": "O",
                    "parlayRestriction": 0
                },
                {
                    "id": 383911974,
                    "starts": "2015-01-22T21:00:00Z",
                    "home": "Baraunas RN",
                    "away": "ASSU RN",
                    "rotNum": "904",
                    "liveStatus": 0,
                    "status": "O",
                    "parlayRestriction": 0
                }
            ]
        }
    ]
}

Throws

GenericException type

Get Odds

Returns straight and parlay odds for all non-settled events.

Please note that it is possible that the event is in Get Fixtures response but not in Get Odds. This is happens when the odds have not been set yet for the event.

Request

Straight Odds:
GET  /v1/odds?sportId={sportid} &leagueIds=[{leagueId1},{leagueId2},…]&since={since}&isLive={islive}}&oddsFormat={oddsFormat}

Parlay Odds:
GET  /v1/odds/parlay?sportId={sportid} &leagueIds=[{leagueId1},{leagueId2},…]&since={since}&isLive={islive}&oddsFormat={oddsFormat}

ParameterTypeOptionalDescription
sportId Int No The sportid for which to retrieve the odds.
leagueIds Array Yes The leagueIds array may contain a list of comma separated league ids.
since Long Yes This is used to receive incremental updates. Use the value of last from previous odds response.
When since parameter is not provided, the odds are delayed up to 1 min to encourage the use of the parameter.
Please note that when using since parameter you will get in the response ONLY changed periods. If a period didn’t have any changes it will not be in the response.
islive BOOLEAN2 Yes To retrieve ONLY live odds set the value to islive =1. Otherwise response will have all odds.
oddsFormat ODDS_FORMAT Yes Format in which we return the odds. Default is American.

URL Examples

All soccer odds:
https://api.pinnaclesports.com/v1/odds?sportid=29

All soccer parlay odds:
https://api.pinnaclesports.com/v1/odds/parlay?sportid=29

Soccer odds changes since last refresh:
https://api.pinnaclesports.com/v1/odds?sportid=29&since=26142386

All live Soccer odds:
https://api.pinnaclesports.com/v1/odds?sportid=29&islive=1

Live Soccer odds changes since last refresh:
https://api.pinnaclesports.com/v1/odds?sportid=29&islive=1& since=26142386

Selected soccer leagues odds:
https://api.pinnaclesports.com/v1/odds?sportid=29&leagueids=1728,1792,1817

Selected soccer leagues odds changes since last refresh:
https://api.pinnaclesports.com/v1/odds?sportid=29&leagueid=1728,1792,1817&since=1373383

Response

Response is only in JSON

ParameterTypeOptionalDescription
sportId Int No Same as requested sport Id
last long No Use this value for the subsequent requests for since query parameter to get just the changes since previous response
leagues Array of League Type No Contains a list of Leagues

League Type:

ParameterTypeOptionalDescription
id Int No League ID
events Array of Event Type No Contains a list of events

Event Type:

ParameterTypeOptionalDescription
id Int No Event ID
periods Array of Period Type No Contains a list of periods
awayScore Decimal Yes Away team score. Only for live events.
homeScore Decimal Yes Home team score. Only for live events.
awayRedCards Int Yes Away team red cards. Only for live events.
homeRedCards Int Yes Home team red cards. Only for live events.

Period Type:

ParameterTypeOptionalDescription
@lineId Int No Line ID
number Int No

This represents the period of the match. For example, for soccer we have:

0 - Game
1 - 1st Half
2 - 2nd Half

Full list of periods per sports

cutoff DateTime No Period’s wagering cut-off date
spreads Array of Spread Type Yes Container for spread odds
totals Array of Total Points type Yes Container for total odds
moneyLine Moneyline type Yes Container for moneyLine odds
teamTotals Team Total Points type Yes Container for team total points
maxSpread Decimal Yes Maximum spread bet. Only in straight odds response.
maxTotal Decimal Yes Maximum total points bet. Only in straight odds response.
maxMoneyLine Decimal Yes Maximum moneyline bet. Only in straight odds response.
maxTeamTotal Decimal Yes Maximum team total points bet. Only in straight odds response.

Spread Type:

ParameterTypeOptionalDescription
altLineId Int Yes This is present only if it’s alternative line.
hdp Decimal No Home team handicap
away Decimal No Away team price
home Decimal No Home team price

MoneLine Type:

ParameterTypeOptionalDescription
away Decimal No Away team price
home Decimal No Home team price
draw Decimal Yes Draw price. This is present only for events we offer price for draw.

Total Points Type:

ParameterTypeOptionalDescription
altLineId Int Yes This is present only if it’s alternative line
points Decimal No Total points
over Decimal No Over price
under Decimal No Under price

Team Total Points Type:

ParameterTypeOptionalDescription
away Total Points Type Yes Away team total points
home Total Points Type Yes Home team total points

JSON Example:

GET /v1/odds?sportId=29&leagueIds=1833

{
  "sportId":29,
  "last":138030959,
  "leagues":[
    {
      "id":1833,
      "events":[
        {
          "id":383911982,
          "awayScore":0,
          "homeScore":1,
          "awayRedCards":0,
          "homeRedCards":1,
          "periods":[
            {
              "lineId":138030967,
              "number":0,
              "cutoff":"2015-01-24T00:12:00Z"
            },
            {
              "lineId":138030968,
              "number":1,
              "cutoff":"0001-01-01T00:00:00Z"
            },
            {
              "lineId":138030965,
              "number":2,
              "cutoff":"2015-01-24T00:12:00Z",
              "maxSpread":12,
              "spreads":[
                {
                  "hdp":-1,
                  "home":-110,
                  "away":-110
                }
              ]
            },
            {
              "id":383911976,
              "periods":[
                {
                  "lineId":138030946,
                  "number":0,
                  "cutoff":"2015-01-22T13:00:00Z",
                  "maxSpread":2000,
                  "maxMoneyline":500,
                  "maxTotal":2000,
                  "spreads":[
                    {
                      "hdp":0,
                      "home":-131,
                      "away":113
                    },
                    {
                      "altLineId":524735761,
                      "hdp":-0.5,
                      "home":152,
                      "away":-180
                    },
                    {
                      "altLineId":524735763,
                      "hdp":-0.25,
                      "home":116,
                      "away":-131
                    },
                    {
                      "altLineId":524735765,
                      "hdp":-0.25,
                      "home":-188,
                      "away":158
                    },
                    {
                      "altLineId":524735767,
                      "hdp":-0.5,
                      "home":-253,
                      "away":202
                    }
                  ],
                  "moneyline":{
                    "home":141,
                    "away":197,
                    "draw":251
                  }
                },
                {
                  "lineId":138030949,
                  "number":1,
                  "cutoff":"2015-01-22T13:00:00Z",
                  "maxSpread":1000,
                  "maxTotal":1000,
                  "spreads":[
                    {
                      "hdp":0,
                      "home":-104,
                      "away":-109
                    }
                  ],
                  "totals":[
                    {
                      "points":0.75,
                      "over":-129,
                      "under":110
                    }
                  ]
                }
              ]
            },
            {
              "id":383911977,
              "periods":[
                {
                  "lineId":138030942,
                  "number":0,
                  "cutoff":"2015-01-22T13:00:00Z",
                  "maxSpread":2000,
                  "maxMoneyline":500,
                  "maxTotal":2000,
                  "moneyline":{
                    "home":100,
                    "away":289,
                    "draw":250
                  },
                  "totals":[
                    {
                      "points":2.5,
                      "over":100,
                      "under":-115
                    },
                    {
                      "altLineId":524735730,
                      "points":2,
                      "over":-209,
                      "under":167
                    },
                    {
                      "altLineId":524735732,
                      "points":2.25,
                      "over":-134,
                      "under":115
                    },
                    {
                      "altLineId":524735734,
                      "points":2.75,
                      "over":128,
                      "under":-151
                    },
                    {
                      "altLineId":524735736,
                      "points":3,
                      "over":175,
                      "under":-222
                    }
                  ]
                },
                {
                  "lineId":138030947,
                  "number":1,
                  "cutoff":"2015-01-22T13:00:00Z",
                  "maxSpread":1000,
                  "maxTotal":1000,
                  "spreads":[
                    {
                      "hdp":-1,
                      "home":-115,
                      "away":100
                    }
                  ],
                  "totals":[
                    {
                      "points":2.5,
                      "over":-109,
                      "under":-104
                    }
                  ]
                }
              ]
            }
          ]
        }
      ]
    }
  ]
}

Throws

GenericException type

Get Currencies

Returns the list of supported currencies

Request

GET v1/currencies

No parameters.

URL Example
https://api.pinnaclesports.com/v1/currencies

Response

Rsp Type

ParameterTypeOptionalDescription
@status FEED_STATUS_RESPONSE No Status of the response
currencies Array of Currency type No Currencies container. It will be present if @status = “ok”
err GenericException2 type Yes Root of the response with an error. It will be present if @status = “fail”

Currency Type

ParameterTypeOptionalDescription
@code String No Currency code
currency String No Currency name
rate Decimal No Exchange rate to USD

Example of successful response

<?xml version="1.0"?>
<rsp status="ok">
  <currencies>
    <currency code="AUD" rate="1.07863">Australia Dollars </currency>
    <currency code="CAD" rate="1.10421">Canada Dollars</currency>
    <currency code="CNY" rate="6.1732">China Yuan Renmimbi</currency>
    <currency code="CSK" rate="19.8445">Czech Republic Koruna</currency>
    <currency code="DKK" rate="5.39655">Denmark Kroner</currency>
    <currency code="EUR" rate="0.723">Euro</currency>
    <currency code="GBP" rate="0.59539">United Kingdom Pounds</currency>
    <currency code="HKD" rate="7.7536">Hong Kong Dollars</currency>
    <currency code="JPY" rate="102.22">Japan Yen</currency>
    <currency code="KRW" rate="1042.21">South Korean Won</currency>
    <currency code="MXP" rate="13.1363">Mexico Pesos</currency>
    <currency code="MYR" rate="3.2709">Malaysia Ringgit</currency>
    <currency code="NOK" rate="6.0272">Norway Kroner</currency>
    <currency code="NZD" rate="1.1666">New Zealand Dollars</currency>
    <currency code="PLZ" rate="3.04512">Poland Zloty</currency>
    <currency code="RUB" rate="36.0718">Russian Rouble</currency>
    <currency code="SEK" rate="6.59083">Sweden Krona</currency>
    <currency code="SGD" rate="1.2571">Singapore Dollars</currency>
    <currency code="THB" rate="32.315">Thailand Baht</currency>
    <currency code="TWD" rate="30.3228">Taiwan Dollars</currency>
    <currency code="USD" rate="1">United States Dollars</currency>
  </currencies>
</rsp>

Example of response with an error

<rsp status="fail">
  <err code="99">Internal server error</err>
</rsp>

Get Client Balance

Returns current client balance.

GET /v1/client/balance

Request

No request parameters

URL Example
https://api.pinnaclesports.com/v1/client/balance

Response

Table 1 - Get Client Balance Response

ParameterTypeRequiredDescription
availableBalance decimal Yes Amount available for betting
outstandingTransactions decimal Yes Sum of not yet settled bet amounts
givenCredit decimal Yes Client’s credit
currency decimal Yes Client’s currency code

JSON example

{
"availableBalance":49354.37,
"outstandingTransactions":533.84,
"givenCredit":50000.0,
"currency":"CAD"

}

XML example

<clientBalanceResponse>
<availableBalance>49354.37</availableBalance>
<currency>CAD</currency>
<givenCredit>50000</givenCredit>
<outstandingTransactions>533.84</outstandingTransactions>
</clientBalanceResponse>

Throws

GenericException type

Place Bet

Place bet in the system.

POST /v1/bets/place

Request

Table 2 - Place Bet Request

ParameterTypeRequiredDescription
uniqueRequestId GUID Yes This unique id of the place bet requests. This is to support idempotent requests
acceptBetterLine BOOLAEN Yes Whether or not to accept a bet when there is a line change in favor of the client
customerReference String No Reference to a customer in third party system.
oddsFormat ODDS_FORMAT Yes Bet is processed with this odds format.
stake Decimal Yes Wagered amount in Client’s currency
winRiskStake WIN_RISK_TYPE Yes Whether the stake amount is risk or win amount
sportId Int Yes
eventId Int Yes
periodNumber Int Yes

This represents the period of the match. For example, for soccer we have:

0 - Game
1 - 1st Half
2 - 2nd Half

betType BET_TYPE Yes
team TEAM_TYPE No Chosen team type. This is needed only for SPREAD, MONEYLINE and TEAM_TOTAL_POINTS bet types
side SIDE_TYPE No Chosen side. This is needed only for TOTAL_POINTS and TEAM_TOTAL_POINTS bet type
lineId Int Yes Line identification
altLineId Int No Alternate line identification
pitcher1MustStart BOOLAEN No Baseball only. Refers to the pitcher for TEAM_TYPE.Team1. This applicable only for MONEYLINE bet type, for all other bet types this has to be TRUE
pitcher2MustStart BOOLAEN No Baseball only. Refers to the pitcher for TEAM_TYPE. Team2. This applicable only for MONEYLINE bet type, for all other bet types this has to be TRUE

JSON Example:

{
    "uniqueRequestId":"3ca3e7a7-12e1-4907-8b84-00f02e814b1d",
    "acceptBetterLine":"TRUE",
    "stake":150,
    "winRiskStake":"WIN",
    "lineId":103648474,
    "sportId":29,
    "eventId":307962592,
    "periodNumber":0,
    "betType":"MONEYLINE",
    "team":"DRAW",
    "oddsFormat":"AMERICAN"
}

XML Example:

<placeBetRequest>
    <uniqueRequestId>3ca3e7a7-12e1-4907-8b84-00f02e814b1d</uniqueRequestId>
    <acceptBetterLine>TRUE</acceptBetterLine>
    <stake>150</stake>
    <winRiskStake>WIN</winRiskStake>
    <lineId>103648474</lineId>
    <sportId>29</sportId>
    <eventId>307962592</eventId>
    <periodNumber>0</periodNumber>
    <betType>MONEYLINE</betType>
    <team>DRAW</team>
    <oddsFormat>AMERICAN</oddsFormat>
</placeBetRequest>

Response

ParameterTypeRequiredDescription
status PLACEBET_RESPONSE_STATUS Yes
errorCode PLACEBET_ERROR_CODE No If Status is PROCESSED_WITH_ERROR, errorCode will be in the response.
betId Int No The bet ID of the new bet. May be empty on failure.
uniqueRequestId GUID Yes Echo of the uniqueRequestId from the request.
betterLineWasAccepted BOOLAEN Yes

Whether or not the bet was accepted on the line that changed in favour of client.

This can be true only if acceptBetterLine in the Place Bet request is set to TRUE.

JSON Example - Accepted bet

{
    "status":"ACCEPTED",
    "errorCode":null,
    "betId":309891823,
    "uniqueRequestId":"3ca3e7a7-12e1-4907-8b84-00f02e814b1d",
    "betterLineWasAccepted":true,
}

JSON Example - Bet processed with error

{
    "status":"PROCESSEDWITHERROR",
    "errorCode":"LINE_CHANGED",
    "betId":null,
    "uniqueRequestId":"3ca3e7a7-12e1-4907-8b84-00f02e814b1d"
}

XML Example - Accepted bet

<placeBetResponse>
    <betId>309891825</betId>
    <errorCode nil="true" />
    <status>ACCEPTED</status>
    <uniqueRequestId>3ca3e7a7-12e1-4907-8b84-00f02e814b1d</uniqueRequestId>
</placeBetResponse>

JSON Example - Bet processed with error

<placeBetResponse>
    <betId nil="true" />
    <errorCode>LINE_CHANGED</errorCode>
    <status>PROCESSEDWITHERROR</status>
    <uniqueRequestId>3ca3e7a7-12e1-4907-8b84-00f02e814b1d</uniqueRequestId>
    <betterLineWasAccepted>true</betterLineWasAccepted>
</placeBetResponse>

Throws

GenericException type

Place Parlay Bet

Place parlay bet in the system. Supports JSON format only.

POST /v1/bets/parlay

Request

ParameterTypeRequiredDescription
uniqueRequestId GUID Yes This unique id of the place bet requests. This is to support idempotent requests 
acceptBetterLine BOOLAEN Yes Whether or not to accept a bet when there is a line change in favor of the client
oddsFormat ODDS_FORMAT Yes Bet is processed with this odds format
riskAmount Decimal Yes Wagered amount in Client’s currency. It is always risk amount when placing Parlay bets
NOTE: If round robin options is used this amount will apply for all parlays so actual amount wagered will be riskAmount X number of Parlays
roundRobinOptions ARRAY of ROUND_ROBIN_OPTIONS Yes
legs ARRAY of Leg request object Yes Collection of parlay legs (format described below)

Leg request object parameters

ParameterTypeRequiredDescription
uniqueLegId GUID Yes Unique id of the leg. It's used to identify and match legs in the response
legBetType LEG_BET_TYPE Yes Only SPREAD, MONEYLINE and TOTAL_POINTS are supported
lineId Int Yes Line identification
altLineId Int No Alternate line identification
team TEAM_TYPE No Chosen team type. This is needed only for SPREAD and MONEYLINE bet types
side SIDE_TYPE No Chosen side. This is needed only for TOTAL_POINTS bet type
periodNumber Int Yes This represents the period of the match. For example, for soccer we have:
0 -  Game
1 - 1st Half
2 - 2nd Half
pitcher1MustStart BOOLAEN No Baseball only. Refers to the pitcher for TEAM_TYPE.Team1.  This applicable only for MONEYLINE bet type, for all other bet types this has to be TRUE
pitcher2MustStart BOOLAEN No Baseball only. Refers to the pitcher for TEAM_TYPE. Team2. This applicable only for MONEYLINE bet type, for all other bet types this has to be TRUE

JSON Example

{
  "uniqueRequestId": "059AA152-DB79-4226-B003-42531EC7C006",
  "acceptBetterLine": "TRUE",
  "oddsFormat": "DECIMAL",
  "riskAmount": 10,
  "roundRobinOptions": ["PARLAY"],
  "legs":
  [
    {
      "uniqueLegId": "719B13BC-0237-45AB-B997-4AB8C9C810C5",
      "lineId": 138029470,
      "sportId": 29,
      "eventId": 383910968,
      "periodNumber":  0,
      "legBetType": "SPREAD",
      "team": "TEAM1"
    },
    {
      "uniqueLegId": "5A273CAC-A84A-4BE4-BD68-09AD92C828DF",
      "lineId": 138029469,
      "sportId": 29,
      "eventId": 383910969,
      "periodNumber": 0,
      "legBetType": "MONEYLINE",
      "team": "TEAM1"
    },          
    {
      "uniqueLegId": "5A273CAC-A84A-4BE4-BD68-09AD92C828aF",
      "lineId": 138029471,
      "sportId": 29,
      "eventId": 383910970,
      "periodNumber": 0,
      "legBetType": "TOTAL_POINTS",
      "side": "OVER"
    }
  ]
}

Response

ParameterTypeRequiredDescription
status PLACE_PARLAY_BET_RESPONSE_STATUS Yes
errorCode PLACE_PARLEY_BET_ERROR_CODE No If Status is PROCESSED_WITH_ERROR , errorCode will be in the response
betId Int No The bet ID of the new bet. May be empty on failure
uniqueRequestId GUID Yes Echo of the uniqueRequestId from the request
roundRobinOptionWithOdds ARRAY of ROUND_ROBIN_OPTIONS No Provides array with all acceptable Round Robin options with parlay odds for that option
validLegs ARRAY of Leg response object No Collection of valid legs (format described below). Can be empty if no valid legs found
invalidLegs ARRAY of Leg response object No The collection of legs that resulted in error (format described below). Can be empty if no invalid legs found

Leg response object parameters

ParameterTypeRequiredDescription
status PLACE_PARLAY_LEG_RESPONSE_STATUS Yes
errorCode PLACE_PARLEY_LEG_ERROR_CODE No If Status is PROCESSED_WITH_ERROR , errorCode will be in the response
legId GUID Yes Echo of the legId from the request
correlatedLegs ARRAY of GUIDs No If errorCode is CORRELATED will contain legIds of all correlated legs
lineId Int No Line identification that bet was placed on
altLineId Int No If Bet was placed on Alternate Line the Id of that line will be returned
price Decimal No Price that the bet was placed on

JSON Example - Accept parlay bet

{
    "status": "ACCEPTED",
    "betId": 383911811,
    "uniqueRequestId": "159AA152-DB79-4226-B103-42531EC7C017",
    "maxRiskStake": 250,
    "minRiskStake": 1,
    "roundRobinOptionWithOdds": [
        {
            "RoundRobinOption": "Parlay",
            "Odds": 7.71
        },
        {
            "RoundRobinOption": "TwoLegRoundRobin",
            "Odds": 11.73
        }
    ],
    "validLegs": [
        {
            "status": "VALID",
            "legId": "719b13bc-0237-45ab-b997-4ab8c9c810c5",
            "lineId": 138030225,
            "price": 1.99
        },
        {
            "status": "VALID",
            "legId": "5a273cac-a84a-4be4-bd68-09ad92c828df",
            "lineId": 138030543,
            "price": 2.17
        },
        {
            "status": "VALID",
            "legId": "5a273cac-a84a-4be4-bd68-09ad92c828af",
            "lineId": 138030214,
            "price": 1.787
        }
    ]
}

JSON Example - Parlay Bet processed wtih error

{
    "status": "PROCESSED_WITH_ERROR",
    "errorCode": "INVALID_LEGS",
    "uniqueRequestId": "159AA152-DB79-4226-B102-52531EC7C019",
    "maxRiskStake": 250,
    "minRiskStake": 1,
    "roundRobinOptionWithOdds": [
        {
            "RoundRobinOption": "Parlay",
            "Odds": 7.71
        },
        {
            "RoundRobinOption": "TwoLegRoundRobin",
            "Odds": 11.73
        }
    ],
    "validLegs": [
        {
            "status": "VALID",
            "legId": "719b13bc-0237-45ab-b997-4ab8c9c810c5",
            "lineId": 138030225,
            "price": 1.99
        },
        {
            "status": "VALID",
            "legId": "5a273cac-a84a-4be4-bd68-09ad92c828af",
            "lineId": 138030214,
            "price": 1.787
        }
    ],
    "invalidLegs": [
        {
            "status": "PROCESSED_WITH_ERROR",
            "errorCode": "OFFLINE_EVENT",
            "legId": "5a273cac-a84a-4be4-bd68-09ad92c828df",
            "lineId": 138030543,
            "price": 2.17
        }
    ]
}

Throws

GenericException type

Get Line

Returns latest line.

Request

GET /v1/line?sportId={sportId}&leagueId={leagueId}&eventId={eventId}&periodNumber={periodNumber}&betType={betType}&team={team}&side={side}&handicap={handicap}

Table 4 - Get Line Request

ParameterTypeRequiredDescription
sportId Int Yes
leagueId Int Yes
eventId Int Yes
periodNumber Int Yes

This represents the period of the match. For example, for soccer we have:

0 - Game

1 - 1st Half

2 - 2nd Half

betType BET_TYPE Yes
team TEAM_TYPE No Chosen team type. This is needed only for SPREAD, MONEYLINE and TEAM_TOTAL_POINTS bet types
side SIDE_TYPE No Chosen side. This is needed only for TOTAL_POINTS and TEAM_TOTAL_POINTS bet type
handicap Decimal No This is needed for SPREAD, TOTAL_POINTS and TEAM_TOTAL_POINTS bet type
oddsFormat ODDS_FORMAT Yes

URL Example

https://api.pinnaclesports.com/v1/line?sportId=29&leagueId=1728&eventId=308195882&betType=SPREAD&oddsFormat=DECIMAL&periodNumber=0&team=TEAM1&handicap=-1

Response


Table 5 - Get Line Response

ParameterTypeRequiredDescription
status GETLINE_RESPONSE_STATUS Yes If the value is NOT_EXISTS, than this will be the only parameter in the response. All other params would be empty.
price Decimal No Latest price
lineId Int No Line identification needed to place a bet
altLineId Int No This would be needed to place the bet if the handicap is on alternate line, otherwise it will not be in the response.
team1Score Int No Away team score. Applicable to soccer only
team2Score Int No Home team score. Applicable to soccer only
team1RedCards Int No Away team red cards. Applicable to soccer only.
team2RedCards Int No Away team red cards. Applicable to soccer only.
maxRiskStake Decimal No Maximum bettable risk amount
minRiskStake Decimal No Minimum bettable risk amount
maxWinStake Decimal No Maximum bettable win amount
minWinStake Decimal No Minimum bettable win amount
effectiveAsOf Date Time No Line is effective as of this date and time

JSON Example

{
    "status":"SUCCESS",
    "price":1.952,
    "lineId":100282782,
    "altLineId":null,
    "team1Score":null,
    "team2Score":null,
    "team1RedCards":null,
    "team2RedCards":null,
    "maxRiskStake":4061.76,
    "minRiskStake":50.77,
    "maxWinStake":3866.80,
    "minWinStake":48.34,
    "effectiveAsOf":"2013-06-18T14:02:26.6508"
}

XML Example

<lineResponse>
    <altLineId nil="true" />
    <effectiveAsOf>2013-06-20T14:01:23.6200</effectiveAsOf>
    <lineId>103648482</lineId>
    <maxRiskStake>986.43</maxRiskStake>
    <maxWinStake>966.70</maxWinStake>
    <minRiskStake>49.32</minRiskStake>
    <minWinStake>48.34</minWinStake>
    <price>1.98</price>
    <status>SUCCESS</status>
    <team1RedCards nil="true" />
    <team1Score nil="true" />
    <team2RedCards nil="true" />
    <team2Score nil="true" />
</lineResponse>

Throws

GenericException type

Get Parlay Line

Returns parlay lines and calculate odds. Supports JSON format only.

Request

POST /v1/line/parlay

ParameterTypeRequiredDescription
oddsFormat ODDS_FORMAT Yes Odds in the response will be in this format
legs Array of Leg request object Yes This is a collection of legs (the format of the object is described below)

Leg request object parameters:

ParameterTypeRequiredDescription
uniqueLegId GUID Yes This   unique   id   of   the   leg. It used to identify and match leg in the response
eventId Int Yes id of the event
legBetType LEG_BET_TYPE Yes Only SPREAD, MONEYLINE and TOTAL_POINTS are supported
team TEAM_TYPE No Chosen team type. This is needed only for SPREAD and MONEYLINE bet types
side SIDE_TYPE No Chosen side. This is needed only for TOTAL_POINTS bet type
periodNumber Int Yes This represents the period of the match. For example, for soccer we have:
0 -  Game
1 - 1st Half
2 - 2nd Half
handicap Decimal No This is needed for SPREAD and TOTAL_POINTS bet type

JSON Example

{
  oddsFormat: "Decimal",
  legs:[
    {
      uniqueLegId: "9CED620A-0E78-4FA4-A314-BDB1FF34E25A",
      eventId: "383910968",
      periodNumber: "0",
      legBetType: "SPREAD",
      team: "TEAM1",
      handicap: 0.75
    },
    {
      uniqueLegId: "F3E3528C658642F28001FFF3B3DA63AD",
      eventId: "383910969",
      periodNumber: "0",
      legBetType: "MONEYLINE",
      team: "TEAM1"
    },   
    {
      uniqueLegId: "F3E3528C658642F28001FFF3B3DA63AA",
      eventId: "383910970",
      periodNumber: "0",
      legBetType: "TOTAL_POINTS",
      team: "TEAM1",
      side: "OVER",
      handicap: 2.75
    }       
  ]
}

Response

ParameterTypeRequiredDescription
status PLACE_PARLAY_BET_RESPONSE_STATUS Yes
errorCode PLACE_PARLEY_BET_ERROR_CODE No If Status is PROCESSED_WITH_ERROR , errorCode will be in the response
maxRiskStake Decimal No Maximum allowed stake amount
minRiskStake Decimal No Minimum allowed stake amount
roundRobinOptionWithOdds Array of RoundRobinOdds object No Provides array with all acceptable Round Robin options with parlay odds for that option
legs Array of Leg response object No The collection of legs (the format of the object is described below)

Leg response object parameters

ParameterTypeRequiredDescription
status PLACE_PARLAY_LEG_RESPONSE_STATUS Yes
errorCode PLACE_PARLEY_LEG_ERROR_CODE No If Status is PROCESSED_WITH_ERROR, errorCode will be in the response
legId GUID Yes Echo of the legId from the request
correlatedLegs Array of GUIDs No If errorCode is CORRELATED will contain legIds of all correlated legs
lineId Int No Line identification that bet will be placed on
altLineId Int No If Leg will be placed on Alternate Line the Id of that line will be returned
price Decimal No Current price of the line

RoundRobinOdds object parameters

ParameterTypeRequiredDescription
RoundRobinOption ROUND_ROBIN_OPTIONS Yes Round Robin option
Odds Decimal Yes Odds for Round Robin option in requested Odds format

JSON Example - acceptable parlay bet

 {
    "status": "VALID",
    "maxRiskStake": 250,
    "minRiskStake": 1,
    "roundRobinOptionWithOdds": [
        {
            "RoundRobinOption": "Parlay",
            "Odds": 7.71
        },
        {
            "RoundRobinOption": "TwoLegRoundRobin",
            "Odds": 11.73
        }
    ],
    "legs": [
        {
            "status": "VALID",
            "legId": "9ced620a-0e78-4fa4-a314-bdb1ff34e25a",
            "lineId": 138030194,
            "price": 1.99
        },
        {
            "status": "VALID",
            "legId": "f3e3528c-6586-42f2-8001-fff3b3da63ad",
            "lineId": 138030143,
            "price": 2.17
        },
        {
            "status": "VALID",
            "legId": "f3e3528c-6586-42f2-8001-fff3b3da63aa",
            "lineId": 138030154,
            "price": 1.787
        }
    ]
}

JSON Example - Parlay Lines with error

{
    "status": "PROCESSED_WITH_ERROR",
    "error": "INVALID_LEGS",
    "legs": [
        {
            "status": "PROCESSED_WITH_ERROR",
            "errorCode": "EVENT_NO_LONGER_AVAILABLE_FOR_BETTING ",
            "legId": "9ced620a-0e78-4fa4-a314-bdb1ff34e25a",
            "lineId": 138030194
        },
        {
            "status": "VALID",
            "legId": "f3e3528c-6586-42f2-8001-fff3b3da63ad",
            "lineId": 138030143,
            "price": 2.17
        },
        {
            "status": "VALID",
            "legId": "f3e3528c-6586-42f2-8001-fff3b3da63aa",
            "lineId": 138030154,
            "price": 1.787
        }
    ]
}

Throws

GenericException type

Get Bets

Returns running and settled bets.

Request

GET /v1/bets?betlist={betlist}&fromDate={fromDate}&toDate={toDate}& betids=[1,2,3]

Table 6 - Get Bets Request

ParameterTypeRequiredDescription
betlist BETLIST_TYPE No Not needed when betids is submitted
betids Int[] No

Array of bet ids. When betids is submitted, no other parameter is necessary

Maximum is 100 ids.

Works for all non settled bets and all bets settled in the last 30 days.

fromDate Date Time No

Start date of the requested period. Required when betlist parameter is submitted.

Difference between fromDate and toDdate can’t be more than 30 days.

toDate Date Time No End date of the requested period Required when betlist parameter is submitted.


URL Examples

Get bets by bet Ids

https://api.pinnaclesports.com/v1/ bets?betids=299633842,299629993

Get settled bets by date range

https://api.pinnaclesports.com/v1/bets?betlist=settled&fromDate=2013-06-01&toDate=2013-06-05

Response

Response returns array of Straight Bet type and Parlay Bet types.

Straight Bet type:

ParameterTypeRequiredDescription
betId Int Yes Bet identification
wagerNumber Int Yes

Wager identification. All bets placed thru the API will have value 1.

Website supports multiple bets (wagers) placement in the same bet slip. In that case the bet would have appropriate wager number.

placedAt Date Time Yes Date time when the bet was placed
win Decimal Yes Win amount
risk Decimal Yes Risk amount
winLoss Decimal No Win-Loss for settled bets
betStatus BET_STATUS Yes
betType BET_TYPE Yes
sportId Int Yes
leagueId Int Yes
eventId Int Yes
handicap Decimal No Handicap that the bet was placed on
price

Decimal

Yes Price that the bet was placed on
teamName String No Team name. If the bet was placed on moneyline draw side, the value will be Draw
side SIDE_TYPE No
oddsFormat ODDS_FORMAT Yes Bet odds format.
clientCommission Decimal No Client’s commission on the bet
pitcher1 String No Team1 pitcher name. Baseball only.
pitcher2 String No Team2 pitcher name. Baseball only.
pitcher1MustStart BOOALEAN No Whether the team1 pitcher must start in order for bet to take action. Baseball only.
pitcher2MustStart BOOALEAN No Whether the team2 pitcher must start in order for bet to take action. Baseball only.
team1 String Yes Team 1 name.
team2 String Yes Team 2 name.
isLive BOOALEAN No Whether the bet is on live event.
periodNumber Int No Period number that the bet was placed on.
team1Score Decimal Yes Team 1 score that the bet was placed on.
team2Score Decimal Yes Team 2 score that the bet was placed on
ftTeam1Score Decimal Yes Full time team 1 score
ftTeam2Score Decimal Yes Full time team 2 score
pTeam1Score Decimal Yes End of period team 1 score. If the bet was placed on Game period (periodNumber =0) , this will be null
pTeam2Score Decimal Yes End of period team 2 score. If the bet was placed on Game period (periodNumber =0) , this will be null

Parlay Bet type:

ParameterTypeRequiredDescription
betId Int Yes Bet identification
wagerNumber Int Yes

Wager identification. Wager identification. When placing parlay with round robin option there will be multiple parlays with same TicketId, but different wagerNumber, otherwise for single parlay bet it will be 1.

placedAt Date Time Yes Date time when the bet was placed
win Decimal Yes Win amount
risk Decimal Yes Risk amount
winLoss Decimal No Win-Loss for settled bets
betStatus BET_STATUS Yes
betType BET_TYPE Yes Always PARLAY
oddsFormat ODDS_FORMAT Yes Bet odds format
clientCommission Decimal No Client’s commission on the bet
Legs Array of Leg Type Yes List of legs

Leg type:

ParameterTypeRequiredDescription
sportId Int Yes
leagueId Int Yes
eventId Int Yes
legBetType LEG_BET_TYPE Yes Can be SPREAD, MONEYLINE or TOTAL_POINTS
legBetStatus LEG_BET_STATUS Yes
handicap Decimal No Handicap that the bet was placed on
price

Decimal

Yes Price that the bet was placed on
teamName String No Team name. If the bet was placed on moneyline draw side, the value will be Draw
side SIDE_TYPE No
pitcher1 String No Team1 pitcher name. Baseball only
pitcher2 String No Team2 pitcher name. Baseball only
pitcher1MustStart BOOALEAN No Whether the team1 pitcher must start in order for bet to take action. Baseball only
pitcher2MustStart BOOALEAN No Whether the team2 pitcher must start in order for bet to take action. Baseball only
team1 String Yes Team 1 name
team2 String Yes Team 2 name
isLive BOOALEAN No Whether the bet is on live event
periodNumber Int No Period number that the bet was placed on
team1Score Decimal Yes Team 1 score that the bet was placed on
team2Score Decimal Yes Team 2 score that the bet was placed on
ftTeam1Score Decimal Yes Full time team 1 score
ftTeam2Score Decimal Yes Full time team 2 score
pTeam1Score Decimal Yes End of period team 1 score. If the bet was placed on Game period (periodNumber =0) , this will be null
pTeam2Score Decimal Yes End of period team 2 score. If the bet was placed on Game period (periodNumber =0) , this will be null

JSON example

{
    "betId": 383432745,
    "wagerNumber": 1,
    "placedAt": "2014-06-23T17:43:24",
    "betStatus": "WON",
    "betType": "SPREAD",
    "win": 10,
    "risk": 11,
    "winLoss": 10,
    "oddsFormat": "AMERICAN",
    "customerCommission": 0.03,
    "sportId": 29,
    "leagueId": 2102,
    "eventId": 379520691,
    "handicap": -0.75,
    "price": -110,
    "teamName": "FH Hafnarfjordur",
    "side": null,
    "pitcher1": null,
    "pitcher2": null,
    "pitcher1MustStart": null,
    "pitcher2MustStart": null,
    "team1": "Fram Reykjavik",
    "team2": "FH Hafnarfjordur",
    "periodNumber": 0,
    "team1Score": null,
    "team2Score": null,
    "ftTeam1Score": 0,
    "ftTeam2Score": 4,
    "pTeam1Score": null,
    "pTeam2Score": null,
    "isLive": "FALSE"
},
{
    "betId": 379838027,
    "wagerNumber": 1,
    "placedAt": "2014-06-06T16:20:11",
    "betStatus": "LOSE",
    "betType": "PARLAY",
    "win": 1.72,
    "risk": 2,
    "winLoss": -2,
    "oddsFormat": "AMERICAN",
    "customerCommission": 0,
    "legs": [
        {
            "sportId": 4,
            "legBetType": "MONEYLINE",
            "legBetStatus": "LOSE",
            "leagueId": 487,
            "eventId": 379213616,
            "eventStartTime": "2014-06-08T17:10:00",
            "handicap": null,
            "price": -198,
            "teamName": "San Antonio Spurs",
            "side": null,
            "pitcher1": null,
            "pitcher2": null,
            "pitcher1MustStart": null,
            "pitcher2MustStart": null,
            "team1": "Miami Heat",
            "team2": "San Antonio Spurs",
            "periodNumber": 0,
            "ftTeam1Score": 98,
            "ftTeam2Score": 96,
            "pTeam1Score": null,
            "pTeam2Score": null
        },
        {
            "sportId": 4,
            "legBetType": "MONEYLINE",
            "legBetStatus": "LOSE",
            "leagueId": 5608,
            "eventId": 376560390,
            "eventStartTime": "2014-06-07T01:00:00",
            "handicap": null,
            "price": -424,
            "teamName": "San Miguel Beermen",
            "side": null,
            "pitcher1": null,
            "pitcher2": null,
            "pitcher1MustStart": null,
            "pitcher2MustStart": null,
            "team1": "San Miguel Beermen",
            "team2": "Meralco Bolts",
            "periodNumber": 0,
            "ftTeam1Score": 74,
            "ftTeam2Score": 90,
            "pTeam1Score": null,
            "pTeam2Score": null
        }
   ]
}  

XML example

<betsResponse>
  <bets>
    <parlayBet>
      <betId>379838027</betId>
      <wagerNumber>1</wagerNumber>
      <placedAt>2014-06-06T16:20:11</placedAt>
      <betStatus>LOSE</betStatus>
      <betType>PARLAY</betType>
      <win>1.72</win>
      <risk>2</risk>
      <oddsFormat>AMERICAN</oddsFormat>
      <customerCommission>0</customerCommission>
      <legs>
        <sportId>4</sportId>
        <legBetType>MONEYLINE</legBetType>
        <legBetStatus>LOSE</legBetStatus>
        <leagueId>487</leagueId>
        <eventId>379213616</eventId>
        <eventStartTime>2014-06-08T17:10:00</eventStartTime>
        <price>-198</price>
        <teamName>San Antonio Spurs</teamName>
        <team1>Miami Heat</team1>
        <team2>San Antonio Spurs</team2>
        <periodNumber>0</periodNumber>
        <ftTeam1Score>98</ftTeam1Score>
        <ftTeam2Score>96</ftTeam2Score>
        <pTeam1Score nil="true" />
        <pTeam2Score nil="true" />
      </legs>
      <legs>
        <sportId>4</sportId>
        <legBetType>MONEYLINE</legBetType>
        <legBetStatus>LOSE</legBetStatus>
        <leagueId>5608</leagueId>
        <eventId>376560390</eventId>
        <eventStartTime>2014-06-07T01:00:00</eventStartTime>
        <price>-424</price>
        <teamName>San Miguel Beermen</teamName>
        <team1>San Miguel Beermen</team1>
        <team2>Meralco Bolts</team2>
        <periodNumber>0</periodNumber>
        <ftTeam1Score>74</ftTeam1Score>
        <ftTeam2Score>90</ftTeam2Score>
        <pTeam1Score nil="true" />
        <pTeam2Score nil="true" />
      </legs>
    </parlayBet>
    <straightBet>
      <betId>383432745</betId>
      <wagerNumber>1</wagerNumber>
      <placedAt>2014-06-23T17:43:24</placedAt>
      <betStatus>WON</betStatus>
      <betType>SPREAD</betType>
      <win>10</win>
      <risk>11</risk>
      <oddsFormat>AMERICAN</oddsFormat>
      <customerCommission>0.03</customerCommission>
      <sportId>29</sportId>
      <leagueId>2102</leagueId>
      <eventId>379520691</eventId>
      <handicap>-0.75</handicap>
      <price>-110</price>
      <teamName>FH Hafnarfjordur</teamName>
      <team1>Fram Reykjavik</team1>
      <team2>FH Hafnarfjordur</team2>
      <periodNumber>0</periodNumber>
      <team1Score nil="true" />
      <team2Score nil="true" />
      <ftTeam1Score>0</ftTeam1Score>
      <ftTeam2Score>4</ftTeam2Score>
      <pTeam1Score nil="true" />
      <pTeam2Score nil="true" />
      <isLive>FALSE</isLive>
    </straightBet>
  </bets>
</betsResponse>

Throws

GenericException type


Get Inrunning

Returns all soccer events that have a live status associated with them and have a status that indicates the game is in progress.

Request

No request parameters

GET v1/inrunning

URL Example:

https://api.pinnaclesports.com/v1/inrunning

Response

Response is available in json and XML.

Table - Get Inrunning Response

ParameterTypeRequiredDescription
elapsed Int Yes Minutes elapsed since start of the state . Please note that this will be 0 when the match is in half time
state INRUNNING_STATE Yes

The state of the live event

id int Yes The event id. Correlates to the event id provided by Get Feed operation.

XML example:

<inRunning>
  <sports>
    <sport id="29">
      <leagues>
        <league id="6215">
          <events>
            <event id="411666191" state="1" elapsed="15" />
            <event id="411666245" state="3" elapsed="10" />
           </events>
        </league>
        <league id="5110">
          <events>
            <event id="411547179" state="6" elapsed="5" />
          </events>
        </league>
      </leagues>
    </sport>
  </sports>
</inRunning>

JSON example:

{
   "sports":[
      {
         "id":29,
         "leagues":[
            {
               "id":9886,
               "events":[
                  {
                     "id":411654152,
                     "state":2,
                     "elapsed":0
                  }
               ]
            },
            {
               "id":5578,
               "events":[
                  {
                     "id":411657344,
                     "state":2,
                     "elapsed":0
                  }
               ]
            }
         ]
      }
   ]
}

Throws

GenericException type

Get Translations

Returns translations for supplied strings based on supplied cultures

Table -Supported cultures for Get Translations operation

LanguageCulture
English en-US
British en-GB
ChineseSI zh-CN
ChineseTR zh-TW
Finnish fi-FI
German de-DE
Hebrew he-IL
Italian it-IT
Norwegian nb-NO
Portuguese pt-BR
Russian ru-RU
Spanish es-ES
Swedish sv-SE
Thai th-TH
Polish pl-PL
French fr-FR
Greek el-GR
Japanese ja-JP
Korean ko-KR
Vietnamese vi-VN
Indonesian id-ID
Czech cs-CZ

Request

GET /v1/translations?cultureCodes=[culture1|culture2]&baseTexts=[baseText1|baseText2]
Each string in parameters must be URL encoded and separated with “|” character
Parameters are not case-sensitive

Table - Get Translations request parameteres

ParameterTypeRequiredDescription
cultureCodes String Yes Must be in "Language Culture Name" format
baseTexts String Yes Array of strings to be translated

URL Examples:

Translate single text string by a single culture (translate Football to German):
https://api.pinnaclesports.com/v1/translations?cultureCodes=de-DE&baseTexts=Football

Translate multiple text strings by a single culture (translate Football and Soccer to German):
https://api.pinnaclesports.com/v1/translations?cultureCodes=de-DE&baseTexts=Football|Soccer

Translate single text string by multiple cultures (translate Football to German and French):
https://api.pinnaclesports.com/v1/translations?cultureCodes=de-DE|fr-FR&baseTexts=Football

Translate multiple text strings by multiple cultures (translate Football and Soccer to German and French):
https://api.pinnaclesports.com/v1/translations?cultureCodes=de-DE|fr-FR&baseTexts=Football|Soccer

Response

Response is available in json and XML.

Table - Get Translations Response

ParameterTypeRequiredDescription
Text in <Translations> String Yes Original requested text to be translated
Id in <culture> String Yes

Culture based on which the text is translated

Text in <culture> String Yes Translation text

XML example:

<translationResponse>
    <translations text="Soccer">
        <cultures>
            <culture id="de-de" text="Fussball" />
        </cultures>
    </translations>
</translationResponse> 

JSON example:

{
    "translations": [
        {
            "text": "Soccer",
            "cultures": [
                {
                    "id": "de-de",
                    "text": "Fussball"
                }
            ]
        }
    ]
}

When a non-supported culture is received by the API, same base text will be returned for translated text

Example request:

https://api.pinnaclesports.com/v1/translations?cultureCodes=Non-supported-Culture&baseTexts=Soccer

Response:

<translationResponse>
    <translations text="Soccer">
        <cultures>
            <culture id="Non-supported-Culture" text="Soccer" />
        </cultures>
    </translations>
</translationResponse>

When a translation for a given base text is not found,  no <translations> will be provided for a given base text

Example request:

https://api.pinnaclesports.com/v1/translations?cultureCodes=De-De&baseTexts=IncorrectBaseText

Response:

<translationResponse />

Example request:

https://api.pinnaclesports.com/v1/translations?cultureCodes=De-De&baseTexts=IncorrectBaseText|Soccer

Response:

<translationResponse>
    <translations text="Soccer">
        <cultures>
            <culture id="De-De" text="Fussball" />
        </cultures>
    </translations>
</translationResponse> 

Throws

GenericException type

Exceptions

GenericException type

Parameter

TypeRequiredDescription
code string Yes Error code
message string Yes Additional details of the error

HTTP Status CodecodeDescription
500 UNEXPECTED_ERROR Unexpected error
409 INVALID_REQUEST_DATA Invalid request parameters
409 INVALID_CREDENTIALS Invalid username and password combination
409 DUPLICATED_REQUEST Request with the same uniqueRequestId was already processed
409 RESUBMIT_REQUEST You would need to resubmit the request. Please use new uniqueRequestId

JSON example



{
"code":"UNAUTHORIZED",
"message":"Invalid credentials"
}

XML example


<error>
<code>UNEXPECTED_ERROR</code>
<message>An error has occurred.</message>
</error>

GenericException2 type

Parameter

TypeRequiredDescription
@code string Yes Error code
err string Yes Error message

HTTP Status CodecodeDescription
200 1 Invalid sport ID
200 2 Invalid league(s) ID(s)
200 3 Invalid 'last' timestamp
200 5 Request client ID blocked
200 401 Invalid credentials
200 8 Invalid odds format
200 9 Invalid 'Is Live' parameter
200 10 Invalid currency code
200 11 Currency code has no up-to-date exchange rate available
200 99 Internal server error

Example


<rsp status="fail">
<err code="1">Invalid sport ID</err>
</rsp>

ENUMS

Enums

BET_STATUS

ValueDescription
ACCEPTED
PENDING_ACCEPTANCE Live bets in danger zone
REJECTED
REFUNDED
CANCELLED
LOSE
WON

ODDS_FORMAT

ValueDescription
AMERICAN
DECIMAL
HONGKONG
INDONESIAN
MALAY

BET_TYPE

ValueDescription
SPREAD
MONEYLINE
TOTAL_POINTS
TEAM_TOTAL_POINTS

SIDE_TYPE

ValueDescription
OVER
UNDER

BOOLAEN

ValueDescription
TRUE
FALSE

WIN_RISK_TYPE

ValueDescription
WIN Stake is win amount
RISK Stake is risk amount

PLACEBET_RESPONSE_STATUS

ValueDescription
ACCEPTED Accepted
PENDING_ACCEPTANCE Pending Acceptance. This is for live bets in danger zone
PROCESSED_WITH_ERROR Processed with error

PLACEBET_ERROR_CODE

ValueDescription
ALL_BETTING_CLOSED Betting is not allowed at this moment. This may happen during system maintenance.
ALL_LIVE_BETTING_CLOSED Live betting is not allowed at this moment. This may happen during system maintenance.
BLOCKED_CLIENT Client is no longer active
INVALID_COUNTRY Client country is not allowed for betting
BLOCKED_BETTING Not allowed betting for the client
INVALID_EVENT Invalid eventid
ABOVE_MAX_BET_AMOUNT Stake is above allowed maximum amount
BELOW_MIN_BET_AMOUNT Stake is below allowed minimum amount
OFFLINE_EVENT Bet is submitted on a event that is offline
INSUFFICIENT_FUNDS Bet is submitted by a client with insufficient funds
LINE_CHANGED Bet is submitted on a line that has changed
RED_CARDS_CHANGED Bet is submitted on a live soccer event with changed red card count
SCORE_CHANGED Bet is submitted on a live soccer event with changed score
TIME_RESTRICTION Bet is submitted within too short of a period from the same bet previously placed by a client
PAST_CUTOFFTIME Bet is submitted on a game after the betting cutoff time
ABOVE_EVENT_MAX Bet cannot be placed because client exceeded allowed maximum of risk on a line
INVALID_ODDS_FORMAT If a bet was submitted with the odds format that is not allowed for the client
LISTED_PITCHERS_SELECTION_ERROR If bet was submitted with pitcher1MustStart and/or pitcher2MustStart parameters in Place Bet request with values that are not allowed.

PLACE_PARLAY_BET_RESPONSE_STATUS

ValueDescription
ACCEPTED Accepted
PENDING_ACCEPTANCE Pending Acceptance. This is for live bets in danger zone
PROCESSED_WITH_ERROR Processed with error

PLACE_PARLAY_BET_ERROR_CODE

ValueDescription
ABOVE_MAX_BET_AMOUNT Stake is above allowed maximum amount
ALL_BETTING_CLOSED Betting is not allowed at this moment
BELOW_MIN_BET_AMOUNT Stake is below allowed minimum amount
BLOCKED_BETTING Not allowed betting for the client
BLOCKED_CLIENT Client is no longer active
INSUFFICIENT_FUNDS Bet is submitted by a client with insufficient funds
INVALID_COUNTRY Client country is not allowed for betting
INVALID_LEGS One or more legs are invalid
INVALID_ODDS_FORMAT If a bet was submitted with the odds format that is not allowed for the client
INVALID_ROUND_ROBIN_OPTIONS Round robin options are invalid (i.e. does not match with number of legs)
ROUND_ROBIN_DISALLOWED Round robin is disallowed for one of the leagues
TOO_MANY_LEGS Maximum of 10 legs can be specified
TOO_FEW_LEGS At least 2 legs are required for Parlay

PLACE_PARLAY_LEG_RESPONSE_STATUS

ValueDescription
VALID Valid leg
PROCESSED_WITH_ERROR Processed with error

PLACE_PARLEY_LEG_ERROR_CODE

ValueDescription
CANNOT_PARLAY_LIVE_GAME The wager is placed on Live game
CORRELATED The leg is correlated with another one
EVENT_NOT_OFFERED_FOR_PARLAY The event is not offered for Parlays
EVENT_NO_LONGER_AVAILABLE_FOR_BETTING The event is no longer offered for Parlays
INVALID_EVENT Live betting is not allowed at this moment
INVALID_LEG_BET_TYPE Leg bet type is not accepted for Parlays, Accepted values are: SPREAD, MONEYLINE, TOTAL_POINTS
INVALID_PARLAY_BET The leg did not validated due to error on Parlay Bet. Check the error PlaceParlayBet response for error details
LINE_CHANGED Bet is submitted on a line that has changed
LINE_DOES_NOT_BELONG_TO_EVENT LineId does not match the EventId specified in the request
LISTED_PITCHERS_SELECTION_ERROR If bet was submitted with pitcher1MustStart and/or pitcher2MustStart parameters with values that are not allowed

ODDS_NO_LONGER_OFFERED_FOR_PARLAY_1
ODDS_NO_LONGER_OFFERED_FOR_PARLAY_2
ODDS_NO_LONGER_OFFERED_FOR_PARLAY_3

Due to line change odds are not offered for Parlay anymore
OFFLINE_EVENT Bet is submitted on an event that is offline
PAST_CUTOFFTIME Bet is submitted on a game after the betting cutoff time
SYSTEM_ERROR_1
SYSTEM_ERROR_2
SYSTEM_ERROR_3
Unexpected error or System error

PARLAY_RESTRICTION

ValueDescription
0 Allowed to parlay
1 Event is not available for Parlay
2 Allowed to bet only one leg on this event. Please note that this also applies on multiple events with same rotation number.

GETLINE_RESPONSE_STATUS

ValueDescription
SUCCESS OK
NOT_EXISTS Line not offered anymore

TEAM_TYPE

ValueDescription
Team1 Team 1
Team2 Team 2
Draw Draw. This is used for MONEYLINE bet type only.

BETLIST_TYPE

ValueDescription
SETTLED Settled bets
RUNNING Running bets

EVENT_STATUS

ValueDescription
O This is the starting status of a game. It means that the lines are open for betting.
I This status indicates that one or more lines have a red circle (a lower maximum bet amount).
H This status indicates that the lines are temporarily unavailable for betting.

LIVE_STATUS

ValueDescription
No live betting will be offered on this event.
1 Live betting event.
2 Live betting will be offered on this event.

YES_NO_ TYPE

ValueDescription
Yes
No

BOOLEAN2

ValueDescription
0 False
1 True

FEED_ODDS_FORMAT_TYPE

ValueDescription
0 American odds format
1 Decimal odds format
2 HongKong odds format
3 Indonesian odds format
4 Malay odds format
5 Fraction odds format

FEED_STATUS_RESPONSE

ValueDescription
ok Feed has response
fail There was an error

INRUNNING_STATE

ValueDescription
1 First half in progress
2 Half time in progress
3 Second half in progress
4 End of regular time
5 First half extra time in progress
6 Extra time half time in progress
7 Second half extra time in progress
8 End of extra time
9 End of Game
10 Game is temporary suspended
11 Penalties in progress

ROUND_ROBIN_OPTIONS

ValueDescription
Parlay Single parlay that include all wagers (No Round Robin)
TwoLegRoundRobin Multiple parlays having 2 wagers each (round robin style). Can be used if number of legs is greater or equal to 3
ThreeLegRoundRobin Multiple parlays having 3 wagers each (round robin style). Can be used if number of legs is greater or equal to 3
FourLegRoundRobin Multiple parlays having 4 wagers each (round robin style). Can be used if number of legs is greater or equal to 4
FiveLegRoundRobin Multiple parlays having 5 wagers each (round robin style). Can be used if number of legs is greater or equal to 5
SixLegRoundRobin Multiple parlays having 6 wagers each (round robin style). Can be used if number of legs is greater or equal to 6
SevenLegRoundRobin Multiple parlays having 7 wagers each (round robin style). Can be used if number of legs is greater or equal to 7
EightLegRoundRobin Multiple parlays having 8 wagers each (round robin style). Can be used if number of legs is  equal to 8