pmxt-core 2.26.2 → 2.27.1

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.
@@ -68,25 +68,92 @@ paths:
68
68
  values may return inconsistent results if the exchange reorders or adds markets between requests. Use
69
69
  `loadMarkets()` once to get a stable snapshot, then paginate over `Object.values(exchange.markets)` locally.
70
70
  '/api/{exchange}/fetchMarkets':
71
- post:
71
+ get:
72
72
  summary: Fetch Markets
73
73
  operationId: fetchMarkets
74
74
  parameters:
75
75
  - $ref: '#/components/parameters/ExchangeParam'
76
- requestBody:
77
- content:
78
- application/json:
79
- schema:
80
- title: FetchMarketsRequest
81
- type: object
82
- properties:
83
- args:
84
- type: array
85
- maxItems: 1
86
- items:
87
- $ref: '#/components/schemas/MarketFilterParams'
88
- credentials:
89
- $ref: '#/components/schemas/ExchangeCredentials'
76
+ - in: query
77
+ name: limit
78
+ required: false
79
+ schema:
80
+ type: integer
81
+ default: 10000
82
+ - in: query
83
+ name: offset
84
+ required: false
85
+ schema:
86
+ type: integer
87
+ - in: query
88
+ name: sort
89
+ required: false
90
+ schema:
91
+ type: string
92
+ enum:
93
+ - volume
94
+ - liquidity
95
+ - newest
96
+ - in: query
97
+ name: status
98
+ required: false
99
+ schema:
100
+ type: string
101
+ enum:
102
+ - active
103
+ - closed
104
+ - all
105
+ description: 'Filter by market status (default: active)'
106
+ description: 'Filter by market status (default: active)'
107
+ - in: query
108
+ name: searchIn
109
+ required: false
110
+ schema:
111
+ type: string
112
+ enum:
113
+ - title
114
+ - description
115
+ - both
116
+ - in: query
117
+ name: query
118
+ required: false
119
+ schema:
120
+ type: string
121
+ - in: query
122
+ name: slug
123
+ required: false
124
+ schema:
125
+ type: string
126
+ - in: query
127
+ name: marketId
128
+ required: false
129
+ schema:
130
+ type: string
131
+ description: Direct lookup by market ID
132
+ description: Direct lookup by market ID
133
+ - in: query
134
+ name: outcomeId
135
+ required: false
136
+ schema:
137
+ type: string
138
+ description: Reverse lookup -- find market containing this outcome
139
+ description: Reverse lookup -- find market containing this outcome
140
+ - in: query
141
+ name: eventId
142
+ required: false
143
+ schema:
144
+ type: string
145
+ description: Find markets belonging to an event
146
+ description: Find markets belonging to an event
147
+ - in: query
148
+ name: page
149
+ required: false
150
+ schema:
151
+ type: integer
152
+ - in: query
153
+ name: similarityThreshold
154
+ required: false
155
+ schema:
156
+ type: number
90
157
  responses:
91
158
  '200':
92
159
  description: Fetch Markets response
@@ -105,30 +172,21 @@ paths:
105
172
  Fetch markets with optional filtering, search, or slug lookup. Always hits the exchange API — results reflect
106
173
  the live state at the time of the call.
107
174
  '/api/{exchange}/fetchMarketsPaginated':
108
- post:
175
+ get:
109
176
  summary: Fetch Markets Paginated
110
177
  operationId: fetchMarketsPaginated
111
178
  parameters:
112
179
  - $ref: '#/components/parameters/ExchangeParam'
113
- requestBody:
114
- content:
115
- application/json:
116
- schema:
117
- title: FetchMarketsPaginatedRequest
118
- type: object
119
- properties:
120
- args:
121
- type: array
122
- maxItems: 1
123
- items:
124
- type: object
125
- properties:
126
- limit:
127
- type: number
128
- cursor:
129
- type: string
130
- credentials:
131
- $ref: '#/components/schemas/ExchangeCredentials'
180
+ - in: query
181
+ name: limit
182
+ required: false
183
+ schema:
184
+ type: number
185
+ - in: query
186
+ name: cursor
187
+ required: false
188
+ schema:
189
+ type: string
132
190
  responses:
