Virtual Sports via Unified Odds Feed (UOF)
Virtual sports offer pre-match, in-play (live), and outright betting markets. Sports covered include:
Virtual Football League Mode (VFLM)
Virtual Football World Cup (VFWC)
Virtual Football Nations Cup (VFNC)
Virtual Football Asian Cup (VFAS)
Virtual Football Champions Cup (VFCC)
Virtual Football Bundesliga (VFB)
Virtual Football English League (VFEL)
Virtual Football German League (VFGL)
Virtual Football Italian League (VFIL)
Virtual Football Spanish League (VFSL)
Virtual Football French League (VFFL)
Virtual World Match Football (VWMF)
Virtual Fast Football (VFF)
Virtual Basketball League (VBL)
Virtual Dog Racing – Kiron (VDK)
Virtual Horse Racing – Kiron (VHK)
Pre-match gaming
Due to the nature of virtual sports, matches are played more rapidly; meaning a full season lasts only a few hours. Although some markets are labeled as “pre-match,” odds are updated at a speed similar to live betting markets.
Virtual Sport producers
Each Virtual Sport is exposed as a separate producer in Unified Odds Feed. See the list of virtual sport producers.
Virtual Sports markets
The Unified Odds Feed uses a unified list of markets for all producers which is the same for virtual sports. (e.g. 1x2 market has ID 1 for all producers).
Virtual Sports entities URNs
Sports entities that belong to Virtual Sports (seasons, matches, stages, etc.) use specific URN prefixes, so they can be easily identified.
Virtual Football prefix is vf, e.g. vf:match:1234567.
See below the comprehensive list of prefixes:
Virtual Football:
vfVirtual Basketball League:
vblVirtual Dogs Kiron:
vdrVirtual Horses Kiron:
vhc
UOF access
To access all feeds clients need to provide a valid access token. For the Recovery and SportsAPI use a header key: x-access-token with the token as value. For the XML-Feed use the token as username.
UOF components
API for Virtual Sport information
Virtual sports have their own URN type vf:match:xxxx, vf:season:xxx`and vf:tournament:xxxx to retrieve virtual sport information form the API endpoints. The actual details of the matches/events are available for end-users in the front-end interfaces, and the bet_settlement message includes the result.
The season information is important and this is looked up using the standard endpoints: tournaments/(season-id)/info.xml and tournaments/(season-id)/schedule.xml and follows the same format as real sports. The SDK automatically takes care of this, so if you are an SDK user you don’t have to worry.
Schedule for a season
Because of fast bet cycles, Sports API endpoint for getting schedules for a specific date (or SDK methods getCompetitionsFor on SportsInfoManager interface in Java and GetSportEventsByDateAsync on SportDataProvider interface in .NET) do not include virtual seasons and matches. Schedule for a season needs to be obtained per season directly.
Instead of informing about the upcoming seasons and matches on the API, virtual producers send a fixture_change information for every upcoming season.
To ensure that the client has the schedule for the upcoming season and can cache the information about the matches that will be played, the producer sends out a fixture_change message with the season as the event, when a new season starts.
The recommended behavior when receiving such a fixture change is retrieve the season schedule through API using the endpoint tournaments/(season-id)/schedule. The SDK handles this automatically, but if you want to do something extra on your end when a new virtual season starts, a good time to do that is when you receive the fixture change on a virtual season.
API endpoints supported by Virtual Sports
The Unified Feed (UF) API is used by clients (via SDK) to fetch Virtual Sports meta data. That is, data that is not directly odds related, e.g. info about matches, seasons, tournaments.
In Virtual Sports, we use the same endpoints and same domain names as the common Sportradar UF API. However, in Virtual Sports we have our own implementation of some of these endpoints, and we only support these endpoints when using Virtual Sports IDs.
sports/{language}/sport_events/{urn_prefix}:{urn_type}:{urn_id}/fixture.xml
match, season, tournament, stage
If URN-type season or tournament are used then the response is exactly the same as calling the endpoint 'info' with the same season/tournament ID.
sports/{language}/sport_events/{urn_prefix}:{urn_type}:{urn_id}/summary.xml
match, season, tournmanet, stage
If URN-type season or tournament are used then the response is exactly the same as calling the endpoint 'info' with the same season/tournament ID.
sports/{language}/tournaments/{urn_prefix}:{urn_type}:{urn_id}/info.xml
season, tournament, stage
Tournaments are always unique tournaments. If tournament type is used then the season in the response will be the current season.
sports/{language}/tournaments/{urn_prefix}:{urn_type}:{urn_id}/schedule.xml
season, tournament, stage
Tournaments are always unique tournaments. If tournament type is used then the season in the response will be the current season.
UOF recovery
As stated above each virtual sport is a separate producer, which means recovery needs to be done for each producer individually. This is handled automatically if you use the SDK. Also, failure handling must be considered about what happens when one of the virtual sports becomes unavailable.
UOF Recovery requests for Virtual Sports are made using URLs for the different endpoints specified in the table below. An 'accepted' response is given (immediately) through HTTPS and the actual messages are sent through the UOF XML-Feed (Rabbit MQ).
Recovery request should be made using the HTTP POST method, further documentation can be found in the general documentation of Unified Feed endpoints.
Odds (after)
/odds/initiate_request
(With after parameter)
Odds sport event
/odds/events/{event}/initiate_request
Stateful (after)
/stateful_messages/initiate_request
(With after parameter)
Statefull (full)
/stateful_messages/initiate_request
Stateful sport event
/stateful_messages/events/{event}/initiate_request
Recovery (after)
/recovery/initiate_request
(With after parameter)
Subscription for Virtual Sports
To be able to receive messages in the UOF XML-feed, you must be subscribed to the feed. This is achieved by making a recovery request. Once the recovery request is successfully sent, you would receive messages within one minute.
Last updated
Was this helpful?