You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs(polymarket-resolution): snake_case to match wire convention (#226)
The customer-visible field name on /odds is polymarket_resolution
(snake_case), matching odds_american / event_id / selection_type /
volume_24h / exchange_token_id etc. Initial doc landed with
camelCase, which is what api-adapters emits internally on the
publish path but isn't what customers see on the SSE/REST wire.
Copy file name to clipboardExpand all lines: content/en/api-reference/sportsbooks.mdx
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -437,7 +437,7 @@ The `requires_tier` field indicates the minimum subscription tier needed to acce
437
437
<Callouttype="info">
438
438
**Polymarket** and **Kalshi** are prediction market platforms. Unlike traditional sportsbooks, they use binary outcome contracts priced between $0 and $1. SharpAPI normalizes contract prices into standard odds formats (American, decimal, implied probability) so you can compare them directly with sportsbook odds. Kalshi is CFTC-regulated.
439
439
440
-
Polymarket rows additionally carry a `polymarketResolution` field reflecting the upstream UMA optimistic-oracle lifecycle (`settled_normal` / `voided` / `disputed` / `proposed` / `unknown`). See [Polymarket Resolution](/concepts/polymarket-resolution) for the per-value semantics and the upstream caveat that cancellation, participant withdrawal, and event-not-occurred all collapse to the single `voided` bucket.
440
+
Polymarket rows additionally carry a `polymarket_resolution` field reflecting the upstream UMA optimistic-oracle lifecycle (`settled_normal` / `voided` / `disputed` / `proposed` / `unknown`). See [Polymarket Resolution](/concepts/polymarket-resolution) for the per-value semantics and the upstream caveat that cancellation, participant withdrawal, and event-not-occurred all collapse to the single `voided` bucket.
Copy file name to clipboardExpand all lines: content/en/concepts/polymarket-resolution.mdx
+6-6Lines changed: 6 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,13 +7,13 @@ import { Callout } from 'nextra/components'
7
7
8
8
# Polymarket Resolution Status
9
9
10
-
Polymarket is a prediction-market CLOB whose markets are graded by the [UMA optimistic oracle](https://docs.uma.xyz/), not by a sportsbook trading desk. When you read Polymarket odds through SharpAPI, the row may carry an extra field — `polymarketResolution` — that reflects where that market sits in the UMA resolution lifecycle.
10
+
Polymarket is a prediction-market CLOB whose markets are graded by the [UMA optimistic oracle](https://docs.uma.xyz/), not by a sportsbook trading desk. When you read Polymarket odds through SharpAPI, the row may carry an extra field — `polymarket_resolution` — that reflects where that market sits in the UMA resolution lifecycle.
11
11
12
12
This field is **Polymarket-only**. Other sportsbook rows (Pinnacle, DraftKings, FanDuel, etc.) do not carry it because their upstream wire formats don't emit an equivalent signal. See [Pinnacle wire survey](https://github.com/Mlaz-code/api-adapters/) for the parallel investigation that concluded the same field cannot be delivered for traditional books.
13
13
14
14
## When the field appears
15
15
16
-
| Market state |`polymarketResolution`|
16
+
| Market state |`polymarket_resolution`|
17
17
|---|---|
18
18
| Actively trading | omitted (field not present) |
19
19
| Closed, resolved with a winner |`"settled_normal"`|
@@ -37,7 +37,7 @@ The UMA oracle declared a winning outcome. In a binary market, exactly one outco
37
37
"marketType": "binary",
38
38
"selection": "Yes",
39
39
"odds": -10000,
40
-
"polymarketResolution": "settled_normal",
40
+
"polymarket_resolution": "settled_normal",
41
41
"trueProbability": 1.0
42
42
}
43
43
```
@@ -71,15 +71,15 @@ The market is closed but the UMA lifecycle fields are empty. This happens on leg
71
71
72
72
## Delayed resolution
73
73
74
-
Polymarket markets can resolve days or weeks after the underlying event ends. The `polymarketResolution` field appears whenever the upstream resolution lifecycle advances, even long after the market closed.
74
+
Polymarket markets can resolve days or weeks after the underlying event ends. The `polymarket_resolution` field appears whenever the upstream resolution lifecycle advances, even long after the market closed.
75
75
76
76
If your application processes resolution events (for grading, settlement reconciliation, etc.), watch the SSE stream / WebSocket for these late-arriving rows.
77
77
78
78
## Comparison with other books
79
79
80
80
| Book | Equivalent field? | Notes |
81
81
|---|---|---|
82
-
|**Polymarket**|`polymarketResolution`| 5-state enum, derived from UMA oracle |
82
+
|**Polymarket**|`polymarket_resolution`| 5-state enum, derived from UMA oracle |
83
83
|**Kalshi**|_(not yet)_| Kalshi has settlement events but we don't surface them today — separate request |
84
84
|**Pinnacle**|_(not available upstream)_| Pinnacle's wire emits no real-time reason field; `cancellationReason` exists only on the post-grading Lines API partner endpoint |
85
85
|**DraftKings / FanDuel / BetMGM / Caesars**|_(not available)_| Suspended markets simply disappear from the feed; no status field is emitted |
@@ -89,7 +89,7 @@ The data customers want — a per-book settlement reason — is not industry-sta
89
89
90
90
## Why the field is Polymarket-prefixed
91
91
92
-
We deliberately named the field `polymarketResolution` rather than a generic `resolutionStatus` so it's obvious the values are Polymarket-specific. A future Kalshi version would be a separate `kalshiResolution` field with its own enum — the wire formats are different enough that a unified enum would either be lowest-common-denominator (useless) or full of asterisks for "Polymarket-only" / "Kalshi-only" values.
92
+
We deliberately named the field `polymarket_resolution` rather than a generic `resolutionStatus` so it's obvious the values are Polymarket-specific. A future Kalshi version would be a separate `kalshiResolution` field with its own enum — the wire formats are different enough that a unified enum would either be lowest-common-denominator (useless) or full of asterisks for "Polymarket-only" / "Kalshi-only" values.
0 commit comments