SportsFeed-Adapter
SportsFeed-Adapter ingests structured sports data from league APIs (NBA, NFL, EPL, ATP/WTA, MLB) and odds-feed providers, normalises it into a canonic
What it does
SportsFeed-Adapter ingests structured sports data from league APIs (NBA, NFL, EPL, ATP/WTA, MLB) and odds-feed providers, normalises it into a canonical SportsFeedEvent schema, and emits an ObservationReport for each qualifying update (lineup changes, injury reports, score updates, and pre-game odds shifts). It supplements primary API feeds with ws_sports for low-latency in-play state and falls back to web extraction for sports without direct API coverage. Output feeds sports-model strategies with the event data they need to price Polymarket sports markets. SportsFeed-Adapter is strictly read-only — it never submits or signs orders.
Pipeline placement
Applies to: All live Polymarket sports markets matched to enabled_sports feed coverage
Why it matters
| If this fails | Consequence |
|---|---|
| Injury report not ingested before market open | Sports-model strategy prices a market without a key player absence; takes a position at a probability that is stale by a significant amount and gets adversely selected. |
| Score update delayed by > refresh_interval_s | In-play market probability estimate diverges from ground truth; strategy holds a stale position through a goal or score change, realising avoidable losses. |
| Primary league API unavailable and fallback_to_web disabled | No sports data flows to the model; strategy falls back to last-known odds and risks trading on stale information for the duration of the outage. |
| Odds from wrong provider used due to preferred_provider misconfiguration | Systematically biased odds feed primes the model with incorrect pre-game probability estimates, degrading pricing accuracy across all sports markets in the affected sport. |
Inputs
Polymarket inputs
| Input | Source | Required | Use |
|---|---|---|---|
| Sports market event metadata (event_id, sport, teams, start_time, condition_id) | Gamma API (ws_sports supplement) | required | Map incoming feed events to Polymarket condition_ids for ObservationReport payloads. |
| Real-time in-play state updates (score, game_clock, possession) | ws_sports | optional | Low-latency supplement to league API polling for in-play markets. |
Internal inputs
| Input | Source | Required | Use |
|---|---|---|---|
| KillSwitch active flag | KillSwitch | required | Continue ingesting feed data but suppress ObservationReport emissions when KillSwitch is active. |
| Sports model interest list | SportsModel config | optional | Prioritise feed polling for sports and events that the model has active coverage on. |
Authority
What this bot is permitted to do
State
Readiness
Limited live
Status
beta
Class
Signal Service
Default mode
limited_live
Developer owner
Polytraders core — Intelligence pod
Capital impact
Indirect
Reason codes emitted
| Code | Severity | Meaning | Action |
|---|---|---|---|
| SPORTSFEED_INJURY_UPDATE | WARN | A player injury or status change was detected for a tracked sports event. | Emit ObservationReport emit-every; sports-model strategy reprices the market. |
| SPORTSFEED_LINEUP_CHANGE | WARN | Team lineup or starting roster change detected before game start. | Emit ObservationReport emit-every; sports-model strategy updates pre-game probability estimate. |
| SPORTSFEED_MINOR_ODDS_SHIFT | WARN | Odds shift is between 20–50 bps — marginal but above noise floor. | Emit ObservationReport with SPORTSFEED_MINOR_ODDS_SHIFT warning; strategy applies lower weight. |
| STALE_DATA | WARN | Feed age is > stale_feed_threshold_s for this sport; data may not reflect current conditions. | Include in ObservationReport warnings if between default–hard threshold; halt emissions if > hard threshold. |
| KILL_SWITCH_ACTIVE | HARD_REJECT | KillSwitch active; ObservationReport emissions suppressed. | Continue ingesting feed data but suppress all emissions. |
| SPORTSFEED_FALLBACK_ACTIVE | WARN | Primary league API unavailable; web fallback in use for this sport. | Emit ObservationReport with source_provider=web_fallback; downstream strategy applies lower data-quality weight. |
| MARKET_CLOSED | EXPLAIN | Feed event received for a condition_id that is already closed or resolved. | Skip emission; log for audit trail only. |
| PARAMETER_CHANGE_REQUIRES_APPROVAL | HARD_REJECT | A parameter change violates a locked bound (e.g. refresh_interval_s < 5). | Reject config change; do not apply. |
Related bots in Intelligence
Used by
Reverse index — strategies that currently reference intel.sportsfeed-adapter. If you change this bot's authority or reason codes, these strategies must re-pass shadow.
| Strategy | State | Activity |
|---|---|---|
| NBA props — line-shop | demo-wired | last triggered 37m ago |
Showing 1 of 1 · demo-wired ≠ production-live
Why this matters
Intelligence bots does NOT propose, veto, sign, or execute any trade. Understanding the authority boundary prevents misuse and makes promotion-gate reviews faster and more reliable. View raw spec JSON →