polymarket-apis 0.2.2__py3-none-any.whl → 0.2.4__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.

@@ -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
- # Basic identification
19
+ # Identifiers
19
20
  id: str
20
21
  slug: str
21
- ticker: str | None = None
22
+ ticker: Optional[str] = None
22
23
 
23
24
  # Core event information
24
25
  title: str
25
- description: str | None = None
26
- resolution_source: str | None = Field(None, alias="resolutionSource")
27
- category: str | None = None
28
-
29
- # Visual representation
30
- image: str | None = None
31
- icon: str | None = None
32
-
33
- # Temporal information
34
- start_date: datetime | None = Field(None, alias="startDate")
35
- end_date: datetime | None = Field(None, alias="endDate")
36
- creation_date: datetime | None = Field(None, alias="creationDate")
37
- created_at: datetime = Field(alias="createdAt")
38
- updated_at: datetime | None = Field(None, alias="updatedAt")
39
- published_at: TimestampWithTZ | None = None
40
- closed_time: datetime | None = Field(None, alias="closedTime")
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 | None = None
46
- new: bool | None = None
47
- featured: bool | None = None
48
- restricted: bool | None = None
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 | None = Field(None, alias="automaticallyActive")
51
+ automatically_active: Optional[bool] = Field(None, alias="automaticallyActive")
51
52
 
52
53
  # Financial metrics
53
- liquidity: float | None = None
54
- volume: float | None = None
55
- open_interest: int | None = Field(None, alias="openInterest")
56
- competitive: float | None = None
57
- volume_24hr: float | None = Field(None, alias="volume24hr")
58
- liquidity_amm: float | None = Field(None, alias="liquidityAmm")
59
- liquidity_clob: float | None = Field(None, alias="liquidityClob")
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] | None = None
63
- series: list[Series] | None = None
64
- tags: list[Tag] | None = None
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 | None = Field(None, alias="commentCount")
68
+ comment_count: Optional[int] = Field(None, alias="commentCount")
68
69
 
69
70
  # Display and functionality settings
70
- sort_by: str | None = Field(None, alias="sortBy")
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 | None = Field(None, alias="gmpChartMode")
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 | None = Field(None, alias="negRisk")
78
- neg_risk_market_id: str | None = Field(None, alias="negRiskMarketID")
79
- neg_risk_augmented: bool | None = Field(None, alias="negRiskAugmented")
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 | None = Field(None, alias="enableOrderBook")
83
+ enable_order_book: Optional[bool] = Field(None, alias="enableOrderBook")
83
84
 
84
85
 
85
86
  class GammaMarket(BaseModel):
86
- # Basic identification
87
+ # Identifiers
87
88
  id: str
88
89
  slug: str
89
90
  condition_id: Keccak256 = Field(alias="conditionId")
90
- question_id: Keccak256 | None = Field(None, alias="questionID")
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 | None = Field(None, alias="resolutionSource")
96
- outcome: list | None = None
97
- outcome_prices: Json[list[float]] | list[float] | None = Field(None, alias="outcomePrices")
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
- # Visual representation
100
- image: str | None = None
101
- icon: str | None = None
100
+ # Media URLs
101
+ image: Optional[str] = None
102
+ icon: Optional[str] = None
102
103
 
