Types

Adapter Object

Property
Type
Required
Description

config

Adapter configuration settings

endpoints

yes

Adapter endpoint implementations

Config Object

The config object controls adapter behavior and widget-specific configurations.

Property
Type
Required
Description

widget

Widget-specific configurations

WidgetConfig

Property
Type
Required
Description

'betRecommendation.eventList'

BrEventListConfig

Configuration for bet recommendation event list widget

Endpoints Object

The endpoints object contains all adapter endpoint implementations.

The market and eventMarkets endpoints are mutually exclusive – you only need to implement ONE of these two. Choose based on your API capabilities:

  • Implement market if your API can fetch a specific market for an event efficiently

  • Implement eventMarkets if your API can fetch all markets for an event in a single call

  • If implementing market, you can optionally add availableMarketsForEvent to list available markets first

Shared Endpoints Across Widgets: All widgets use the same adapter endpoints. When a specific widget needs to limit returned data, the request args will include a widget property containing the widget name (the same value used in SIR('addWidget', widgetName, ...)). Use this to conditionally filter or modify your response per widget if needed.

Property
Type
Required
Description

availableMarketsForEvent

AvailableMarketsForEventFunction

Retrieves all available markets selections for a specific event. Use with market endpoint to discover available markets.

market

MarketFunction

Implement either this OR eventMarkets – Retrieves a specific market data for a specific event.

eventMarkets

EventMarketsFunction

Implement either this OR market – Retrieves all markets data for a specific event in one call. Use if your API provides all markets on one endpoint.

event

EventFunction

Retrieves detailed event data including event start time, scores, team names, tournament name, and more.

filterMarkets

FilterMarketsFunction

Filters available markets based on widget requirements and provided selections, returning all or a subset.

betSlipSelection

BetSlipSelectionFunction

Subscribes to the current punter's bet slip selections (their betting cart)

cashBackSelections

CashBackSelectionsFunction

Retrieves selections eligible for cash back promotions.

tickets

TicketsFunction

Retrieves the punter's placed bets (tickets)

Adapter Endpoints

Market Function

Retrieves data for a specific market of a specific event.

The market and eventMarkets endpoints are mutually exclusive – you only need to implement ONE. If your API does not support fetching individual markets, consider using the eventMarkets endpoint instead.

Names such as market names, outcome names, and other text content should be provided in the language specified by args.language to ensure proper localization for users.

The oddsType parameter specifies the current format of odds set for the widget. If you provide odds in a different format, consider updating the odds type in the widget loader configuration. See the Widget Loader documentation for details on configuring odds formats.

Argument
Type
Required
Description

args

MarketRequest

yes

Request parameters including market/outcome selection, language, and odds type

callback

Callback<MarketResponse>

yes

Function to receive market data or error

Returns: UnsubscribeFunction - Optional cleanup function to stop receiving updates

EventMarkets Function

Retrieves data for all markets of a specific event.

The eventMarkets and market endpoints are mutually exclusive – you only need to implement ONE. If your API does not support fetching all markets for requested event, consider using the market endpoint instead.

Names such as market names, outcome names, and other text content should be provided in the language specified by args.language to ensure proper localization for users.

The oddsType parameter specifies the current format of odds set for the widget. If you provide odds in a different format, consider updating the odds type in the widget loader configuration. See the Widget Loader documentation for details on configuring odds formats.

Argument
Type
Required
Description

args

EventMarketsRequest

yes

Request parameters including event selection, language, and odds type

callback

Callback<EventMarketsResponse>

yes

Function to receive markets data or error

Returns: UnsubscribeFunction - Optional cleanup function to stop receiving updates

Event Function

Retrieves detailed event data including event start time, scores, team names, tournament name, and more.

Names such as team names, tournament names, and other text content should be provided in the language specified by args.language. Event times should be converted and displayed in the timezone specified by args.displayedTimezone to ensure proper localization for users.

Argument
Type
Required
Description

args

EventRequest

yes

Request parameters including event selection and display preferences

callback

Callback<EventResponse>>

yes

Function to receive event data or error

Returns: UnsubscribeFunction - Optional cleanup function to stop receiving updates

AvailableMarketsForEvent Function

Retrieves all available market offering in Selection format for a requested event.

Argument
Type
Required
Description

args

AvailableMarketsForEventRequest

yes

Request parameters including event selection

callback

Callback<AvailableMarketsForEventResponse>

yes

Function to receive available markets or error

Returns: UnsubscribeFunction - Optional cleanup function to stop receiving updates