133
191
  '200':
134
192
  description: Fetch Markets Paginated response
@@ -148,25 +206,70 @@ paths:
148
206
  invalidated after `snapshotTTL` ms (configured via `ExchangeOptions` in the constructor). A request using a
149
207
  cursor from an expired snapshot throws `'Cursor has expired'`.
150
208
  '/api/{exchange}/fetchEvents':
151
- post:
209
+ get:
152
210
  summary: Fetch Events
153
211
  operationId: fetchEvents
154
212
  parameters:
155
213
  - $ref: '#/components/parameters/ExchangeParam'
156
- requestBody:
157
- content:
158
- application/json:
159
- schema:
160
- title: FetchEventsRequest
161
- type: object
162
- properties:
163
- args:
164
- type: array
165
- maxItems: 1
166
- items:
167
- $ref: '#/components/schemas/EventFetchParams'
168
- credentials:
169
- $ref: '#/components/schemas/ExchangeCredentials'
214
+ - in: query
215
+ name: query
216
+ required: false
217
+ schema:
218
+ type: string
219
+ - in: query
220
+ name: sort
221
+ required: false
222
+ schema:
223
+ type: string
224
+ enum:
225
+ - volume
226
+ - liquidity
227
+ - newest
228
+ - in: query
229
+ name: limit
230
+ required: false
231
+ schema:
232
+ type: integer
233
+ default: 10000
234
+ - in: query
235
+ name: offset
236
+ required: false
237
+ schema:
238
+ type: integer
239
+ - in: query
240
+ name: status
241
+ required: false
242
+ schema:
243
+ type: string
244
+ enum:
245
+ - active
246
+ - closed
247
+ - all
248
+ description: 'Filter by event status (default: active)'
249
+ description: 'Filter by event status (default: active)'
250
+ - in: query
251
+ name: searchIn
252
+ required: false
253
+ schema:
254
+ type: string
255
+ enum:
256
+ - title
257
+ - description
258
+ - both
259
+ - in: query
260
+ name: eventId
261
+ required: false
262
+ schema:
263
+ type: string
264
+ description: Direct lookup by event ID
265
+ description: Direct lookup by event ID
266
+ - in: query
267
+ name: slug
268
+ required: false
269
+ schema:
270
+ type: string
271
+ description: Lookup by event slug
272
+ description: Lookup by event slug
170
273
  responses:
171
274
  '200':
172
275
  description: Fetch Events response
@@ -185,25 +288,92 @@ paths:
185
288
  Fetch events with optional keyword search. Events group related markets together (e.g., "Who will be Fed Chair?"
186
289
  contains multiple candidate markets).
187
290
  '/api/{exchange}/fetchMarket':
188
- post:
291
+ get:
189
292
  summary: Fetch Market
190
293
  operationId: fetchMarket
191
294
  parameters:
192
295
  - $ref: '#/components/parameters/ExchangeParam'
