> For the complete documentation index, see [llms.txt](https://docs.sportradar.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.sportradar.com/uof/custombet-cb/source-agnostic-solution-harmonization-feature.md).

# Source-Agnostic Solution (Harmonization Feature)

The feature harmonizes Custom Bet odds with your single odds pricing, and you can use odds from SR or any other operator, ensuring consistent margin and pricing across all bet types. Using your Core odds as the foundation streamlines calculations, improves efficiency, and gives you complete control over Custom Bet pricing.

{% hint style="info" %}
Source-agnostic only works for market and matches that are supported on Sportradar UOF.
{% endhint %}

**Benefits**

* **Source-Agnostic: odds from any operator are allowed, maximizing your pricing flexibility.**
* **Consistency**: Aligns pricing logic across all bet types.
* **Efficiency**: Reduces manual configuration and margin mismatches.
* **Control**: You retain complete control over odds and margins via the operator providing odds or your core Sportradar odds setup.

#### Supported Sports <a href="#sourceagnosticsolution-harmonizationfeature-2.supportedsports" id="sourceagnosticsolution-harmonizationfeature-2.supportedsports"></a>

Support all sports except Tennis, which is coming soon in Q3 2026

#### How it works <a href="#sourceagnosticsolution-harmonizationfeature-3.howitworks" id="sourceagnosticsolution-harmonizationfeature-3.howitworks"></a>

<figure><img src="/files/SKfyhGZHH766WCcpXlVw" alt=""><figcaption></figcaption></figure>

#### Feature Availability <a href="#sourceagnosticsolution-harmonizationfeature-4.featureavailability" id="sourceagnosticsolution-harmonizationfeature-4.featureavailability"></a>

Please confirm whether you're eligible to use the new Custom Bet odds harmonization feature.

* **Using SDK?** Make sure you're on the latest version.
* **MTS Client?** If you are using Ticket 2.4, please try to upgrade to 3.0 for this feature. Otherwise, please reach out to your account manager for support on 2.4.
* **Using ORAKO or Frontend Widget?** This feature isn’t supported yet—but stay tuned, it’s on the roadmap!

#### Integration Steps <a href="#sourceagnosticsolution-harmonizationfeature-5.integrationsteps" id="sourceagnosticsolution-harmonizationfeature-5.integrationsteps"></a>

1. Map your markets from non-Sportradar providers to the corresponding Sportradar markets and outcomes.&#x20;
2. When calling the calculate and calculate-filter endpoints, send odds for every selection, as shown in the example below.&#x20;
3. If odds are not provided for all selections, the system will fall back to the non-harmonized approach using the Custom Bet ladder configured in CTRL. Check [here](https://docs.sportradar.com/uof/custombet-cb/intro#:~:text=Margin%20/%20Odds%20Key%20Configuration) for more explanation.&#x20;

**Request**

| **Element**                                                                      | **Description**                                                                                            | **Attribute** | **Description**                               | **Possible values**                                           |
| -------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ------------- | --------------------------------------------- | ------------------------------------------------------------- |
| **selections**                                                                   | Root element                                                                                               | xmlns         | XML namespace.                                | Always <http://schemas.sportradar.com/custombet/v1/endpoints> |
| <p><strong>selection</strong></p><p>Sub-element of \<selections><br></p><p> </p> | <p>Element containing all the information about a certain selection of markets and outcomes.</p><p> </p>   | id            | This unique id represents a Sportradar match. | sr:match:123456                                               |
| market\_id                                                                       | The unique id for a specific Sportradar market.                                                            | 1             |                                               |                                                               |
| <p>specifiers</p><p>(optional)</p>                                               | Specifiers are a way to uniquely identify a market with additional parameters together with the market id. | total=1.5     |                                               |                                                               |
| outcome\_id                                                                      | The identifier of a unique outcome within a specific market.                                               | 2             |                                               |                                                               |
| **odds**                                                                         | **The odds (odds with key) you want to use for this selection.**                                           | **1.32**      |                                               |                                                               |

<br>

Request Example&#x20;

```xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<selections xmlns="http://schemas.sportradar.com/custombet/v1/endpoints"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://schemas.sportradar.com/custombet/v1/endpoints http://schemas.sportradar.com/custombet/v1/endpoints/Selections.xsd">
  <selection id="sr:match:14736961" market_id="14" specifiers="hcp=1:0" outcome_id="1711" odds="2.3"/>
  <selection id="sr:match:14736961" market_id="26" outcome_id="70" odds="1.2"/>
</selections>
```

<br>

**Response**

| **Element**                                 | Element **Description**                                                | **Attribute**(s)          | Attribute **Description**                                                      | **Possible values**                                           |
| ------------------------------------------- | ---------------------------------------------------------------------- | ------------------------- | ------------------------------------------------------------------------------ | ------------------------------------------------------------- |
| **calculation\_response**                   | Root element                                                           | xmlns                     | XML namespace.                                                                 | Always <http://schemas.sportradar.com/custombet/v1/endpoints> |
| generated\_at                               | Date and time of generated response in ISO 8601 format                 | 2019-05-06T12:34:49+00:00 |                                                                                |                                                               |
| <p><strong>calculation</strong></p><p> </p> | <p>Element for calculation requests.</p><p><br></p>                    | odds                      | Total calculated odds for the selected custom bet, returned in EU odds format. | 1.34                                                          |
| probability                                 | The probability of this outcome returned in decimal                    | 0.34                      |                                                                                |                                                               |
| **harmonization**                           | **The result of using the harmonization calculation approach.**        | **True/False**            |                                                                                |                                                               |
| **available\_selections**                   | *This child element is identical to the available-selections endpoint* | *-*                       | -                                                                              | -                                                             |

<br>

Response Example&#x20;

```xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<calculation_response xmlns="http://schemas.sportradar.com/custombet/v1/endpoints" generated_at="2019-05-06T12:34:49+00:00">
    <calculation odds="2.0260542763219798" probability="0.444190623492253" harmonization="true"/>
    <available_selections>
        <event id="sr:match:14736961">
            <markets>
                <market id="65" specifiers="hcp=0:1">
                    <outcome id="1711"/>
                    <outcome id="1712"/>
                    <outcome id="1713"/>
                </market>
                <market id="90" specifiers="total=0.5">
                    <outcome id="12"/>
                    <outcome id="13"/>
                </market>
                <market id="91" specifiers="total=1.5">
                    <outcome id="12"/>
                    <outcome id="13"/>
                </market>
                <market id="25" specifiers="variant=sr:goal_range:7+">
                    <outcome id="sr:goal_range:7+:1344"/>
                    <outcome id="sr:goal_range:7+:1345"/>
                    <outcome id="sr:goal_range:7+:1342"/>
                    <outcome id="sr:goal_range:7+:1343"/>
                </market>
            </markets>
        </event>
    </available_selections>
</calculation_response>
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.sportradar.com/uof/custombet-cb/source-agnostic-solution-harmonization-feature.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