FilterMarkets Function

This endpoint is called to perform additional filtering based on widget-specific requirements or other parameters. The widget property in the request arguments identifies which widget is requesting the filtering, allowing you to customize market filtering logic per widget. If no filtering is required, you can simply return the input selections unchanged. Example: For Swipe Bet you only want to use market 1x2 out of all available.

Argument
Type
Required
Description

args

FilterMarketsRequest

yes

Request parameters including widget name and optional event selections

callback

Callback<FilterMarketsResponse>

yes

Function to receive filtered markets or error

Returns: UnsubscribeFunction - Optional cleanup function to stop receiving updates

BetSlipSelection Function

Subscribes to the current punter's bet slip selections (their betting cart). Widgets use this data to display selections as selected or, depending on the widget, may hide certain selections.

Argument
Type
Required
Description

args

undefined

No arguments

callback

Callback<BetSlipSelectionResponse>

yes

Function to receive bet slip selections or error

Returns: UnsubscribeFunction - Optional cleanup function to stop receiving updates

CashBackSelections Function

Retrieves selections eligible for cash back promotions.

Argument
Type
Required
Description

args

CashBackSelectionsRequest

yes

Request parameters including widget name and event selections

callback

Callback<CashBackSelectionsResponse>

yes

Function to receive cash back selections or error

Returns: UnsubscribeFunction - Optional cleanup function to stop receiving updates

Tickets Function

Retrieves the punter's placed bets (tickets).

Argument
Type
Required
Description

args

TicketsRequest

yes

Request parameters including operator ID, customer ID, and optional filters

callback

Callback<TicketsResponse>

yes

Function to receive tickets or error

Returns: UnsubscribeFunction - Optional cleanup function to stop receiving updates

Utility Types

Callback<T>

Error-first callback function pattern used by all adapter endpoints.

Property
Type
Required
Description

error

Error | undefined

yes

Error object if the operation failed, or undefined if successful

data

T | undefined

Response data if successful, or undefined if an error occurred

Type Parameters:

  • T - The type of data returned on success

UnsubscribeFunction

Optional cleanup function returned by adapter endpoints to stop receiving updates.

Type: (() => void) | undefined

When an adapter endpoint returns an UnsubscribeFunction, you can call it to stop receiving further callback invocations. This is useful for:

  • Cleaning up subscriptions when a component unmounts

  • Stopping live data updates when they are no longer needed

  • Managing memory and preventing memory leaks

See Also: Callback<T>

Request Types

EventRequest

Request parameters for fetching event data.

Property
Type
Required
Description

selection

SelectionEvent

yes

Event identifier in UF or external format

language

string

Language code for localized content (e.g., "en", "de")

displayedTimezone

string

Timezone for displaying event times (e.g., "Europe:Berlin", "Europe/London")

EventMarketsRequest

Request parameters for fetching all markets data for a specific event.

Property
Type
Required
Description

selection

SelectionEvent

yes

Event identifier in UF or external format

language

string

Language code for localized content (e.g., "en", "de")

oddsType

string

Type of odds to display. Valid values: 'eu', 'uk', 'us', 'hong-kong', 'indonesian', 'malay'

MarketRequest

Request parameters for fetching a specific market data for an event.

Property
Type
Required
Description

selection

SelectionMarket | SelectionOutcome

yes

Market or outcome identifier to fetch

language

string

yes

Language code for localized content (e.g., "en", "de")

oddsType

string

yes

Type of odds to display. Valid values: 'eu', 'uk', 'us', 'hong-kong', 'indonesian', 'malay'

AvailableMarketsForEventRequest

Request parameters for fetching all available markets for a specific event.

Property
Type
Required
Description

selection

SelectionEvent

yes

Event identifier in UF or external format

FilterMarketsRequest

Request parameters for filtering markets based on widget configuration.

Property
Type
Required
Description

widget

string

yes

Widget identifier to determine which markets to filter (e.g., "swipeBet", "betRecommendation")

selection

SelectionMarket[]

Optional array of market identifiers to filter markets

TicketsRequest

Request parameters for fetching tickets.

Property
Type
Required
Description

operatorId

string

yes

Client/operator identifier

endCustomerId

string

yes

End user/customer identifier

events

SelectionEvent[]

Optional array of event identifiers to filter tickets by specific events

channelId

string

Optional channel identifier to filter tickets by virtual stadium chat channel

page

number

Optional page number for pagination

Response Types

EventResponse

Response data containing event information.

Property
Type
Required
Description