193
- requestBody:
194
- content:
195
- application/json:
196
- schema:
197
- title: FetchMarketRequest
198
- type: object
199
- properties:
200
- args:
201
- type: array
202
- maxItems: 1
203
- items:
204
- $ref: '#/components/schemas/MarketFilterParams'
205
- credentials:
206
- $ref: '#/components/schemas/ExchangeCredentials'
296
+ - in: query
297
+ name: limit
298
+ required: false
299
+ schema:
300
+ type: integer
301
+ default: 10000
302
+ - in: query
303
+ name: offset
304
+ required: false
305
+ schema:
306
+ type: integer
307
+ - in: query
308
+ name: sort
309
+ required: false
310
+ schema:
311
+ type: string
312
+ enum:
313
+ - volume
314
+ - liquidity
315
+ - newest
316
+ - in: query
317
+ name: status
318
+ required: false
319
+ schema:
320
+ type: string
321
+ enum:
322
+ - active
323
+ - closed
324
+ - all
325
+ description: 'Filter by market status (default: active)'
326
+ description: 'Filter by market status (default: active)'
327
+ - in: query
328
+ name: searchIn
329
+ required: false
330
+ schema:
331
+ type: string
332
+ enum:
333
+ - title
334
+ - description
335
+ - both
336
+ - in: query
337
+ name: query
338
+ required: false
339
+ schema:
340
+ type: string
341
+ - in: query
342
+ name: slug
343
+ required: false
344
+ schema:
345
+ type: string
346
+ - in: query
347
+ name: marketId
348
+ required: false
349
+ schema:
350
+ type: string
351
+ description: Direct lookup by market ID
352
+ description: Direct lookup by market ID
353
+ - in: query
354
+ name: outcomeId
355
+ required: false
356
+ schema:
357
+ type: string
358
+ description: Reverse lookup -- find market containing this outcome
359
+ description: Reverse lookup -- find market containing this outcome
360
+ - in: query
361
+ name: eventId
362
+ required: false
363
+ schema:
364
+ type: string
365
+ description: Find markets belonging to an event
366
+ description: Find markets belonging to an event
367
+ - in: query
368
+ name: page
369
+ required: false
370
+ schema:
371
+ type: integer
372
+ - in: query
373
+ name: similarityThreshold
374
+ required: false
375
+ schema:
376
+ type: number
207
377
  responses:
208
378
  '200':
209
379
  description: Fetch Market response
@@ -220,25 +390,70 @@ paths:
220
390
  Fetch a single market by lookup parameters. Convenience wrapper around fetchMarkets() that returns a single
221
391
  result or throws MarketNotFound.
222
392
  '/api/{exchange}/fetchEvent':
223
- post:
393
+ get:
224
394
  summary: Fetch Event
225
395
  operationId: fetchEvent
226
396
  parameters:
227
397
  - $ref: '#/components/parameters/ExchangeParam'
228
- requestBody:
229
- content:
230
- application/json:
231
- schema:
232
- title: FetchEventRequest
233
- type: object
234
- properties:
235
- args:
236
- type: array
237
- maxItems: 1
238
- items:
239
- $ref: '#/components/schemas/EventFetchParams'
240
- credentials:
241
- $ref: '#/components/schemas/ExchangeCredentials'
398
+ - in: query
399
+ name: query
400
+ required: false
401
+ schema:
402
+ type: string
403
+ - in: query
404
+ name: sort
405
+ required: false
406
+ schema:
407
+ type: string
408
+ enum:
409
+ - volume
410
+ - liquidity
411
+ - newest
412
+ - in: query
413
+ name: limit
414
+ required: false
415
+ schema:
416
+ type: integer
417
+ default: 10000
418
+ - in: query
419
+ name: offset
420
+ required: false
421
+ schema:
422
+ type: integer
423
+ - in: query
424
+ name: status
425
+ required: false
426
+ schema:
427
+ type: string
428
+ enum:
429
+ - active
430
+ - closed
431
+ - all
432
+ description: 'Filter by event status (default: active)'
433
+ description: 'Filter by event status (default: active)'
434
+ - in: query
435
+ name: searchIn
436
+ required: false
437
+ schema:
438
+ type: string
439
+ enum:
440
+ - title
441
+ - description
442
+ - both
443
+ - in: query
444
+ name: eventId
445
+ required: false
446
+ schema:
447
+ type: string
448
+ description: Direct lookup by event ID
449
+ description: Direct lookup by event ID
450
+ - in: query
451
+ name: slug
452
+ required: false
453
+ schema:
454
+ type: string
455
+ description: Lookup by event slug
456
+ description: Lookup by event slug
242
457
  responses:
243
458
  '200':
244
459
  description: Fetch Event response
@@ -255,30 +470,21 @@ paths:
255
470
  Fetch a single event by lookup parameters. Convenience wrapper around fetchEvents() that returns a single result
256
471
  or throws EventNotFound.
257
472
  '/api/{exchange}/fetchOHLCV':
258
- post:
473
+ get:
259
474
  summary: Fetch O H L C V
