# 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.

**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.

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

|                   |                                                                                                      |
| ----------------- | ---------------------------------------------------------------------------------------------------- |
| Soccer            | ![(tick)](https://confluence.sportradar.ag/s/jcom93/9111/1h7j1tb/_/images/icons/emoticons/check.svg) |
| Basketball        | To be supported by Q4                                                                                |
| Tennis            | To be supported in 2026                                                                              |
| Ice Hockey        | ![(tick)](https://confluence.sportradar.ag/s/jcom93/9111/1h7j1tb/_/images/icons/emoticons/check.svg) |
| Baseball          | ![(tick)](https://confluence.sportradar.ag/s/jcom93/9111/1h7j1tb/_/images/icons/emoticons/check.svg) |
| American Football | ![(tick)](https://confluence.sportradar.ag/s/jcom93/9111/1h7j1tb/_/images/icons/emoticons/check.svg) |

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

<figure><img src="https://1868790214-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1KlIQPveu0EGYCTI8DL1%2Fuploads%2FgANAh3pAD3Lar0UOZ4cV%2FScreenshot%202025-12-09%20at%2011.47.07.png?alt=media&#x26;token=8cb59395-3ed8-48f7-b1c9-b91be9656253" alt=""><figcaption></figcaption></figure>

#### 4. 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?** You must be using Global Offer Validation or Ticket 3.0. If you're unsure, please check with your OAM. If you're not using it yet, this feature won’t be available—but it's coming soon!
* **Using ORAKO or Frontend Widget?** This feature isn’t supported yet—but stay tuned, it’s on the roadmap!

<br>

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

You’ll need to send your odds for every single selection when you call the following endpoints: calculate & calculate-filter.

If odds are **not** provided for all selections, we’ll use the non-harmonization approach (**Custom Bet ladder** you selected in CTRL).

**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>
```
