pmxt-core 2.26.2 → 2.27.2

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,47 @@ 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: resolution
485
+ required: false
486
+ schema:
487
+ type: string
488
+ enum:
489
+ - 1m
490
+ - 5m
491
+ - 15m
492
+ - 1h
493
+ - 6h
494
+ - 1d
495
+ description: Candle interval for aggregation
496
+ description: Candle interval for aggregation
497
+ - in: query
498
+ name: start
499
+ required: false
500
+ schema:
501
+ type: string
502
+ format: date-time
503
+ - in: query
504
+ name: end
505
+ required: false
506
+ schema:
507
+ type: string
508
+ format: date-time
509
+ - in: query
510
+ name: limit
511
+ required: false
512
+ schema:
513
+ type: integer
282
514
  responses:
283
515
  '200':
284
516
  description: Fetch O H L C V response
@@ -295,28 +527,16 @@ paths:
295
527
  $ref: '#/components/schemas/PriceCandle'
296
528
  description: Fetch historical OHLCV (candlestick) price data for a specific market outcome.
297
529
  '/api/{exchange}/fetchOrderBook':
298
- post:
530
+ get:
299
531
  summary: Fetch Order Book
300
532
  operationId: fetchOrderBook
301
533
  parameters:
302
534
  - $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
535
+ - in: query
536
+ name: id
537
+ required: true
538
+ schema:
539
+ type: string
320
540
  responses:
321
541
  '200':
322
542
  description: Fetch Order Book response
@@ -333,32 +553,33 @@ paths:
333
553
  Fetch the current order book (bids/asks) for a specific outcome. Essential for calculating spread, depth, and
334
554
  execution prices.
335
555
  '/api/{exchange}/fetchTrades':
336
- post:
556
+ get:
337
557
  summary: Fetch Trades
338
558
  operationId: fetchTrades
339
559
  parameters:
340
560
  - $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
561
+ - in: query
562
+ name: id
563
+ required: true
564
+ schema:
565
+ type: string
566
+ - in: query
567
+ name: start
568
+ required: false
569
+ schema:
570
+ type: string
571
+ format: date-time
572
+ - in: query
573
+ name: end
574
+ required: false
575
+ schema:
576
+ type: string
577
+ format: date-time
578
+ - in: query
579
+ name: limit
580
+ required: false
581
+ schema:
582
+ type: integer
362
583
  responses:
363
584
  '200':
364
585
  description: Fetch Trades response
@@ -521,28 +742,16 @@ paths:
521
742
  $ref: '#/components/schemas/Order'
522
743
  description: Cancel an existing open order.
523
744
  '/api/{exchange}/fetchOrder':
524
- post:
745
+ get:
525
746
  summary: Fetch Order
526
747
  operationId: fetchOrder
527
748
  parameters:
528
749
  - $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
750
+ - in: query
751
+ name: orderId
752
+ required: true
753
+ schema:
754
+ type: string
546
755
  responses:
547
756
  '200':
548
757
  description: Fetch Order response
@@ -557,25 +766,16 @@ paths:
557
766
  $ref: '#/components/schemas/Order'
558
767
  description: Fetch a specific order by ID.
559
768
  '/api/{exchange}/fetchOpenOrders':
560
- post:
769
+ get:
561
770
  summary: Fetch Open Orders
562
771
  operationId: fetchOpenOrders
563
772
  parameters:
564
773
  - $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'
774
+ - in: query
775
+ name: marketId
776
+ required: false
777
+ schema:
778
+ type: string
579
779
  responses:
580
780
  '200':
581
781
  description: Fetch Open Orders response
@@ -592,25 +792,49 @@ paths:
592
792
  $ref: '#/components/schemas/Order'
593
793
  description: 'Fetch all open orders, optionally filtered by market.'
594
794
  '/api/{exchange}/fetchMyTrades':
595
- post:
795
+ get:
596
796
  summary: Fetch My Trades
597
797
  operationId: fetchMyTrades
598
798
  parameters:
599
799
  - $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'