event

Event

yes

Complete event data including details, status, participants, and metadata

EventMarketsResponse

Response data containing all markets for an event.

Property
Type
Required
Description

markets

Market[]

yes

Array of market data for the event

event

string

yes

Event identifier string (e.g., "sr:match:12345")

MarketResponse

Response data containing a specific market and event information.

Property
Type
Required
Description

market

Market

yes

Market data including outcomes and odds

event

string

yes

Event identifier string (e.g., "sr:match:12345")

AvailableMarketsForEventResponse

Response data containing all available market offering as selections for an event.

Property
Type
Required
Description

selection

SelectionMarket[]

yes

Array of market selection identifiers available for the event

FilterMarketsResponse

Response data containing filtered market selections based on the widget identifier and input selections.

Property
Type
Required
Description

selection

SelectionMarket[]

yes

Array of event or market selections that match the filter criteria

BetSlipSelectionResponse

Response data containing currently selected outcomes in the bet slip.

Property
Type
Required
Description

selection

SelectionOutcome[]

yes

Array of outcome selections currently in the bet slip

CashBackSelectionsRequest

Request parameters for fetching cash back selections.

Property
Type
Required
Description

widget

string

yes

Widget identifier to determine the context of the cash back request

selection

SelectionEvent[]

yes

Array of event selections to check for cash back eligibility

CashBackSelectionsResponse

Response data containing events eligible for cash back.

Property
Type
Required
Description

events

SelectionEvent[]

yes

Array of event selections that are eligible for cash back promotions

TicketsResponse

Response data containing user tickets.

Property
Type
Required
Description

tickets

Ticket[]

yes

Array of ticket objects containing bet information, status, and outcomes

Adapter Data Types

SelectionEvent

Discriminated union type for identifying betting events. The type field discriminates between UF (Unified Feed) and external formats.

When type: 'uf'

Use this format when referencing events from the Sportradar Unified Feed (UOF).

Property
Type
Required
Description

type

'uf'

yes

Indicates Unified Feed format

event

string

yes

SR entity identifier following UOF schema (e.g., "sr:match:12345", "sr:stage:67890")

When type: 'external'

Use this format when referencing events using your own client-defined identifiers.

Property
Type
Required
Description

type

'external'

yes

Indicates external client-defined format

event

string

yes

Client-defined unique event identifier. Format is determined by your system (e.g., "736977", "event_12345")

See Also: SelectionMarket, SelectionOutcome

SelectionMarket

Discriminated union type for identifying betting markets within events. Extends SelectionEvent with market-specific properties. The type field discriminates between UF (Unified Feed) and external formats.

When type: 'uf'

Use this format when referencing markets from the Sportradar Unified Feed (UOF).

Property
Type
Required
Description

type

'uf'

yes

Indicates Unified Feed format

event

string

yes

SR entity identifier following UOF schema (e.g., "sr:match:12345")

market

string

yes

Betting market identifier as defined by UOF. Retrieved from the UOF feed (e.g., "1" for 1x2)

specifiers

string

Additional market data as defined by UOF. Although optional in schema, must be provided when the UOF market requires specifiers (e.g., for "Total 1.5" vs "Total 2.5", specifiers would be "total=1.5")

When type: 'external'

Use this format when referencing markets using your own client-defined identifiers.

Property
Type
Required
Description

type

'external'

yes

Indicates external client-defined format

event

string

yes

Client-defined unique event identifier

market

string

yes

Client-defined market identifier. If not available in your system, use the outcome identifier

See Also: SelectionEvent, SelectionOutcome

SelectionOutcome

Discriminated union type for identifying specific betting outcomes within markets. Extends SelectionMarket with outcome-specific properties. The type field discriminates between UF (Unified Feed) and external formats.

When type: 'uf'

Use this format when referencing outcomes from the Sportradar Unified Feed (UOF).

Property
Type
Required
Description

type

'uf'

yes

Indicates Unified Feed format

event

string

yes

SR entity identifier following UOF schema (e.g., "sr:match:12345")

market

string

yes

Betting market identifier as defined by UOF

specifiers

string

Additional market data as defined by UOF. Required when market uses specifiers

outcome

string

yes

Market outcome identifier as defined by UOF. Retrieved from the UOF feed (e.g., "1" for home win in 1x2 market)

odds

Odds

Odds information for this outcome

When type: 'external'

Use this format when referencing outcomes using your own client-defined identifiers.

Property
Type
Required
Description

type

'external'

yes

Indicates external client-defined format

