polymarket-apis 0.2.2__py3-none-any.whl → 0.2.3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of polymarket-apis might be problematic. Click here for more details.
- polymarket_apis/clients/clob_client.py +35 -1
- polymarket_apis/clients/gamma_client.py +84 -64
- polymarket_apis/clients/graphql_client.py +182 -0
- polymarket_apis/clients/web3_client.py +1 -1
- polymarket_apis/clients/websockets_client.py +82 -26
- polymarket_apis/types/common.py +4 -2
- polymarket_apis/types/gamma_types.py +183 -142
- polymarket_apis/types/websockets_types.py +125 -28
- polymarket_apis/utilities/config.py +12 -0
- polymarket_apis/utilities/endpoints.py +1 -0
- polymarket_apis/utilities/exceptions.py +6 -0
- {polymarket_apis-0.2.2.dist-info → polymarket_apis-0.2.3.dist-info}/METADATA +1 -1
- {polymarket_apis-0.2.2.dist-info → polymarket_apis-0.2.3.dist-info}/RECORD +14 -13
- {polymarket_apis-0.2.2.dist-info → polymarket_apis-0.2.3.dist-info}/WHEEL +0 -0
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
3
|
from datetime import datetime
|
|
4
|
+
from typing import Optional
|
|
4
5
|
|
|
5
6
|
from pydantic import (
|
|
6
7
|
BaseModel,
|
|
@@ -15,162 +16,160 @@ from .common import EthAddress, Keccak256, TimestampWithTZ
|
|
|
15
16
|
|
|
16
17
|
|
|
17
18
|
class Event(BaseModel):
|
|
18
|
-
#
|
|
19
|
+
# Identifiers
|
|
19
20
|
id: str
|
|
20
21
|
slug: str
|
|
21
|
-
ticker: str
|
|
22
|
+
ticker: Optional[str] = None
|
|
22
23
|
|
|
23
24
|
# Core event information
|
|
24
25
|
title: str
|
|
25
|
-
description: str
|
|
26
|
-
resolution_source: str
|
|
27
|
-
category: str
|
|
28
|
-
|
|
29
|
-
#
|
|
30
|
-
image: str
|
|
31
|
-
icon: str
|
|
32
|
-
|
|
33
|
-
#
|
|
34
|
-
start_date: datetime
|
|
35
|
-
end_date: datetime
|
|
36
|
-
creation_date: datetime
|
|
37
|
-
created_at: datetime = Field(alias="createdAt")
|
|
38
|
-
updated_at: datetime
|
|
39
|
-
published_at:
|
|
40
|
-
closed_time: datetime
|
|
26
|
+
description: Optional[str] = None
|
|
27
|
+
resolution_source: Optional[str] = Field(None, alias="resolutionSource")
|
|
28
|
+
category: Optional[str] = None
|
|
29
|
+
|
|
30
|
+
# Media URLs
|
|
31
|
+
image: Optional[str] = None
|
|
32
|
+
icon: Optional[str] = None
|
|
33
|
+
|
|
34
|
+
# Datetime
|
|
35
|
+
start_date: Optional[datetime] = Field(None, alias="startDate")
|
|
36
|
+
end_date: Optional[datetime] = Field(None, alias="endDate")
|
|
37
|
+
creation_date: Optional[datetime] = Field(None, alias="creationDate")
|
|
38
|
+
created_at: Optional[datetime] = Field(alias="createdAt")
|
|
39
|
+
updated_at: Optional[datetime] = Field(None, alias="updatedAt")
|
|
40
|
+
published_at: Optional[datetime] = Field(None, alias="publishedAt")
|
|
41
|
+
closed_time: Optional[datetime] = Field(None, alias="closedTime")
|
|
41
42
|
|
|
42
43
|
# Status flags
|
|
43
44
|
active: bool
|
|
44
45
|
closed: bool
|
|
45
|
-
archived: bool
|
|
46
|
-
new: bool
|
|
47
|
-
featured: bool
|
|
48
|
-
restricted: bool
|
|
46
|
+
archived: Optional[bool] = None
|
|
47
|
+
new: Optional[bool] = None
|
|
48
|
+
featured: Optional[bool] = None
|
|
49
|
+
restricted: Optional[bool] = None
|
|
49
50
|
cyom: bool
|
|
50
|
-
automatically_active: bool
|
|
51
|
+
automatically_active: Optional[bool] = Field(None, alias="automaticallyActive")
|
|
51
52
|
|
|
52
53
|
# Financial metrics
|
|
53
|
-
liquidity: float
|
|
54
|
-
volume: float
|
|
55
|
-
open_interest: int
|
|
56
|
-
competitive: float
|
|
57
|
-
volume_24hr: float
|
|
58
|
-
liquidity_amm: float
|
|
59
|
-
liquidity_clob: float
|
|
54
|
+
liquidity: Optional[float] = None
|
|
55
|
+
volume: Optional[float] = None
|
|
56
|
+
open_interest: Optional[int] = Field(None, alias="openInterest")
|
|
57
|
+
competitive: Optional[float] = None
|
|
58
|
+
volume_24hr: Optional[float] = Field(None, alias="volume24hr")
|
|
59
|
+
liquidity_amm: Optional[float] = Field(None, alias="liquidityAmm")
|
|
60
|
+
liquidity_clob: Optional[float] = Field(None, alias="liquidityClob")
|
|
60
61
|
|
|
61
62
|
# Related data
|
|
62
|
-
markets: list[GammaMarket]
|
|
63
|
-
series: list[Series]
|
|
64
|
-
tags: list[Tag]
|
|
63
|
+
markets: Optional[list[GammaMarket]] = None
|
|
64
|
+
series: Optional[list[Series]] = None
|
|
65
|
+
tags: Optional[list[Tag]] = None
|
|
65
66
|
|
|
66
67
|
# User interaction
|
|
67
|
-
comment_count: int
|
|
68
|
+
comment_count: Optional[int] = Field(None, alias="commentCount")
|
|
68
69
|
|
|
69
70
|
# Display and functionality settings
|
|
70
|
-
sort_by: str
|
|
71
|
+
sort_by: Optional[str] = Field(None, alias="sortBy")
|
|
71
72
|
show_all_outcomes: bool = Field(alias="showAllOutcomes")
|
|
72
73
|
show_market_images: bool = Field(alias="showMarketImages")
|
|
73
|
-
gmp_chart_mode: str
|
|
74
|
+
gmp_chart_mode: Optional[str] = Field(None, alias="gmpChartMode")
|
|
74
75
|
|
|
75
76
|
# Negative risk settings
|
|
76
77
|
enable_neg_risk: bool = Field(alias="enableNegRisk")
|
|
77
|
-
neg_risk: bool
|
|
78
|
-
neg_risk_market_id: str
|
|
79
|
-
neg_risk_augmented: bool
|
|
78
|
+
neg_risk: Optional[bool] = Field(None, alias="negRisk")
|
|
79
|
+
neg_risk_market_id: Optional[str] = Field(None, alias="negRiskMarketID")
|
|
80
|
+
neg_risk_augmented: Optional[bool] = Field(None, alias="negRiskAugmented")
|
|
80
81
|
|
|
81
82
|
# Order book settings
|
|
82
|
-
enable_order_book: bool
|
|
83
|
+
enable_order_book: Optional[bool] = Field(None, alias="enableOrderBook")
|
|
83
84
|
|
|
84
85
|
|
|
85
86
|
class GammaMarket(BaseModel):
|
|
86
|
-
#
|
|
87
|
+
# Identifiers
|
|
87
88
|
id: str
|
|
88
89
|
slug: str
|
|
89
90
|
condition_id: Keccak256 = Field(alias="conditionId")
|
|
90
|
-
question_id: Keccak256
|
|
91
|
+
question_id: Optional[Keccak256] = Field(None, alias="questionID")
|
|
91
92
|
|
|
92
93
|
# Core market information
|
|
93
94
|
question: str
|
|
94
95
|
description: str
|
|
95
|
-
resolution_source: str
|
|
96
|
-
outcome: list
|
|
97
|
-
outcome_prices: Json[list[float]] | list[float]
|
|
96
|
+
resolution_source: Optional[str] = Field(None, alias="resolutionSource")
|
|
97
|
+
outcome: Optional[list] = None
|
|
98
|
+
outcome_prices: Optional[Json[list[float]] | list[float]] = Field(None, alias="outcomePrices")
|
|
98
99
|
|
|
99
|
-
#
|
|
100
|
-
image: str
|
|
101
|
-
icon: str
|
|
100
|
+
# Media URLs
|
|
101
|
+
image: Optional[str] = None
|
|
102
|
+
icon: Optional[str] = None
|
|
102
103
|
|
|
103
|
-
#
|
|
104
|
-
start_date: datetime
|
|
105
|
-
end_date: datetime
|
|
104
|
+
# Datetime
|
|
105
|
+
start_date: Optional[datetime] = Field(None, alias="startDate")
|
|
106
|
+
end_date: Optional[datetime] = Field(None, alias="endDate")
|
|
106
107
|
created_at: datetime = Field(alias="createdAt")
|
|
107
|
-
updated_at: datetime
|
|
108
|
-
start_date_iso: datetime
|
|
109
|
-
end_date_iso: datetime
|
|
110
|
-
deployed_timestamp: datetime
|
|
111
|
-
accepting_orders_timestamp: datetime
|
|
112
|
-
None, alias="acceptingOrdersTimestamp",
|
|
113
|
-
)
|
|
108
|
+
updated_at: Optional[datetime] = Field(None, alias="updatedAt")
|
|
109
|
+
start_date_iso: Optional[datetime] = Field(None, alias="startDateIso")
|
|
110
|
+
end_date_iso: Optional[datetime] = Field(None, alias="endDateIso")
|
|
111
|
+
deployed_timestamp: Optional[datetime] = Field(None, alias="deployedTimestamp")
|
|
112
|
+
accepting_orders_timestamp: Optional[datetime] = Field(None, alias="acceptingOrdersTimestamp")
|
|
114
113
|
|
|
115
114
|
# Status flags
|
|
116
115
|
active: bool
|
|
117
116
|
closed: bool
|
|
118
117
|
archived: bool
|
|
119
|
-
new: bool
|
|
120
|
-
featured: bool
|
|
118
|
+
new: Optional[bool] = None
|
|
119
|
+
featured: Optional[bool] = None
|
|
121
120
|
restricted: bool
|
|
122
121
|
ready: bool
|
|
123
|
-
deployed: bool
|
|
122
|
+
deployed: Optional[bool] = None
|
|
124
123
|
funded: bool
|
|
125
124
|
cyom: bool
|
|
126
125
|
approved: bool
|
|
127
126
|
|
|
128
127
|
# Financial metrics
|
|
129
|
-
liquidity: float
|
|
130
|
-
volume: float
|
|
131
|
-
volume_num: float
|
|
132
|
-
liquidity_num: float
|
|
133
|
-
volume_24hr: float
|
|
134
|
-
volume_24hr_clob: float
|
|
135
|
-
volume_clob: float
|
|
136
|
-
liquidity_clob: float
|
|
137
|
-
competitive: float
|
|
128
|
+
liquidity: Optional[float] = None
|
|
129
|
+
volume: Optional[float] = None
|
|
130
|
+
volume_num: Optional[float] = Field(None, alias="volumeNum")
|
|
131
|
+
liquidity_num: Optional[float] = Field(None, alias="liquidityNum")
|
|
132
|
+
volume_24hr: Optional[float] = Field(None, alias="volume24hr")
|
|
133
|
+
volume_24hr_clob: Optional[float] = Field(None, alias="volume24hrClob")
|
|
134
|
+
volume_clob: Optional[float] = Field(None, alias="volumeClob")
|
|
135
|
+
liquidity_clob: Optional[float] = Field(None, alias="liquidityClob")
|
|
136
|
+
competitive: Optional[float] = None
|
|
138
137
|
spread: float
|
|
139
138
|
|
|
140
139
|
# Order book settings
|
|
141
|
-
enable_order_book: bool
|
|
142
|
-
order_price_min_tick_size: float
|
|
140
|
+
enable_order_book: Optional[bool] = Field(None, alias="enableOrderBook")
|
|
141
|
+
order_price_min_tick_size: Optional[float] = Field(
|
|
143
142
|
None, alias="orderPriceMinTickSize",
|
|
144
143
|
)
|
|
145
|
-
order_min_size: float
|
|
146
|
-
accepting_orders: bool
|
|
144
|
+
order_min_size: Optional[float] = Field(None, alias="orderMinSize")
|
|
145
|
+
accepting_orders: Optional[bool] = Field(None, alias="acceptingOrders")
|
|
147
146
|
|
|
148
147
|
# Related data
|
|
149
|
-
events: list[Event]
|
|
150
|
-
clob_rewards: list[ClobReward]
|
|
148
|
+
events: Optional[list[Event]] = None
|
|
149
|
+
clob_rewards: Optional[list[ClobReward]] = Field(None, alias="clobRewards")
|
|
151
150
|
|
|
152
151
|
# User interaction
|
|
153
|
-
comment_count: int
|
|
152
|
+
comment_count: Optional[int] = Field(None, alias="commentCount")
|
|
154
153
|
|
|
155
154
|
# Market maker information
|
|
156
155
|
market_maker_address: str = Field(alias="marketMakerAddress")
|
|
157
156
|
|
|
158
157
|
# Additional settings
|
|
159
|
-
group_item_title: str
|
|
160
|
-
group_item_threshold: int
|
|
161
|
-
token_ids: Json[list[str]] | list[str]
|
|
162
|
-
uma_bond: int
|
|
163
|
-
uma_reward: float
|
|
164
|
-
neg_risk: bool
|
|
158
|
+
group_item_title: Optional[str] = Field(None, alias="groupItemTitle")
|
|
159
|
+
group_item_threshold: Optional[int] = Field(None, alias="groupItemThreshold")
|
|
160
|
+
token_ids: Optional[Json[list[str]] | list[str]] = Field(None, alias="clobTokenIds")
|
|
161
|
+
uma_bond: Optional[int] = Field(None, alias="umaBond")
|
|
162
|
+
uma_reward: Optional[float] = Field(None, alias="umaReward")
|
|
163
|
+
neg_risk: Optional[bool] = Field(None, alias="negRisk")
|
|
165
164
|
pager_duty_notification_enabled: bool = Field(alias="pagerDutyNotificationEnabled")
|
|
166
|
-
review_status: str
|
|
165
|
+
review_status: Optional[str] = Field(None, alias="reviewStatus")
|
|
167
166
|
rewards_min_size: int = Field(alias="rewardsMinSize")
|
|
168
167
|
rewards_max_spread: float = Field(alias="rewardsMaxSpread")
|
|
169
168
|
|
|
170
169
|
# Resolution information
|
|
171
|
-
submitted_by: str
|
|
172
|
-
resolved_by: EthAddress
|
|
173
|
-
has_reviewed_dates: bool
|
|
170
|
+
submitted_by: Optional[str] = None
|
|
171
|
+
resolved_by: Optional[EthAddress] = Field(None, alias="resolvedBy")
|
|
172
|
+
has_reviewed_dates: Optional[bool] = Field(None, alias="hasReviewedDates")
|
|
174
173
|
|
|
175
174
|
@field_validator("condition_id", mode="wrap")
|
|
176
175
|
@classmethod
|
|
@@ -191,121 +190,163 @@ class GammaMarket(BaseModel):
|
|
|
191
190
|
raise
|
|
192
191
|
|
|
193
192
|
class ClobReward(BaseModel):
|
|
194
|
-
#
|
|
193
|
+
# Identifiers
|
|
195
194
|
id: str
|
|
196
195
|
condition_id: Keccak256 = Field(alias="conditionId")
|
|
197
196
|
|
|
198
197
|
# Reward information
|
|
199
198
|
asset_address: str = Field(alias="assetAddress")
|
|
200
199
|
rewards_amount: float = Field(alias="rewardsAmount")
|
|
201
|
-
rewards_daily_rate: float
|
|
200
|
+
rewards_daily_rate: Optional[float] = Field(None, alias="rewardsDailyRate")
|
|
202
201
|
|
|
203
|
-
#
|
|
202
|
+
# Datetime
|
|
204
203
|
start_date: datetime = Field(alias="startDate")
|
|
205
204
|
end_date: datetime = Field(alias="endDate")
|
|
206
205
|
|
|
207
206
|
|
|
208
207
|
class Tag(BaseModel):
|
|
209
|
-
#
|
|
208
|
+
# Identifiers
|
|
210
209
|
id: str
|
|
211
210
|
label: str
|
|
212
211
|
slug: str
|
|
213
212
|
|
|
214
213
|
# Display settings
|
|
215
|
-
force_show: bool
|
|
216
|
-
force_hide: bool
|
|
214
|
+
force_show: Optional[bool] = Field(None, alias="forceShow")
|
|
215
|
+
force_hide: Optional[bool] = Field(None, alias="forceHide")
|
|
217
216
|
|
|
218
|
-
#
|
|
219
|
-
published_at: TimestampWithTZ | datetime
|
|
220
|
-
created_at: datetime
|
|
221
|
-
updated_at: datetime
|
|
217
|
+
# Datetime
|
|
218
|
+
published_at: Optional[TimestampWithTZ | datetime] = Field(None, alias="publishedAt")
|
|
219
|
+
created_at: Optional[datetime] = Field(None, alias="createdAt")
|
|
220
|
+
updated_at: Optional[datetime] = Field(None, alias="updatedAt")
|
|
222
221
|
|
|
223
222
|
# User information
|
|
224
|
-
created_by: int
|
|
225
|
-
updated_by: int
|
|
223
|
+
created_by: Optional[int] = Field(None, alias="createdBy")
|
|
224
|
+
updated_by: Optional[int] = Field(None, alias="updatedBy")
|
|
226
225
|
|
|
227
226
|
|
|
228
227
|
class Series(BaseModel):
|
|
229
|
-
#
|
|
228
|
+
# Identifiers
|
|
230
229
|
id: str
|
|
231
230
|
slug: str
|
|
232
231
|
ticker: str
|
|
233
232
|
title: str
|
|
234
233
|
|
|
235
234
|
# Series characteristics
|
|
236
|
-
series_type: str
|
|
237
|
-
recurrence: str
|
|
238
|
-
layout: str
|
|
235
|
+
series_type: Optional[str] = Field(None, alias="seriesType")
|
|
236
|
+
recurrence: Optional[str] = None
|
|
237
|
+
layout: Optional[str] = None
|
|
239
238
|
|
|
240
|
-
#
|
|
241
|
-
icon: str
|
|
242
|
-
image: str
|
|
239
|
+
# Media URLs
|
|
240
|
+
icon: Optional[str] = None
|
|
241
|
+
image: Optional[str] = None
|
|
243
242
|
|
|
244
|
-
#
|
|
245
|
-
start_date: datetime
|
|
243
|
+
# Datetime
|
|
244
|
+
start_date: Optional[datetime] = Field(None, alias="startDate")
|
|
246
245
|
created_at: datetime = Field(alias="createdAt")
|
|
247
|
-
updated_at: datetime
|
|
248
|
-
published_at: TimestampWithTZ | datetime
|
|
246
|
+
updated_at: Optional[datetime] = Field(None, alias="updatedAt")
|
|
247
|
+
published_at: Optional[TimestampWithTZ | datetime] = Field(None, alias="publishedAt")
|
|
249
248
|
|
|
250
249
|
# Status flags
|
|
251
|
-
active: bool
|
|
252
|
-
archived: bool
|
|
253
|
-
closed: bool
|
|
254
|
-
featured: bool
|
|
255
|
-
new: bool
|
|
256
|
-
restricted: bool
|
|
250
|
+
active: Optional[bool] = None
|
|
251
|
+
archived: Optional[bool] = None
|
|
252
|
+
closed: Optional[bool] = None
|
|
253
|
+
featured: Optional[bool] = None
|
|
254
|
+
new: Optional[bool] = None
|
|
255
|
+
restricted: Optional[bool] = None
|
|
257
256
|
|
|
258
257
|
# Financial metrics
|
|
259
|
-
liquidity: float
|
|
260
|
-
volume: float
|
|
261
|
-
volume_24hr: float
|
|
262
|
-
competitive: str
|
|
258
|
+
liquidity: Optional[float] = None
|
|
259
|
+
volume: Optional[float] = None
|
|
260
|
+
volume_24hr: Optional[float] = Field(None, alias="volume24hr")
|
|
261
|
+
competitive: Optional[str] = None
|
|
263
262
|
|
|
264
263
|
# User interaction
|
|
265
264
|
comment_count: int = Field(alias="commentCount")
|
|
266
|
-
comments_enabled: bool
|
|
265
|
+
comments_enabled: Optional[bool] = Field(None, alias="commentsEnabled")
|
|
267
266
|
|
|
268
267
|
# User information
|
|
269
|
-
created_by: str
|
|
270
|
-
updated_by: str
|
|
271
|
-
|
|
268
|
+
created_by: Optional[str] = Field(None, alias="createdBy")
|
|
269
|
+
updated_by: Optional[str] = Field(None, alias="updatedBy")
|
|
272
270
|
|
|
273
271
|
class QueryEvent(BaseModel):
|
|
274
|
-
#
|
|
272
|
+
# Identifiers and description
|
|
275
273
|
id: str
|
|
274
|
+
ticker: Optional[str] = None
|
|
276
275
|
slug: str
|
|
277
276
|
title: str
|
|
277
|
+
description: Optional[str] = None
|
|
278
278
|
|
|
279
|
-
#
|
|
280
|
-
|
|
279
|
+
# Datetime
|
|
280
|
+
start_date: Optional[datetime] = Field(None, alias="startDate")
|
|
281
|
+
creation_date: Optional[datetime] = Field(None, alias="creationDate")
|
|
282
|
+
end_date: Optional[datetime] = Field(None, alias="endDate")
|
|
283
|
+
created_at: datetime = Field(alias="createdAt")
|
|
284
|
+
updated_at: Optional[datetime] = Field(None, alias="updatedAt")
|
|
285
|
+
|
|
286
|
+
# Resolution info
|
|
287
|
+
resolution_source: Optional[str] = Field(None, alias="resolutionSource")
|
|
288
|
+
|
|
289
|
+
# Media URLs
|
|
290
|
+
image: Optional[str] = None
|
|
291
|
+
icon: Optional[str] = None
|
|
281
292
|
|
|
282
293
|
# Status flags
|
|
283
294
|
active: bool
|
|
284
295
|
closed: bool
|
|
285
|
-
archived: bool
|
|
286
|
-
|
|
296
|
+
archived: Optional[bool] = None
|
|
297
|
+
new: Optional[bool] = None
|
|
298
|
+
featured: Optional[bool] = None
|
|
299
|
+
restricted: Optional[bool] = None
|
|
300
|
+
automatically_active: Optional[bool] = Field(None, alias="automaticallyActive")
|
|
301
|
+
pending_deployment: Optional[bool] = Field(None, alias="pendingDeployment")
|
|
302
|
+
deploying: Optional[bool] = None
|
|
287
303
|
|
|
288
|
-
#
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
304
|
+
# Financial metrics
|
|
305
|
+
liquidity: Optional[float] = None
|
|
306
|
+
liquidity_clob: Optional[float] = Field(None, alias="liquidityClob")
|
|
307
|
+
volume: Optional[float] = None
|
|
308
|
+
open_interest: Optional[int] = Field(None, alias="openInterest")
|
|
309
|
+
competitive: Optional[float] = None
|
|
310
|
+
volume_24hr: Optional[float] = Field(None, alias="volume24hr")
|
|
311
|
+
volume_1wk: Optional[float] = Field(None, alias="volume1wk")
|
|
312
|
+
volume_1mo: Optional[float] = Field(None, alias="volume1mo")
|
|
313
|
+
volume_1yr: Optional[float] = Field(None, alias="volume1yr")
|
|
314
|
+
|
|
315
|
+
# User interaction metrics
|
|
316
|
+
comment_count: Optional[int] = Field(None, alias="commentCount")
|
|
317
|
+
|
|
318
|
+
# Related entities
|
|
319
|
+
markets: Optional[list[GammaMarket]] = None
|
|
320
|
+
tags: Optional[list[Tag]] = None
|
|
321
|
+
|
|
322
|
+
# Feature toggles
|
|
323
|
+
enable_order_book: Optional[bool] = Field(None, alias="enableOrderBook")
|
|
324
|
+
enable_neg_risk: bool = Field(alias="enableNegRisk")
|
|
325
|
+
neg_risk_augmented: Optional[bool] = Field(None, alias="negRiskAugmented")
|
|
326
|
+
cyom: bool
|
|
327
|
+
show_all_outcomes: bool = Field(alias="showAllOutcomes")
|
|
328
|
+
show_market_images: bool = Field(alias="showMarketImages")
|
|
292
329
|
|
|
293
|
-
|
|
294
|
-
|
|
330
|
+
class Pagination(BaseModel):
|
|
331
|
+
has_more: bool = Field(alias="hasMore")
|
|
332
|
+
total_results: int = Field(alias="totalResults")
|
|
295
333
|
|
|
334
|
+
class EventList(BaseModel):
|
|
335
|
+
events: list[QueryEvent]
|
|
336
|
+
pagination: Pagination
|
|
296
337
|
|
|
297
338
|
class QueryMarket(BaseModel):
|
|
298
|
-
#
|
|
339
|
+
# Identifiers
|
|
299
340
|
slug: str
|
|
300
341
|
question: str
|
|
301
|
-
group_item_title: str
|
|
342
|
+
group_item_title: Optional[str] = Field(None, alias="groupItemTitle")
|
|
302
343
|
|
|
303
344
|
# Market data
|
|
304
|
-
outcomes: list
|
|
305
|
-
outcome_prices: Json[list[float]] | list[float]
|
|
306
|
-
last_trade_price: float
|
|
307
|
-
best_ask: float
|
|
308
|
-
best_bid: float
|
|
345
|
+
outcomes: Optional[list] = None
|
|
346
|
+
outcome_prices: Optional[Json[list[float]] | list[float]] = Field(None, alias="outcomePrices")
|
|
347
|
+
last_trade_price: Optional[float] = Field(None, alias="lastTradePrice")
|
|
348
|
+
best_ask: Optional[float] = Field(None, alias="bestAsk")
|
|
349
|
+
best_bid: Optional[float] = Field(None, alias="bestBid")
|
|
309
350
|
spread: float
|
|
310
351
|
|
|
311
352
|
# Status flags
|