260
475
  operationId: fetchOHLCV
261
476
  parameters:
262
477
  - $ref: '#/components/parameters/ExchangeParam'
263
- requestBody:
264
- content:
265
- application/json:
266
- schema:
267
- title: FetchOHLCVRequest
268
- type: object
269
- properties:
270
- args:
271
- type: array
272
- minItems: 2
273
- maxItems: 2
274
- items:
275
- oneOf:
276
- - type: string
277
- - $ref: '#/components/schemas/OHLCVParams'
278
- credentials:
279
- $ref: '#/components/schemas/ExchangeCredentials'
280
- required:
281
- - args
478
+ - in: query
479
+ name: id
480
+ required: true
481
+ schema:
482
+ type: string
483
+ - in: query
484
+ name: params
485
+ required: true
486
+ schema:
487
+ type: string
282
488
  responses:
283
489
  '200':
284
490
  description: Fetch O H L C V response
@@ -295,28 +501,16 @@ paths:
295
501
  $ref: '#/components/schemas/PriceCandle'
296
502
  description: Fetch historical OHLCV (candlestick) price data for a specific market outcome.
297
503
  '/api/{exchange}/fetchOrderBook':
298
- post:
504
+ get:
299
505
  summary: Fetch Order Book
300
506
  operationId: fetchOrderBook
301
507
  parameters:
302
508
  - $ref: '#/components/parameters/ExchangeParam'
303
- requestBody:
304
- content:
305
- application/json:
306
- schema:
307
- title: FetchOrderBookRequest
308
- type: object
309
- properties:
310
- args:
311
- type: array
312
- maxItems: 1
313
- items:
314
- type: string
315
- minItems: 1
316
- credentials:
317
- $ref: '#/components/schemas/ExchangeCredentials'
318
- required:
319
- - args
509
+ - in: query
510
+ name: id
511
+ required: true
512
+ schema:
513
+ type: string
320
514
  responses:
321
515
  '200':
322
516
  description: Fetch Order Book response
@@ -333,32 +527,21 @@ paths:
333
527
  Fetch the current order book (bids/asks) for a specific outcome. Essential for calculating spread, depth, and
334
528
  execution prices.
335
529
  '/api/{exchange}/fetchTrades':
336
- post:
530
+ get:
337
531
  summary: Fetch Trades
338
532
  operationId: fetchTrades
339
533
  parameters:
340
534
  - $ref: '#/components/parameters/ExchangeParam'
341
- requestBody:
342
- content:
343
- application/json:
344
- schema:
345
- title: FetchTradesRequest
346
- type: object
347
- properties:
348
- args:
349
- type: array
350
- minItems: 2
351
- maxItems: 2
352
- items:
353
- oneOf:
354
- - type: string
355
- - oneOf:
356
- - $ref: '#/components/schemas/TradesParams'
357
- - $ref: '#/components/schemas/HistoryFilterParams'
358
- credentials:
359
- $ref: '#/components/schemas/ExchangeCredentials'
360
- required:
361
- - args
535
+ - in: query
536
+ name: id
537
+ required: true
538
+ schema:
539
+ type: string
540
+ - in: query
541
+ name: params
542
+ required: true
543
+ schema:
544
+ type: string
362
545
  responses:
363
546
  '200':
364
547
  description: Fetch Trades response
@@ -521,28 +704,16 @@ paths:
521
704
  $ref: '#/components/schemas/Order'
522
705
  description: Cancel an existing open order.
523
706
  '/api/{exchange}/fetchOrder':
524
- post:
707
+ get:
525
708
  summary: Fetch Order
526
709
  operationId: fetchOrder
527
710
  parameters:
528
711
  - $ref: '#/components/parameters/ExchangeParam'
529
- requestBody:
530
- content:
531
- application/json:
532
- schema:
533
- title: FetchOrderRequest
534
- type: object
535
- properties:
536
- args:
537
- type: array
538
- maxItems: 1
539
- items:
540
- type: string
541
- minItems: 1
542
- credentials:
543
- $ref: '#/components/schemas/ExchangeCredentials'
544
- required:
545
- - args
712
+ - in: query
713
+ name: orderId
714
+ required: true
715
+ schema:
716
+ type: string
546
717
  responses:
547
718
  '200':
548
719
  description: Fetch Order response
@@ -557,25 +728,16 @@ paths:
557
728
  $ref: '#/components/schemas/Order'
558
729
  description: Fetch a specific order by ID.
559
730
  '/api/{exchange}/fetchOpenOrders':
560
- post:
731
+ get:
561
732
  summary: Fetch Open Orders
562
733
  operationId: fetchOpenOrders
563
734
  parameters:
564
735
  - $ref: '#/components/parameters/ExchangeParam'
565
- requestBody:
566
- content:
567
- application/json:
568
- schema:
569
- title: FetchOpenOrdersRequest
570
- type: object
571
- properties:
572
- args:
573
- type: array
574
- maxItems: 1
575
- items:
576
- type: string
577
- credentials:
578
- $ref: '#/components/schemas/ExchangeCredentials'
736
+ - in: query
737
+ name: marketId
738
+ required: false
739
+ schema:
740
+ type: string
579
741
  responses:
580
742
  '200':
581
743
  description: Fetch Open Orders response
@@ -592,25 +754,49 @@ paths:
592
754
  $ref: '#/components/schemas/Order'
593
755
  description: 'Fetch all open orders, optionally filtered by market.'
594
756
  '/api/{exchange}/fetchMyTrades':
595
- post:
757
+ get:
596
758
  summary: Fetch My Trades
597
759
  operationId: fetchMyTrades
598
760
  parameters:
599
761
  - $ref: '#/components/parameters/ExchangeParam'
600
- requestBody:
601
- content:
602
- application/json:
603
- schema:
604
- title: FetchMyTradesRequest
605
- type: object
606
- properties:
607
- args:
608
- type: array
609
- maxItems: 1
610
- items:
611
- $ref: '#/components/schemas/MyTradesParams'
612
- credentials:
613
- $ref: '#/components/schemas/ExchangeCredentials'
762
+ - in: query
763
+ name: outcomeId
764
+ required: false
765
+ schema:
766
+ type: string
767
+ description: Filter to specific outcome/ticker
768
+ description: Filter to specific outcome/ticker
769
+ - in: query
770
+ name: marketId
771
+ required: false
772
+ schema:
773
+ type: string
774
+ description: Filter to specific market
775
+ description: Filter to specific market
776
+ - in: query
777
+ name: since
778
+ required: false
779
+ schema:
780
+ type: string
781
+ format: date-time
782
+ - in: query
783
+ name: until
784
+ required: false
785
+ schema:
786
+ type: string
787
+ format: date-time
788
+ - in: query
789
+ name: limit
790
+ required: false
791
+ schema:
792
+ type: integer
793
+ - in: query
794
+ name: cursor
795
+ required: false
796
+ schema:
797
+ type: string
798
+ description: For Kalshi cursor pagination
799
+ description: For Kalshi cursor pagination
614
800
  responses:
615
801
  '200':
616
802
  description: Fetch My Trades response
@@ -626,25 +812,40 @@ paths:
626
812
  items:
627
813
  $ref: '#/components/schemas/UserTrade'
628
814
  '/api/{exchange}/fetchClosedOrders':
629
- post:
815
+ get:
630
816
  summary: Fetch Closed Orders
631
817
  operationId: fetchClosedOrders
632
818
  parameters:
633
819
  - $ref: '#/components/parameters/ExchangeParam'