event

string

yes

Client-defined unique event identifier

market

string

yes

Client-defined market identifier

outcome

string

yes

Client-defined unique market outcome identifier

odds

Odds

yes

Odds information for this outcome (required for external format)

See Also: SelectionEvent, SelectionMarket, Odds

Odds

Represents betting odds in various formats with optional custom display values.

Property
Type
Required
Description

type

string

yes

Odds format. Valid values: 'eu' (European/Decimal), 'uk' (UK/Fractional), 'us' (American)

value

string

yes

Odds value submitted by the client. Pattern: 1-8 digits (first cannot be 0), optionally followed by decimal point and 1-8 digits. Regex: ^[1-9]\d{0,7}(\.\d{1,8})?$

numerator

string

Numerator of fractional odds. Only present when type is 'uk' (fractional). Regex: ^[1-9]\d{0,7}$

denominator

string

Denominator of fractional odds. Only present when type is 'uk' (fractional). Regex: ^[1-9]\d{0,7}$

customDisplayValue

string

Custom display value for odds, used as-is for display purposes. Only provide if you want to handle custom formatting

Outcome

Represents a single betting outcome within a market.

Property
Type
Required
Description

id

string

yes

Unique identifier for the outcome, used to reference it in bets

name

string

yes

Translated name of the outcome, used for display purposes

competitor

string

Name or identifier of the team or player associated with this outcome. Useful for markets where each outcome is tied to a specific competitor (e.g., for 1x2 market, outcome: 1, competitor: "FC Barca")

odds

Odds

Odds information for this outcome

status

string

yes

Outcome status. Valid values: 'active', 'inactive'

See Also: Market, Odds

Market

Represents a betting market with multiple outcomes.

Property
Type
Required
Description

id

string

yes

Unique identifier for the market, used to reference it in bets

name

string

yes

Translated name of the market, used for display purposes

outcomes

Outcome[]

yes

All outcomes associated with this market

status

string

yes

Market status. Valid values: 'active', 'deactivated', 'suspended', 'settled', 'cancelled'

specifiers

string

Additional market data as defined by UOF (e.g., for markets with lines like Total 1.5 vs Total 2.5). Although optional in schema, must be provided when the UOF market requires specifiers

Market Status Values:

  • active: Odds are provided and you can accept bets on the market

  • deactivated: Odds are no longer provided for this market. Can go back to active (e.g., when a different total line becomes most balanced)

  • suspended: Odds continue to be provided but you should not accept bets temporarily (e.g., "bet stop" before/during goal confirmation)

  • settled: Bet settlement messages have been sent for this market, no further odds will be provided. In rare cases, settled markets may be moved to cancelled

  • cancelled: This market has been cancelled. No further odds will be provided

See Also: Outcome, Event

Event

Represents a sporting event with teams, tournament information, and match details.

Property
Type
Required
Description

id

string

yes

Event identifier as defined by UOF. Retrieved from the MAPI feed

sport

Sport

yes

Sport information (imported from adapter types)

category

Category

yes

Category information (e.g., country, region)

tournament

Tournament

yes

Tournament information

teams

[Team, Team]

yes

Array of exactly two teams (home and away)

isLive

boolean

yes

Indicates whether the event is currently live

date

EventDate

Date information for the event

date.displayValue

string

Formatted date string for display

date.startTime

string

Event start time (ISO format)

liveCurrentTime

string

Current match time for live events (e.g., "45:00", "HT")

result1

Result

Primary result/score information

result2

Result

Secondary result information (e.g., half-time score)

result3

Result

Tertiary result information (e.g., period scores)

See Also: Market, SelectionEvent

EventDate

Represents date and time information for an event.

Property
Type
Required
Description

displayValue

string

Formatted date string for display purposes

startTime

string

Event start time in ISO format (e.g., "2026-01-07T20:00:00Z")

See Also: Event

Ticket

Represents a betting ticket containing one or more bets.

Property
Type
Required
Description

ticketId

string

yes

