Endpoint Callback Response Structure:
{
"score": [
{
"data": "<HTML/CSS formatted scorecard content>",
"eid": 34484327
}
]
}
Field Description:
| Key | Type | Description |
|---|---|---|
score | Array | Array of scorecard data objects |
data | String | HTML+CSS content to be rendered on client side UI |
eid | Number | Unique Event ID associated with the current scorecard |
UI Rendered Content:
The data field contains styled HTML representing a live match scorecard. It includes:
- Team Names: e.g., “England” and “India”
- Scores and Overs: e.g., “192/10 (62.1)”, “108/7 (37.5)”
- CRR / RRR: Current Run Rate and Required Run Rate
- Match Status Section: Custom-styled match indicator (like day count, progress etc.)
This HTML can be safely embedded in an iframe or directly injected into a frontend container supporting raw HTML.
Important Notes for SDK Integration
-
Resubscription Required After SDK Restart:
If the SDK restarts, or a
connect: truepayload is received in the Connection Callback, all previously subscribed markets must be subscribed again. Ensure your application handles re-subscription automatically to maintain real-time updates. -
Closed Markets After SDK Restart:
If the SDK restarts, any markets that were previously closed or inactive will not be included in the market list initially. Your application should handle this scenario and fetch updates as markets become available again.
-
Market ID Availability for Results:
When the SDK starts, it does not have the complete list of markets whose results were declared before startup. The SDK will only receive result updates for markets after it has started.
To fetch results for markets that were closed or declared prior to SDK startup, you must call the Result by Event API (/events/result?eid) after the SDK is running.
Conclusion
This document serves as a comprehensive technical reference for integrating and operating with the SDK platform. It includes:
- REST APIs for sports, events, markets, results, and subscriptions
- Real-time callback responses for 12+ market types (e.g., BM, F2, BB, OE, MT, KD, OE, Betfair)
- First-time installation and execution guidance for Linux, Windows, and Docker
- Full glossary mapping for API responses and live data formats
Each API and callback response is designed with short, optimized keys to ensure performance. This guide helps decode, interpret, and integrate those structures with ease.
Keep This Document Updated
As the SDK evolves, we recommend updating this doc alongside:
- New APIs or callback types
- Changes in response structure or naming conventions
- Version upgrades (SDK or endpoints)
- New sports or market types being introduced
Document Meta Info
| Field | Value |
|---|---|
| Document Version | 1.1 |
| Created At | July 09, 2025 |
| Created By | BETTECH |
| Last Updated | September 10, 2025 |
| Maintainer | SDK Integration Team |
| Contact Email | support@bettech.live |
| Platform | BETTECH |
| Change Log | Key Description Changes |
Void Notification Flow
ON REAL-TIME VOID UPDATES (Received on SDK)
The SDK will send real-time void updates for markets. You can listen to these updates using WebSocket to track market voids.
📤 Example Payload
{
"void": [
{
"mid": "1.250318884-BM2",
"eid": 34939912,
"ty": "bookmaker2",
"vr": "test1",
"vf": null,
"vt": null,
"iv": true,
"si": 4,
"lr": null,
"br": null,
"l": null,
"b": null},
{
"mid": "1.250137317",
"eid": 34924384,
"ty": "tied-match",
"vr": "test2",
"vf": null,
"vt": null,
"iv": true,
"si": 4,
"lr": null,
"br": null,
"l": null,
"b": null},
{
"mid": "11.184405564006-CC",
"eid": 34939912,
"ty": "cricket-casino",
"vr": "test1",
"vf": "2025-11-10T07:21:17.235Z",
"vt": "2025-11-10T07:23:17.235Z",
"iv": true,
"si": 4,
"lr": null,
"br": null,
"l": null,
"b": null}
]
}
- Usage: Each object in
"void[]"represents a market that has been voided. - Fields:
"mid"= Market ID"eid"= Event ID
INITIAL SDK DATA FETCH
When the SDK is initialized, it can emit “void” with two types:
Type: "list"
This type is emitted to return a list of all currently voided markets upon SDK startup or reconnection.
emit("void", { type: "list" });
Example Response
{
"type": "list",
"data": [
{
"mid": "1.250318884-BM2",
"eid": 34939912,
"ty": "bookmaker2",
"vr": "test1",
"vf": null,
"vt": null,
"iv": true,
"si": 4,
"lr": null,
"br": null,
"l": null,
"b": null},
{
"mid": "1.250137317",
"eid": 34924384,
"ty": "tied-match",
"vr": "test2",
"vf": null,
"vt": null,
"iv": true,
"si": 4,
"lr": null,
"br": null,
"l": null,
"b": null},
{
"mid": "4.772897394674-F2",
"eid": 34924384,
"ty": "session",
"vr": "test2",
"vf": null,
"vt": null,
"iv": true,
"si": 4,
"lr": null,
"br": null,
"l": null,
"b": null},
{
"mid": "1.250318883",
"eid": 34939912,
"ty": "match-odd",
"vr": "test2",
"vf": null,
"vt": null,
"iv": true,
"si": 4,
"lr": null,
"br": null,
"l": null,
"b": null},
{
"mid": "4.471496144939-F3",
"eid": 34939912,
"ty": "other-market",
"vr": "test2",
"vf": "2025-11-10T07:12:12.305Z",
"vt": "2025-11-10T07:15:05.163Z",
"iv": true,
"si": 4,
"lr": null,
"br": null,
"l": null,
"b": null}
]
}
- Usage: Use this to populate all currently voided markets on SDK startup or reconnection.
Type: "market"
This type is emitted to return voided data for a specific market.
Example Response
{
"type": "market",
"data": [
{
"mid": "4.672194314673-BB",
"eid": 34939912,
"ty": "ball-by-ball",
"vr": "test1",
"vf": null,
"vt": null,
"iv": true,
"si": 4,
"lr": null,
"br": null,
"l": null,
"b": null
}
]
}
- Usage: Use this to fetch voided information for a specific market ID.
Field Reference
| Key | Description |
|---|---|
mid |
Market ID (unique per market) |
eid |
Event ID (unique per event) |
ty |
Market type (e.g., session, bookmaker2, match-odd, etc.) |
vr |
Void reason (e.g., “test1”, “test2”) |
vf |
Void from date/time (ISO format) |
vt |
Void to date/time (ISO format) |
iv |
Is voided (true = voided, false = active) |
si |
Sport ID (ID of the sport associated with the market) |
lr |
Lay rate (string or null) |
br |
Back rate (string or null) |
l |
Lay price (string or null) |
b |
Back price (string or null) |