JS SDK v1.129.0

Added

  1. getByMatchId(matchId, filters?) — odds for a single match, grouped per operator.
  2. getByDateRange(filters) — odds for every fixture starting inside a date range, paginated and ordered by start time.
    1. dateFrom and dateTo are required and the range must not exceed 7 days.
    2. Optional sport, competitionId, limit and page filters via the new MatchOddsByDateFilters object.
    3. Returns an EventsOddsPaginationModel (data + meta with total, limit and page).
  3. Both new methods return EventOddsModel, which follows the structure of the API: odds grouped per operator, the market code and scope in meta, numeric odds, and links as { desktop, mobile } objects. getByMatchIds keeps returning MatchOddsModel.
  4. New filters on MatchOddsFilters:
    1. operators — restrict the response to specific operators.
    2. affiliateId — affiliate ID substituted into every operator link.
    3. affiliateIds — affiliate IDs per operator, taking precedence over affiliateId for the operators they name.
    4. language — BCP 47 language tag for the operator content.
  5. Operator betslip links: betslipUrlTemplate and betslipIdSeparator. Join the selection IDs the user picked with the separator and substitute them into the {betslip_ids} placeholder.
  6. startTime and updatedAt on MatchOddsModel, and hoverBackgroundColor / borderColor on the bookmaker branding.
  7. New market types: HT_1X2, DRAW_NO_BET, TEAM_SCORE_FIRST_GOAL, OVER_GOALS_6_5 and OVER_CORNERS_6_5OVER_CORNERS_13_5.
  8. New models: EventOddsModel, EventsOddsPaginationModel, OperatorOddsModel, OddsOperatorModel, OddsMarketModel, OddsSelectionModel, OddsUrlModel, MatchOddsMetaModel and related sub-models.
🚧

Changed

  1. The Odds namespace now reads odds from the Fans United Sports API instead of the previous third-party feed. getByMatchIds(matchIds, filters?) is unchanged — same signature, same Map of MatchOddsModel arrays, same field names and types — so no integration needs updating.
  2. MatchOddsModel.type is now derived from the status of the match: PRE_EVENT or LIVE, and null only when the status could not be resolved.
  3. bookmaker.url is derived from the operator domain, and bookmaker.links is composed from the resolved match and selection links plus the homepage. Both were previously empty.
  4. market.type carries the Fans United market code — FT_1X2 where the previous feed sent 1x2. MatchOddsMarketEnum values were already the Fans United spellings, so filters are unaffected.
  5. OVER_GOALS_* markets now return both the over and the under selection, because each goal line is its own market.
  6. marketTypes accepts a market code this SDK version does not know yet, matching it against the response as-is and logging a warning, instead of resetting the filter to FT_1X2.
⚠️

Deprecated

  1. oddClient in the SDK configuration is ignored and no longer required. Omitting it is now the correct setup; providing it logs a warning.
  2. The oddType filter is ignored — the odds API has no odd type request parameter, so pre-event and live odds cannot be requested separately. Read MatchOddsModel.type instead. Providing the filter logs a warning.
  3. OddFormatEnum.MONEYLINE is no longer supported and falls back to OddFormatEnum.DECIMAL with a warning.