Client defined string to identify the ticket (unique in the client's system),

minimal string length = 1,

maximum string length = 128

bets

Bet[]

yes

Array of bets included in this ticket

type

'ticket'

yes

Declaration of content type, should be "ticket"

version

1.0

yes

Ticket format version

See Also: Bet, TicketsResponse

Bet

Represents a single bet within a ticket, containing selections and stake information.

Property
Type
Required
Description

betId

string

yes

Unique bet id (in the client's system),

minimal string length = 1,

maximum length = 128

selections

Array<TicketSelection | SelectionOutcome>

yes

Array of bet selections, included in this bet. Can include custom bets (TicketSelection) or standard outcomes (SelectionOutcome)

minimal number of selections per bet = 1,

maximum number = 100

stake

Array<Stake>

yes

Array of bet stakes,

minimal number of stake per bet = 1,

maximum number = 5

odds

Odds

The odds for this bet

See Also: Ticket, SelectionOutcome, TicketSelection, Stake

Stake

Represents stake information for a bet.

Property
Type
Required
Description

type

string

yes

Stake type. Valid values: 'cash' (used for stake and payout), 'bonus' (amount added on top of winnings if bet is won)

currency

string

yes

Currency code (e.g., "USD", "EUR", "GBP")

amount

string

yes

Stake amount as a string to allow for decimal values

mode

string

Stake mode (default: 'total'). Valid values: 'unit' (stake relates to each sub-bet in system bets), 'total' (stake relates to all sub-bets, each receives a portion)

See Also: Bet

TicketSelection

Represents a custom bet selection within a ticket.

Property
Type
Required
Description

type

'custom-bet'

yes

Type identifier, always 'custom-bet'

betId

string

Optional unique identifier for this custom bet

selections

SelectionOutcome[]

yes

Array of outcome selections included in this custom bet

odds

Odds

yes

Odds information for this custom bet

See Also: Bet, SelectionOutcome

Sport

Represents information about a sport.

Property
Type
Required
Description

id

string

The unique SR identifier for the sport

name

string

The name of the sport

icon

string

URL where the sport icon is located

See Also: Event, Category

Category

Represents information about a category (e.g., country, region).

Property
Type
Required
Description

id

string

The unique identifier assigned to the category

name

string

The name of the category

cc

object

Country code information

cc.a2

string

yes

Country code in A2 format (if cc object is present)

See Also: Event, Sport

Tournament

Represents information about a tournament.

Property
Type
Required
Description

id

string

The unique identifier assigned to the tournament

externalId

string | number

Your unique identifier for the tournament

name

string

The name of the tournament

See Also: Event, Category

Team

Represents information about a team participating in an event.

Property
Type
Required
Description

id

string

The unique SR identifier assigned to the team

name

string

yes

The name of the team

See Also: Event

Result

Represents result/score information for an event.

Property
Type
Required
Description

result

Array<number | string>

yes

The result of the event (e.g., scores, statistics)

label

string

Optional label describing what this result represents

See Also: Event

Adapter Config

BrEventListConfig

Configuration for the bet recommendation event list widget. Note: The allowedMarkets and blockedMarkets properties are only applicable when using hosted Sportradar type with UOF (Unified Odds Feed) IDs.

Property
Type
Required
Description

layout

EventListMarketsConfig

yes

Market layout configuration per sport

allowedMarkets

SportMarketsMap

Markets allowed for this widget, keyed by sport ID

blockedMarkets

SportMarketsMap

Markets blocked for this widget, keyed by sport ID

See Also: EventListMarketsConfig, SportMarketsMap

SportMarketsMap

A map of sport IDs to their market configurations with specifier filtering. Only applicable when using hosted Sportradar type with UOF (Unified Odds Feed) IDs.

Property
Type
Required
Description

[sportId]

Record<string, Specifiers>

yes

Market configurations for a sport, where keys are market IDs and values are specifier filters

Specifiers Type:

  • true - Allow/block market with all specifiers

  • string[] - Allow/block market only with specific specifiers (e.g., ["2.5", "3.5"] for Total markets)

EventListMarketsConfig

Configuration for market layout display in event lists. This is a Record<string, SportLayoutConfig> where keys are sport IDs and values are layout configurations.

Type: Record<string, SportLayoutConfig>

SportLayoutConfig

Property
Type
Required
Description

sportId

string | number

yes

Sport identifier

markets

MarketLayoutConfig[]

yes

Array of market layout configurations

MarketLayoutConfig

Property
Type
Required
Description

title

string

Display title for the market column

preMatchMarketId

string | number

Market ID to use for pre-match events

liveMarketId

string | number

Market ID to use for live events

showSpecifier

boolean

Whether to display the market specifier (e.g., "2.5" for Total)

columns

Array<string | ColumnConfig>

Column definitions for outcome display

ColumnConfig

Property
Type
Required
Description

id

string

yes

Outcome ID to display in this column

title

string

Custom column title

tKey

string

Translation key for the column title

See Also: BrEventListConfig

Last updated

Was this helpful?