103
- # Temporal information
104
- start_date: datetime | None = Field(None, alias="startDate")
105
- end_date: datetime | None = Field(None, alias="endDate")
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 | None = Field(None, alias="updatedAt")
108
- start_date_iso: datetime | None = Field(None, alias="startDateIso")
109
- end_date_iso: datetime | None = Field(None, alias="endDateIso")
110
- deployed_timestamp: datetime | None = Field(None, alias="deployedTimestamp")
111
- accepting_orders_timestamp: datetime | None = Field(
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 | None = None
120
- featured: bool | None = None
118
+ new: Optional[bool] = None
119
+ featured: Optional[bool] = None
121
120
  restricted: bool
122
121
  ready: bool
123
- deployed: bool | None = None
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 | None = None
130
- volume: float | None = None
131
- volume_num: float | None = Field(None, alias="volumeNum")
132
- liquidity_num: float | None = Field(None, alias="liquidityNum")
133
- volume_24hr: float | None = Field(None, alias="volume24hr")
134
- volume_24hr_clob: float | None = Field(None, alias="volume24hrClob")
135
- volume_clob: float | None = Field(None, alias="volumeClob")
136
- liquidity_clob: float | None = Field(None, alias="liquidityClob")
137
- competitive: float | None = None
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 | None = Field(None, alias="enableOrderBook")
142
- order_price_min_tick_size: float | None = Field(
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 | None = Field(None, alias="orderMinSize")
146
- accepting_orders: bool | None = Field(None, alias="acceptingOrders")
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] | None = None
150
- clob_rewards: list[ClobReward] | None = Field(None, alias="clobRewards")
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 | None = Field(None, alias="commentCount")
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 | None = Field(None, alias="groupItemTitle")
160
- group_item_threshold: int | None = Field(None, alias="groupItemThreshold")
161
- token_ids: Json[list[str]] | list[str] | None = Field(None, alias="clobTokenIds")
162
- uma_bond: int | None = Field(None, alias="umaBond")
163
- uma_reward: float | None = Field(None, alias="umaReward")
164
- neg_risk: bool | None = Field(None, alias="negRisk")
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 | None = Field(None, alias="reviewStatus")
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 | None = None
172
- resolved_by: EthAddress | None = Field(None, alias="resolvedBy")
173
- has_reviewed_dates: bool | None = Field(None, alias="hasReviewedDates")
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
- # Basic identification
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 | None = Field(None, alias="rewardsDailyRate")
200
+ rewards_daily_rate: Optional[float] = Field(None, alias="rewardsDailyRate")
202
201
 
203
- # Temporal information
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
- # Basic identification
208
+ # Identifiers
210
209
  id: str
211
210
  label: str
212
211
  slug: str
213
212
 
214
213
  # Display settings
215
- force_show: bool | None = Field(None, alias="forceShow")
216
- force_hide: bool | None = Field(None, alias="forceHide")
214
+ force_show: Optional[bool] = Field(None, alias="forceShow")
215
+ force_hide: Optional[bool] = Field(None, alias="forceHide")
217
216
 
218
- # Temporal information
219
- published_at: TimestampWithTZ | datetime | None = Field(None, alias="publishedAt")
220
- created_at: datetime | None = Field(None, alias="createdAt")
221
- updated_at: datetime | None = Field(None, alias="updatedAt")
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 | None = Field(None, alias="createdBy")
225
- updated_by: int | None = Field(None, alias="updatedBy")
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
- # Basic identification
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 | None = Field(None, alias="seriesType")
237
- recurrence: str | None = None
238
- layout: str | None = None
235
+ series_type: Optional[str] = Field(None, alias="seriesType")
236
+ recurrence: Optional[str] = None
237
+ layout: Optional[str] = None
239
238
 
240
- # Visual representation
241
- icon: str | None = None
242
- image: str | None = None
239
+ # Media URLs
240
+ icon: Optional[str] = None
241
+ image: Optional[str] = None
243
242
 
244
- # Temporal information
245
- start_date: datetime | None = Field(None, alias="startDate")
243
+ # Datetime
244
+ start_date: Optional[datetime] = Field(None, alias="startDate")
246
245
  created_at: datetime = Field(alias="createdAt")
247
- updated_at: datetime | None = Field(None, alias="updatedAt")
248
- published_at: TimestampWithTZ | datetime | None = Field(None, alias="publishedAt")
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 | None = None
252
- archived: bool | None = None
253
- closed: bool | None = None
254
- featured: bool | None = None
255
- new: bool | None = None
256
- restricted: bool | None = None
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 | None = None
260
- volume: float | None = None
261
- volume_24hr: float | None = Field(None, alias="volume24hr")
262
- competitive: str | None = None
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 | None = Field(None, alias="commentsEnabled")
265
+ comments_enabled: Optional[bool] = Field(None, alias="commentsEnabled")
267
266
 
268
267
  # User information
269
- created_by: str | None = Field(None, alias="createdBy")
270
- updated_by: str | None = Field(None, alias="updatedBy")
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
- # Basic identification
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
- # Visual representation
280
- image: str | None = None
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
- neg_risk: bool | None = Field(None, alias="negRisk")
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
- # Temporal information
289
- start_date: datetime | None = Field(None, alias="startDate")
290
- end_date: datetime | None = Field(None, alias="endDate")
291
- ended: bool
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
- # Related data
294
- markets: list[QueryMarket] | None = None
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
- # Basic identification
339
+ # Identifiers
299
340
  slug: str
300
341
  question: str
301
- group_item_title: str | None = Field(None, alias="groupItemTitle")
342
+ group_item_title: Optional[str] = Field(None, alias="groupItemTitle")
302
343
 
303
344
  # Market data
304
- outcomes: list | None = None
305
- outcome_prices: Json[list[float]] | list[float] | None = Field(None, alias="outcomePrices")
306
- last_trade_price: float | None = Field(None, alias="lastTradePrice")
307
- best_ask: float | None = Field(None, alias="bestAsk")
308
- best_bid: float | None = Field(None, alias="bestBid")
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