Reports (Beta)
Overview
Section titled “Overview”Reports are part of the integration responsible for synchronizing partner user bets with the Kero database. With this data, Kero team can analyze market statistics and improve the product. Below is a proposal for how this should be implemented on the partner’s side so that Kero can fetch all the required data.
How to send reports via Kafka
Section titled “How to send reports via Kafka”-
Prepare data according to “Report Data Specification” (see bellow)
-
Connect to Kafka and send a bets reports via messages. Recommendation: Send data per game after markets were resolved.
How to Connect via Kafka
Section titled “How to Connect via Kafka”Please use classic Kafka setup with the following configuration parameters:
Port: 9092Bootstrap server: (ask support)Username: (ask support for credentials)Password: (ask support for credentials)Protocol: SASL_SSLMechanism: PLAINTopic: (for dev `"demo.feed.bets"`)Message Format: JSONKey: Generated UUIDRequired Headers:- `partner`: name of the integration partner (e.g., KERO)Heartbeat: Not required on your side — internal Kafka health is managed by client libraries.Report Data Specification
Section titled “Report Data Specification”| Field | Type | Required | Description |
|---|---|---|---|
kero_market_id | string | ✅ | Kero UUID of the market |
user_answer | string | ✅ | Option selected by the user. Example: answer_d |
amount | integer | ✅ | Bet amount. |
profit | string | ✅ | Profit from bet (negative if "LOSE"). |
bet_id | string | ✅ | Unique bet ID |
bet_created_utc | string | ✅ | Timestamp when a bet was created. Example: 2025-01-25T02:29:07Z |
resolve_status | string | ✅ | Outcome of the bet. Enum: "WIN", "LOSE", "CANCELED" |
odds | string | ✅ | American format odds |
prob | string | ✅ | Selected option probability |
user_id | string | ✅ | Partner user ID |
user_name | string | ❌ | Partner user name |
bet_type | string | ✅ | Bet type. Enum: "SINGLE", "PARLAY" |
parlay_id | string | ❌ | Required for parlays |
parlay_logic | string | ❌ | How amount is handled for parlays. Enum: "exact", "divide" |
market_name | string | ✅ | Market name |
selection_name | string | ✅ | Selected option name |
currency | string | ✅ | Currency code (ISO-4217) |
{ "kero_market_id": "d516ed1c-0f54-472e-abdd-44867843bc43", "user_answer": "answer_d", "amount": "100", "profit": "-100", "bet_id": "12390", "bet_created_utc": "2025-06-20 00:44:44.234", "resolve_status": "LOSE", "odds": "2.40", "prob": "0.52", "user_id": "user-123", "user_name": "john_doe", "bet_type": "SINGLE", "parlay_id": "", "parlay_logic":"", "market_name": "Total Points", "selection_name": "Over 210.5", "currency": "USD"}