Odds Change

odds_change messages are sent whenever Betradar provides updated odds for one or more markets in a match. These messages may include a subset of markets; any markets not included remain unchanged. For each reported market, all current outcomes and their respective odds are included.

Message Elements and Attributes

1. odds_change

Describes all odds related changes

Attribute(s)
description

event_id

The ID of the event (match/race/outright) the odds information refers to.

timestamp

When the message was created in the odds producing system (milliseconds since Epoch UTC).

product

Specifies which producer generated these odds. At any given point in time there should only be one product generating odds for a particular event. This tag can later be used when a producer is detected to be down.

  • 1 = LiveOdds producer

  • 3 = Betradar Ctrl producer

  • 4 = BetPal producer

  • 5 = Premium Cricket producer

etc...

odds_change_reason

Deprecated (Optional) can be set to "riskadjustment_update" if this message is caused by a manual odds change.


2. sport_event_status

Reports various status information about the event that is relevant (see the special section on sport_event_status below for further description).


3. odds

Describes all odds updates for this event per market.

Attributes
Description

betstop_reason

Sent after a betstop while under betstop to signal the cause of the betstop.

betting_status

When set signals that markets have been opened again after a betstop, but it is still early after betstop.

Risk sensitive customers may decide to continue to keep the markets closed until betting_status is no longer present.

The value of betting_status signals the cause for the previous betstop. (See the API endpoint descriptions/betting_status.xml for the description of the individual betting status values)


4. Market

Describes the odds updates for a particular market.

Attributes
Descripiton

id

The ID of the market (see markets.xml for a detailed description of various markets).

favourites

If present, this is set to 1, which states that this is the most balanced or recommended market line. This setting makes most sense for markets where multiple lines are provided (e.g. the Totals market).

specifiers

A | separated list of key=value-pairs. All keys are specified in the Betting API in the market descriptions. These are further specifiers for the market.

status

Active/suspended/deactivated:

  • active (1) = display odds & accept tickets

  • suspended (-1) = display odds & don't accept tickets

  • deactivated (0) = stop displaying odds & don't accept tickets

  • handed_over (-2)

The default value is active if status is not present. During recovery the following additional status may also be sent:

  • cancelled (-4)

  • settled (-3)

extended_specifiers

Additional info about this market that does not logically changes the market but is interesting for display purposes. Best example is Asian Handicap markets. Where the extended_specifers is to to hcp_for_the_rest_of_the_match


5. outcome
Attribute(s)
Description

id

The outcome id

odds

The odds for the specific outcome id

active

Indicates if the outcome is active or not (0+not active, 1= active)


6. market_metadata

Additional information about a specific market (see more below)

Attributes(s)
Description

next_betstop

Timestamp in UTC when to betstop this market. Typically used for outrights and typically is the start-time of the event the market refers to.


7. odds_generation_properties

Provided by the prematch odds producer only, and contains a few key-parameters that can be used in a client’s own special odds model, or even offer spread betting bets based on it.

Attribute(s)
Description

expected_totals

Parameter that can be used by client’s own special odds model. Provided by prematch odds producer only. How many goals are expected in total.

expected_supremacy

Parameter that can be used by client’s own special odds model. Provided by prematch odds producer only. How big is the expected goal supremacy (home goals minus away goals)?

Message Example

XML Example

<odds_change event_id="sr:match:1234" timestamp="1234" product="2">
<sport_event_status status="1" reporting="1" match_status="1" home_score="2" away_score="0">
     <clock match_time="10:00" remaining_time="50:00" stopped="true"/>
   </sport_event_status>
  <odds>
    <market id="47" specifiers="score=41.5" favourite="1" status="1">
      <outcome id="1" odds="1.12" active="1"/>
      <outcome id="2" odds="1.92" active="1"/>
    </market>
    <market id="48" specifiers="score=41.5" status="1">
      <outcome id="1" odds="1.12" active="1"/>
      <outcome id="2" odds="1.92" active="1"/>
    </market>
    <market id="49" status="0"/>
    <market id="123" specifiers="set=2|game=3|point=1" status="-1">
      <outcome id="1" odds="1.3" active="1"/>
      <outcome id="2" odds="1.7" active="1"/>
    </market>
    <market id="40" status="1">
      <outcome id="sr:player:1234" odds="1.4" active="1"/>
      <outcome id="sr:player:71111" odds="1.87" active="1"/>
      <outcome id="sr:player:9919" odds="1.9" active="1"/>
      <outcome id="sr:player:4322" active="0"/>
      <outcome id="sr:player:1119" active="0"/>
    </market>
  </odds>
</odds_change>

Probabilities

You can configure the odds_change message to receive probabilities too. These probabilities are then sent on each individual market outcome.

The probability attribute will not be included on an outcome with a probability lower than 1e-10.

XML Examples

<odds>
  <market id="47" specifiers="score=41.5" favourite="1" status="1">
    <outcome id="1" odds="1.12" probabilities="0.6836763” active="1"/>
    <outcome id="2" odds="1.92" probabilities="0.8836763” active="1"/>
  </market>
  <market id="48" specifiers="score=42.5">
    <outcome id="1" odds="1.12" probabilities="0.1836763” active="1"/>
    <outcome id="2" odds="1.92" probabilities="0.3336763” active="1"/>
  </market>
  <market id="49" status="deactivated"/>
  <market id="123" specifiers="set=2|game=3|point=1" status="-1">
    <outcome id="1" odds="1.3" probabilities="0.77346763” active="1"/>
    <outcome id="2" odds="1.7" probabilities="0.32946763” active="1"/>
  </market>
</odds>

Sport event status element

The element sport_event_status is provided in the odds_change message is a very important part of the odds_change messages. See the sport even status page for more information about this element.

Match Status and Market Status

Market 'status' in odds_change message should NOT be considered to determine the status of match. Consider 'match_status' instead.

  • match_status="0" indicates the match is "not started".

  • when market_status="0" and match_status="1" , the match is in-play.

You should grey out the markets whose status=0 (customers should not be able to bet) untill you receive status="1" in the following odds change message.

  • The match_status=“100" indicates that the match is over (status: ended)

When the match is over, it should be removed from the offer

Handling odds_change message without markets/market lines

An odds_change message without markets means that some other information has changed (for example sport_event_status might have changed), but the markets have not.

In this case we advise that you update the information that has changed, and keep the market status, values and odds like they are. There is no indication of what has been changed, so it is best to process the whole message and update your data accordingly.

An odds_change without markets may look something like this:

XML Examples

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<odds_change product="3" event_id="sr:match:18427576" timestamp="1565462926275">
   <sport_event_status status="0" match_status="0"/>
   <odds_generation_properties expected_totals="2.52327" expected_supremacy="-0.443045"/>
   <odds/>
</odds_change>

Last updated

Was this helpful?