634
- requestBody:
635
- content:
636
- application/json:
637
- schema:
638
- title: FetchClosedOrdersRequest
639
- type: object
640
- properties:
641
- args:
642
- type: array
643
- maxItems: 1
644
- items:
645
- $ref: '#/components/schemas/OrderHistoryParams'
646
- credentials:
647
- $ref: '#/components/schemas/ExchangeCredentials'
820
+ - in: query
821
+ name: marketId
822
+ required: false
823
+ schema:
824
+ type: string
825
+ description: Required for Limitless (slug)
826
+ description: Required for Limitless (slug)
827
+ - in: query
828
+ name: since
829
+ required: false
830
+ schema:
831
+ type: string
832
+ format: date-time
833
+ - in: query
834
+ name: until
835
+ required: false
836
+ schema:
837
+ type: string
838
+ format: date-time
839
+ - in: query
840
+ name: limit
841
+ required: false
842
+ schema:
843
+ type: integer
844
+ - in: query
845
+ name: cursor
846
+ required: false
847
+ schema:
848
+ type: string
648
849
  responses:
649
850
  '200':
650
851
  description: Fetch Closed Orders response
@@ -660,25 +861,40 @@ paths:
660
861
  items:
661
862
  $ref: '#/components/schemas/Order'
662
863
  '/api/{exchange}/fetchAllOrders':
663
- post:
864
+ get:
664
865
  summary: Fetch All Orders
665
866
  operationId: fetchAllOrders
666
867
  parameters:
667
868
  - $ref: '#/components/parameters/ExchangeParam'
668
- requestBody:
669
- content:
670
- application/json:
671
- schema:
672
- title: FetchAllOrdersRequest
673
- type: object
674
- properties:
675
- args:
676
- type: array
677
- maxItems: 1
678
- items:
679
- $ref: '#/components/schemas/OrderHistoryParams'
680
- credentials:
681
- $ref: '#/components/schemas/ExchangeCredentials'
869
+ - in: query
870
+ name: marketId
871
+ required: false
872
+ schema:
873
+ type: string
874
+ description: Required for Limitless (slug)
875
+ description: Required for Limitless (slug)
876
+ - in: query
877
+ name: since
878
+ required: false
879
+ schema:
880
+ type: string
881
+ format: date-time
882
+ - in: query
883
+ name: until
884
+ required: false
885
+ schema:
886
+ type: string
887
+ format: date-time
888
+ - in: query
889
+ name: limit
890
+ required: false
891
+ schema:
892
+ type: integer
893
+ - in: query
894
+ name: cursor
895
+ required: false
896
+ schema:
897
+ type: string
682
898
  responses:
683
899
  '200':
684
900
  description: Fetch All Orders response
@@ -694,25 +910,16 @@ paths:
694
910
  items:
695
911
  $ref: '#/components/schemas/Order'
696
912
  '/api/{exchange}/fetchPositions':
697
- post:
913
+ get:
698
914
  summary: Fetch Positions
699
915
  operationId: fetchPositions
700
916
  parameters:
701
917
  - $ref: '#/components/parameters/ExchangeParam'
702
- requestBody:
703
- content:
704
- application/json:
705
- schema:
706
- title: FetchPositionsRequest
707
- type: object
708
- properties:
709
- args:
710
- type: array
711
- maxItems: 1
712
- items:
713
- type: string
714
- credentials:
715
- $ref: '#/components/schemas/ExchangeCredentials'
918
+ - in: query
919
+ name: address
920
+ required: false
921
+ schema:
922
+ type: string
716
923
  responses:
717
924
  '200':
718
925
  description: Fetch Positions response
@@ -729,25 +936,16 @@ paths:
729
936
  $ref: '#/components/schemas/Position'
730
937
  description: Fetch current user positions across all markets.
731
938
  '/api/{exchange}/fetchBalance':
732
- post:
939
+ get:
733
940
  summary: Fetch Balance
734
941
  operationId: fetchBalance
735
942
  parameters:
736
943
  - $ref: '#/components/parameters/ExchangeParam'
737
- requestBody:
738
- content:
739
- application/json:
740
- schema:
741
- title: FetchBalanceRequest
742
- type: object
743
- properties:
744
- args:
745
- type: array
746
- maxItems: 1
747
- items:
748
- type: string
749
- credentials:
750
- $ref: '#/components/schemas/ExchangeCredentials'
944
+ - in: query
945
+ name: address
946
+ required: false
947
+ schema:
948
+ type: string
751
949
  responses:
752
950
  '200':
753
951
  description: Fetch Balance response