800
+ - in: query
801
+ name: outcomeId
802
+ required: false
803
+ schema:
804
+ type: string
805
+ description: Filter to specific outcome/ticker
806
+ description: Filter to specific outcome/ticker
807
+ - in: query
808
+ name: marketId
809
+ required: false
810
+ schema:
811
+ type: string
812
+ description: Filter to specific market
813
+ description: Filter to specific market
814
+ - in: query
815
+ name: since
816
+ required: false
817
+ schema:
818
+ type: string
819
+ format: date-time
820
+ - in: query
821
+ name: until
822
+ required: false
823
+ schema:
824
+ type: string
825
+ format: date-time
826
+ - in: query
827
+ name: limit
828
+ required: false
829
+ schema:
830
+ type: integer
831
+ - in: query
832
+ name: cursor
833
+ required: false
834
+ schema:
835
+ type: string
836
+ description: For Kalshi cursor pagination
837
+ description: For Kalshi cursor pagination
614
838
  responses:
615
839
  '200':
616
840
  description: Fetch My Trades response
@@ -626,25 +850,40 @@ paths:
626
850
  items:
627
851
  $ref: '#/components/schemas/UserTrade'
628
852
  '/api/{exchange}/fetchClosedOrders':
629
- post:
853
+ get:
630
854
  summary: Fetch Closed Orders
631
855
  operationId: fetchClosedOrders
632
856
  parameters:
633
857
  - $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'
858
+ - in: query
859
+ name: marketId
860
+ required: false
861
+ schema:
862
+ type: string
863
+ description: Required for Limitless (slug)
864
+ description: Required for Limitless (slug)
865
+ - in: query
866
+ name: since
867
+ required: false
868
+ schema:
869
+ type: string
870
+ format: date-time
871
+ - in: query
872
+ name: until
873
+ required: false
874
+ schema:
875
+ type: string
876
+ format: date-time
877
+ - in: query
878
+ name: limit
879
+ required: false
880
+ schema:
881
+ type: integer
882
+ - in: query
883
+ name: cursor
884
+ required: false
885
+ schema:
886
+ type: string
648
887
  responses:
649
888
  '200':
650
889
  description: Fetch Closed Orders response
@@ -660,25 +899,40 @@ paths:
660
899
  items:
661
900
  $ref: '#/components/schemas/Order'
662
901
  '/api/{exchange}/fetchAllOrders':
663
- post:
902
+ get:
664
903
  summary: Fetch All Orders
665
904
  operationId: fetchAllOrders
666
905
  parameters:
667
906
  - $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'
907
+ - in: query
908
+ name: marketId
909
+ required: false
910
+ schema:
911
+ type: string
912
+ description: Required for Limitless (slug)
913
+ description: Required for Limitless (slug)
914
+ - in: query
915
+ name: since
916
+ required: false
917
+ schema:
918
+ type: string
919
+ format: date-time
920
+ - in: query
921
+ name: until
922
+ required: false
923
+ schema:
924
+ type: string
925
+ format: date-time
926
+ - in: query
927
+ name: limit
928
+ required: false
929
+ schema:
930
+ type: integer
931
+ - in: query
932
+ name: cursor
933
+ required: false
934
+ schema:
935
+ type: string
682
936
  responses:
683
937
  '200':
684
938
  description: Fetch All Orders response
@@ -694,25 +948,16 @@ paths:
694
948
  items:
695
949
  $ref: '#/components/schemas/Order'
696
950
  '/api/{exchange}/fetchPositions':
697
- post:
951
+ get:
698
952
  summary: Fetch Positions
699
953
  operationId: fetchPositions
700
954
  parameters:
701
955
  - $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'
956
+ - in: query
957
+ name: address
958
+ required: false
959
+ schema:
960
+ type: string
716
961
  responses:
717
962
  '200':
718
963
  description: Fetch Positions response
@@ -729,25 +974,16 @@ paths:
729
974
  $ref: '#/components/schemas/Position'
730
975
  description: Fetch current user positions across all markets.
731
976
  '/api/{exchange}/fetchBalance':
732
- post:
977
+ get:
733
978
  summary: Fetch Balance
734
979
  operationId: fetchBalance
735
980
  parameters:
736
981
  - $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'
982
+ - in: query
983
+ name: address
984
+ required: false
985
+ schema:
986
+ type: string
751
987
  responses:
752
988
  '200':
753
989
  description: Fetch Balance response