pmxt-core 2.27.4 → 2.27.5
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.
- package/dist/BaseExchange.d.ts +62 -0
- package/dist/exchanges/kalshi/api.d.ts +1 -1
- package/dist/exchanges/kalshi/api.js +1 -1
- package/dist/exchanges/limitless/api.d.ts +1 -1
- package/dist/exchanges/limitless/api.js +1 -1
- package/dist/exchanges/myriad/api.d.ts +1 -1
- package/dist/exchanges/myriad/api.js +1 -1
- package/dist/exchanges/opinion/api.d.ts +1 -1
- package/dist/exchanges/opinion/api.js +1 -1
- package/dist/exchanges/polymarket/api-clob.d.ts +1 -1
- package/dist/exchanges/polymarket/api-clob.js +1 -1
- package/dist/exchanges/polymarket/api-data.d.ts +1 -1
- package/dist/exchanges/polymarket/api-data.js +1 -1
- package/dist/exchanges/polymarket/api-gamma.d.ts +1 -1
- package/dist/exchanges/polymarket/api-gamma.js +1 -1
- package/dist/exchanges/probable/api.d.ts +1 -1
- package/dist/exchanges/probable/api.js +1 -1
- package/dist/server/openapi.yaml +140 -4
- package/dist/types.d.ts +69 -0
- package/package.json +3 -3
package/dist/BaseExchange.d.ts
CHANGED
|
@@ -3,24 +3,37 @@ import { SubscribedAddressSnapshot, SubscriptionOption } from './subscriber/base
|
|
|
3
3
|
import { Balance, BuiltOrder, CandleInterval, CreateOrderParams, Order, OrderBook, Position, PriceCandle, Trade, UnifiedEvent, UnifiedMarket, UserTrade } from './types';
|
|
4
4
|
import { ExecutionPriceResult } from './utils/math';
|
|
5
5
|
export interface ApiEndpoint {
|
|
6
|
+
/** HTTP verb for the endpoint (e.g. GET, POST). */
|
|
6
7
|
method: string;
|
|
8
|
+
/** URL path template, relative to the descriptor's baseUrl. */
|
|
7
9
|
path: string;
|
|
10
|
+
/** Whether this endpoint requires authenticated credentials. */
|
|
8
11
|
isPrivate?: boolean;
|
|
12
|
+
/** Identifier used to generate the implicit API method name. */
|
|
9
13
|
operationId?: string;
|
|
10
14
|
}
|
|
11
15
|
export interface ApiDescriptor {
|
|
16
|
+
/** Base URL that all endpoint paths are resolved against. */
|
|
12
17
|
baseUrl: string;
|
|
18
|
+
/** Map of endpoint key to endpoint definition used by the implicit API machinery. */
|
|
13
19
|
endpoints: Record<string, ApiEndpoint>;
|
|
14
20
|
}
|
|
15
21
|
export interface ImplicitApiMethodInfo {
|
|
22
|
+
/** Generated method name exposed on the exchange instance. */
|
|
16
23
|
name: string;
|
|
24
|
+
/** HTTP verb for the underlying endpoint. */
|
|
17
25
|
method: string;
|
|
26
|
+
/** URL path template for the underlying endpoint. */
|
|
18
27
|
path: string;
|
|
28
|
+
/** Whether the underlying endpoint requires authenticated credentials. */
|
|
19
29
|
isPrivate: boolean;
|
|
20
30
|
}
|
|
21
31
|
export interface MarketFilterParams {
|
|
32
|
+
/** Maximum number of results to return */
|
|
22
33
|
limit?: number;
|
|
34
|
+
/** Pagination offset — number of results to skip */
|
|
23
35
|
offset?: number;
|
|
36
|
+
/** Sort order for results */
|
|
24
37
|
sort?: 'volume' | 'liquidity' | 'newest';
|
|
25
38
|
status?: 'active' | 'inactive' | 'closed' | 'all';
|
|
26
39
|
searchIn?: 'title' | 'description' | 'both';
|
|
@@ -36,10 +49,14 @@ export interface MarketFetchParams extends MarketFilterParams {
|
|
|
36
49
|
}
|
|
37
50
|
export interface EventFetchParams {
|
|
38
51
|
query?: string;
|
|
52
|
+
/** Maximum number of results to return */
|
|
39
53
|
limit?: number;
|
|
54
|
+
/** Pagination offset — number of results to skip */
|
|
40
55
|
offset?: number;
|
|
56
|
+
/** Sort order for results */
|
|
41
57
|
sort?: 'volume' | 'liquidity' | 'newest';
|
|
42
58
|
status?: 'active' | 'inactive' | 'closed' | 'all';
|
|
59
|
+
/** Where to search (default: 'title') */
|
|
43
60
|
searchIn?: 'title' | 'description' | 'both';
|
|
44
61
|
eventId?: string;
|
|
45
62
|
slug?: string;
|
|
@@ -49,37 +66,53 @@ export interface EventFetchParams {
|
|
|
49
66
|
*/
|
|
50
67
|
export interface HistoryFilterParams {
|
|
51
68
|
resolution?: CandleInterval;
|
|
69
|
+
/** Start of the time range */
|
|
52
70
|
start?: Date;
|
|
71
|
+
/** End of the time range */
|
|
53
72
|
end?: Date;
|
|
73
|
+
/** Maximum number of results to return */
|
|
54
74
|
limit?: number;
|
|
55
75
|
}
|
|
56
76
|
export interface OHLCVParams {
|
|
57
77
|
resolution: CandleInterval;
|
|
78
|
+
/** Start of the time range */
|
|
58
79
|
start?: Date;
|
|
80
|
+
/** End of the time range */
|
|
59
81
|
end?: Date;
|
|
82
|
+
/** Maximum number of results to return */
|
|
60
83
|
limit?: number;
|
|
61
84
|
}
|
|
62
85
|
/**
|
|
63
86
|
* Parameters for fetching trade history. No resolution parameter - trades are discrete events.
|
|
64
87
|
*/
|
|
65
88
|
export interface TradesParams {
|
|
89
|
+
/** Start of the time range */
|
|
66
90
|
start?: Date;
|
|
91
|
+
/** End of the time range */
|
|
67
92
|
end?: Date;
|
|
93
|
+
/** Maximum number of results to return */
|
|
68
94
|
limit?: number;
|
|
69
95
|
}
|
|
70
96
|
export interface MyTradesParams {
|
|
71
97
|
outcomeId?: string;
|
|
72
98
|
marketId?: string;
|
|
99
|
+
/** Only return records after this date */
|
|
73
100
|
since?: Date;
|
|
101
|
+
/** Only return records before this date */
|
|
74
102
|
until?: Date;
|
|
103
|
+
/** Maximum number of results to return */
|
|
75
104
|
limit?: number;
|
|
76
105
|
cursor?: string;
|
|
77
106
|
}
|
|
78
107
|
export interface OrderHistoryParams {
|
|
79
108
|
marketId?: string;
|
|
109
|
+
/** Only return records after this date */
|
|
80
110
|
since?: Date;
|
|
111
|
+
/** Only return records before this date */
|
|
81
112
|
until?: Date;
|
|
113
|
+
/** Maximum number of results to return */
|
|
82
114
|
limit?: number;
|
|
115
|
+
/** Opaque pagination cursor from a previous response */
|
|
83
116
|
cursor?: string;
|
|
84
117
|
}
|
|
85
118
|
export type MarketFilterCriteria = {
|
|
@@ -89,14 +122,17 @@ export type MarketFilterCriteria = {
|
|
|
89
122
|
min?: number;
|
|
90
123
|
max?: number;
|
|
91
124
|
};
|
|
125
|
+
/** Filter by total (lifetime) volume range */
|
|
92
126
|
volume?: {
|
|
93
127
|
min?: number;
|
|
94
128
|
max?: number;
|
|
95
129
|
};
|
|
130
|
+
/** Filter by current liquidity range */
|
|
96
131
|
liquidity?: {
|
|
97
132
|
min?: number;
|
|
98
133
|
max?: number;
|
|
99
134
|
};
|
|
135
|
+
/** Filter by open interest range */
|
|
100
136
|
openInterest?: {
|
|
101
137
|
min?: number;
|
|
102
138
|
max?: number;
|
|
@@ -123,6 +159,7 @@ export type EventFilterCriteria = {
|
|
|
123
159
|
text?: string;
|
|
124
160
|
searchIn?: ('title' | 'description' | 'category' | 'tags')[];
|
|
125
161
|
category?: string;
|
|
162
|
+
/** Match events that have any of these tags */
|
|
126
163
|
tags?: string[];
|
|
127
164
|
marketCount?: {
|
|
128
165
|
min?: number;
|
|
@@ -136,25 +173,45 @@ export type EventFilterCriteria = {
|
|
|
136
173
|
export type EventFilterFunction = (event: UnifiedEvent) => boolean;
|
|
137
174
|
export type ExchangeCapability = true | false | 'emulated';
|
|
138
175
|
export interface ExchangeHas {
|
|
176
|
+
/** Whether this exchange supports fetching markets. */
|
|
139
177
|
fetchMarkets: ExchangeCapability;
|
|
178
|
+
/** Whether this exchange supports fetching events. */
|
|
140
179
|
fetchEvents: ExchangeCapability;
|
|
180
|
+
/** Whether this exchange supports fetching OHLCV candles. */
|
|
141
181
|
fetchOHLCV: ExchangeCapability;
|
|
182
|
+
/** Whether this exchange supports fetching the order book. */
|
|
142
183
|
fetchOrderBook: ExchangeCapability;
|
|
184
|
+
/** Whether this exchange supports fetching public trades. */
|
|
143
185
|
fetchTrades: ExchangeCapability;
|
|
186
|
+
/** Whether this exchange supports creating orders. */
|
|
144
187
|
createOrder: ExchangeCapability;
|
|
188
|
+
/** Whether this exchange supports cancelling orders. */
|
|
145
189
|
cancelOrder: ExchangeCapability;
|
|
190
|
+
/** Whether this exchange supports fetching a single order by id. */
|
|
146
191
|
fetchOrder: ExchangeCapability;
|
|
192
|
+
/** Whether this exchange supports fetching open orders. */
|
|
147
193
|
fetchOpenOrders: ExchangeCapability;
|
|
194
|
+
/** Whether this exchange supports fetching account positions. */
|
|
148
195
|
fetchPositions: ExchangeCapability;
|
|
196
|
+
/** Whether this exchange supports fetching account balances. */
|
|
149
197
|
fetchBalance: ExchangeCapability;
|
|
198
|
+
/** Whether this exchange supports subscribing to an on-chain address for updates. */
|
|
150
199
|
watchAddress: ExchangeCapability;
|
|
200
|
+
/** Whether this exchange supports unsubscribing from a watched address. */
|
|
151
201
|
unwatchAddress: ExchangeCapability;
|
|
202
|
+
/** Whether this exchange supports streaming order book updates. */
|
|
152
203
|
watchOrderBook: ExchangeCapability;
|
|
204
|
+
/** Whether this exchange supports streaming trade updates. */
|
|
153
205
|
watchTrades: ExchangeCapability;
|
|
206
|
+
/** Whether this exchange supports fetching the authenticated user's trade history. */
|
|
154
207
|
fetchMyTrades: ExchangeCapability;
|
|
208
|
+
/** Whether this exchange supports fetching closed orders. */
|
|
155
209
|
fetchClosedOrders: ExchangeCapability;
|
|
210
|
+
/** Whether this exchange supports fetching all orders (open and closed). */
|
|
156
211
|
fetchAllOrders: ExchangeCapability;
|
|
212
|
+
/** Whether this exchange supports building a signed order without submitting it. */
|
|
157
213
|
buildOrder: ExchangeCapability;
|
|
214
|
+
/** Whether this exchange supports submitting a pre-built order. */
|
|
158
215
|
submitOrder: ExchangeCapability;
|
|
159
216
|
}
|
|
160
217
|
/**
|
|
@@ -162,7 +219,9 @@ export interface ExchangeHas {
|
|
|
162
219
|
*/
|
|
163
220
|
export interface ExchangeCredentials {
|
|
164
221
|
apiKey?: string;
|
|
222
|
+
/** Standard API secret for HMAC-authenticated exchanges */
|
|
165
223
|
apiSecret?: string;
|
|
224
|
+
/** Standard API passphrase for HMAC-authenticated exchanges */
|
|
166
225
|
passphrase?: string;
|
|
167
226
|
/** Metaculus: `Authorization: Token <apiToken>` for higher rate limits */
|
|
168
227
|
apiToken?: string;
|
|
@@ -180,8 +239,11 @@ export interface ExchangeOptions {
|
|
|
180
239
|
}
|
|
181
240
|
/** Shape returned by fetchMarketsPaginated */
|
|
182
241
|
export interface PaginatedMarketsResult {
|
|
242
|
+
/** The page of unified markets */
|
|
183
243
|
data: UnifiedMarket[];
|
|
244
|
+
/** Total number of markets in the snapshot */
|
|
184
245
|
total: number;
|
|
246
|
+
/** Cursor to pass to the next call, or undefined if this is the last page */
|
|
185
247
|
nextCursor?: string;
|
|
186
248
|
}
|
|
187
249
|
export declare abstract class PredictionMarketExchange {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Auto-generated from /home/runner/work/pmxt/pmxt/core/specs/kalshi/Kalshi.yaml
|
|
3
|
-
* Generated at: 2026-04-09T14:
|
|
3
|
+
* Generated at: 2026-04-09T14:47:02.060Z
|
|
4
4
|
* Do not edit manually -- run "npm run fetch:openapi" to regenerate.
|
|
5
5
|
*/
|
|
6
6
|
export declare const kalshiApiSpec: {
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.kalshiApiSpec = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* Auto-generated from /home/runner/work/pmxt/pmxt/core/specs/kalshi/Kalshi.yaml
|
|
6
|
-
* Generated at: 2026-04-09T14:
|
|
6
|
+
* Generated at: 2026-04-09T14:47:02.060Z
|
|
7
7
|
* Do not edit manually -- run "npm run fetch:openapi" to regenerate.
|
|
8
8
|
*/
|
|
9
9
|
exports.kalshiApiSpec = {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Auto-generated from /home/runner/work/pmxt/pmxt/core/specs/limitless/Limitless.yaml
|
|
3
|
-
* Generated at: 2026-04-09T14:
|
|
3
|
+
* Generated at: 2026-04-09T14:47:02.110Z
|
|
4
4
|
* Do not edit manually -- run "npm run fetch:openapi" to regenerate.
|
|
5
5
|
*/
|
|
6
6
|
export declare const limitlessApiSpec: {
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.limitlessApiSpec = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* Auto-generated from /home/runner/work/pmxt/pmxt/core/specs/limitless/Limitless.yaml
|
|
6
|
-
* Generated at: 2026-04-09T14:
|
|
6
|
+
* Generated at: 2026-04-09T14:47:02.110Z
|
|
7
7
|
* Do not edit manually -- run "npm run fetch:openapi" to regenerate.
|
|
8
8
|
*/
|
|
9
9
|
exports.limitlessApiSpec = {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Auto-generated from /home/runner/work/pmxt/pmxt/core/specs/myriad/myriad.yaml
|
|
3
|
-
* Generated at: 2026-04-09T14:
|
|
3
|
+
* Generated at: 2026-04-09T14:47:02.124Z
|
|
4
4
|
* Do not edit manually -- run "npm run fetch:openapi" to regenerate.
|
|
5
5
|
*/
|
|
6
6
|
export declare const myriadApiSpec: {
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.myriadApiSpec = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* Auto-generated from /home/runner/work/pmxt/pmxt/core/specs/myriad/myriad.yaml
|
|
6
|
-
* Generated at: 2026-04-09T14:
|
|
6
|
+
* Generated at: 2026-04-09T14:47:02.124Z
|
|
7
7
|
* Do not edit manually -- run "npm run fetch:openapi" to regenerate.
|
|
8
8
|
*/
|
|
9
9
|
exports.myriadApiSpec = {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Auto-generated from /home/runner/work/pmxt/pmxt/core/specs/opinion/opinion-openapi.yaml
|
|
3
|
-
* Generated at: 2026-04-09T14:
|
|
3
|
+
* Generated at: 2026-04-09T14:47:02.129Z
|
|
4
4
|
* Do not edit manually -- run "npm run fetch:openapi" to regenerate.
|
|
5
5
|
*/
|
|
6
6
|
export declare const opinionApiSpec: {
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.opinionApiSpec = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* Auto-generated from /home/runner/work/pmxt/pmxt/core/specs/opinion/opinion-openapi.yaml
|
|
6
|
-
* Generated at: 2026-04-09T14:
|
|
6
|
+
* Generated at: 2026-04-09T14:47:02.129Z
|
|
7
7
|
* Do not edit manually -- run "npm run fetch:openapi" to regenerate.
|
|
8
8
|
*/
|
|
9
9
|
exports.opinionApiSpec = {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Auto-generated from /home/runner/work/pmxt/pmxt/core/specs/polymarket/PolymarketClobAPI.yaml
|
|
3
|
-
* Generated at: 2026-04-09T14:
|
|
3
|
+
* Generated at: 2026-04-09T14:47:02.070Z
|
|
4
4
|
* Do not edit manually -- run "npm run fetch:openapi" to regenerate.
|
|
5
5
|
*/
|
|
6
6
|
export declare const polymarketClobSpec: {
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.polymarketClobSpec = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* Auto-generated from /home/runner/work/pmxt/pmxt/core/specs/polymarket/PolymarketClobAPI.yaml
|
|
6
|
-
* Generated at: 2026-04-09T14:
|
|
6
|
+
* Generated at: 2026-04-09T14:47:02.070Z
|
|
7
7
|
* Do not edit manually -- run "npm run fetch:openapi" to regenerate.
|
|
8
8
|
*/
|
|
9
9
|
exports.polymarketClobSpec = {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Auto-generated from /home/runner/work/pmxt/pmxt/core/specs/polymarket/Polymarket_Data_API.yaml
|
|
3
|
-
* Generated at: 2026-04-09T14:
|
|
3
|
+
* Generated at: 2026-04-09T14:47:02.088Z
|
|
4
4
|
* Do not edit manually -- run "npm run fetch:openapi" to regenerate.
|
|
5
5
|
*/
|
|
6
6
|
export declare const polymarketDataSpec: {
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.polymarketDataSpec = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* Auto-generated from /home/runner/work/pmxt/pmxt/core/specs/polymarket/Polymarket_Data_API.yaml
|
|
6
|
-
* Generated at: 2026-04-09T14:
|
|
6
|
+
* Generated at: 2026-04-09T14:47:02.088Z
|
|
7
7
|
* Do not edit manually -- run "npm run fetch:openapi" to regenerate.
|
|
8
8
|
*/
|
|
9
9
|
exports.polymarketDataSpec = {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Auto-generated from /home/runner/work/pmxt/pmxt/core/specs/polymarket/PolymarketGammaAPI.yaml
|
|
3
|
-
* Generated at: 2026-04-09T14:
|
|
3
|
+
* Generated at: 2026-04-09T14:47:02.084Z
|
|
4
4
|
* Do not edit manually -- run "npm run fetch:openapi" to regenerate.
|
|
5
5
|
*/
|
|
6
6
|
export declare const polymarketGammaSpec: {
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.polymarketGammaSpec = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* Auto-generated from /home/runner/work/pmxt/pmxt/core/specs/polymarket/PolymarketGammaAPI.yaml
|
|
6
|
-
* Generated at: 2026-04-09T14:
|
|
6
|
+
* Generated at: 2026-04-09T14:47:02.084Z
|
|
7
7
|
* Do not edit manually -- run "npm run fetch:openapi" to regenerate.
|
|
8
8
|
*/
|
|
9
9
|
exports.polymarketGammaSpec = {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Auto-generated from /home/runner/work/pmxt/pmxt/core/specs/probable/probable.yaml
|
|
3
|
-
* Generated at: 2026-04-09T14:
|
|
3
|
+
* Generated at: 2026-04-09T14:47:02.118Z
|
|
4
4
|
* Do not edit manually -- run "npm run fetch:openapi" to regenerate.
|
|
5
5
|
*/
|
|
6
6
|
export declare const probableApiSpec: {
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.probableApiSpec = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* Auto-generated from /home/runner/work/pmxt/pmxt/core/specs/probable/probable.yaml
|
|
6
|
-
* Generated at: 2026-04-09T14:
|
|
6
|
+
* Generated at: 2026-04-09T14:47:02.118Z
|
|
7
7
|
* Do not edit manually -- run "npm run fetch:openapi" to regenerate.
|
|
8
8
|
*/
|
|
9
9
|
exports.probableApiSpec = {
|
package/dist/server/openapi.yaml
CHANGED
|
@@ -78,11 +78,13 @@ paths:
|
|
|
78
78
|
required: false
|
|
79
79
|
schema:
|
|
80
80
|
type: number
|
|
81
|
+
description: Maximum number of results to return
|
|
81
82
|
- in: query
|
|
82
83
|
name: offset
|
|
83
84
|
required: false
|
|
84
85
|
schema:
|
|
85
86
|
type: number
|
|
87
|
+
description: Pagination offset — number of results to skip
|
|
86
88
|
- in: query
|
|
87
89
|
name: sort
|
|
88
90
|
required: false
|
|
@@ -92,6 +94,7 @@ paths:
|
|
|
92
94
|
- volume
|
|
93
95
|
- liquidity
|
|
94
96
|
- newest
|
|
97
|
+
description: Sort order for results
|
|
95
98
|
- in: query
|
|
96
99
|
name: status
|
|
97
100
|
required: false
|
|
@@ -223,11 +226,13 @@ paths:
|
|
|
223
226
|
required: false
|
|
224
227
|
schema:
|
|
225
228
|
type: number
|
|
229
|
+
description: Maximum number of results to return
|
|
226
230
|
- in: query
|
|
227
231
|
name: offset
|
|
228
232
|
required: false
|
|
229
233
|
schema:
|
|
230
234
|
type: number
|
|
235
|
+
description: Pagination offset — number of results to skip
|
|
231
236
|
- in: query
|
|
232
237
|
name: sort
|
|
233
238
|
required: false
|
|
@@ -237,6 +242,7 @@ paths:
|
|
|
237
242
|
- volume
|
|
238
243
|
- liquidity
|
|
239
244
|
- newest
|
|
245
|
+
description: Sort order for results
|
|
240
246
|
- in: query
|
|
241
247
|
name: status
|
|
242
248
|
required: false
|
|
@@ -257,6 +263,7 @@ paths:
|
|
|
257
263
|
- title
|
|
258
264
|
- description
|
|
259
265
|
- both
|
|
266
|
+
description: 'Where to search (default: ''title'')'
|
|
260
267
|
- in: query
|
|
261
268
|
name: eventId
|
|
262
269
|
required: false
|
|
@@ -297,11 +304,13 @@ paths:
|
|
|
297
304
|
required: false
|
|
298
305
|
schema:
|
|
299
306
|
type: number
|
|
307
|
+
description: Maximum number of results to return
|
|
300
308
|
- in: query
|
|
301
309
|
name: offset
|
|
302
310
|
required: false
|
|
303
311
|
schema:
|
|
304
312
|
type: number
|
|
313
|
+
description: Pagination offset — number of results to skip
|
|
305
314
|
- in: query
|
|
306
315
|
name: sort
|
|
307
316
|
required: false
|
|
@@ -311,6 +320,7 @@ paths:
|
|
|
311
320
|
- volume
|
|
312
321
|
- liquidity
|
|
313
322
|
- newest
|
|
323
|
+
description: Sort order for results
|
|
314
324
|
- in: query
|
|
315
325
|
name: status
|
|
316
326
|
required: false
|
|
@@ -406,11 +416,13 @@ paths:
|
|
|
406
416
|
required: false
|
|
407
417
|
schema:
|
|
408
418
|
type: number
|
|
419
|
+
description: Maximum number of results to return
|
|
409
420
|
- in: query
|
|
410
421
|
name: offset
|
|
411
422
|
required: false
|
|
412
423
|
schema:
|
|
413
424
|
type: number
|
|
425
|
+
description: Pagination offset — number of results to skip
|
|
414
426
|
- in: query
|
|
415
427
|
name: sort
|
|
416
428
|
required: false
|
|
@@ -420,6 +432,7 @@ paths:
|
|
|
420
432
|
- volume
|
|
421
433
|
- liquidity
|
|
422
434
|
- newest
|
|
435
|
+
description: Sort order for results
|
|
423
436
|
- in: query
|
|
424
437
|
name: status
|
|
425
438
|
required: false
|
|
@@ -440,6 +453,7 @@ paths:
|
|
|
440
453
|
- title
|
|
441
454
|
- description
|
|
442
455
|
- both
|
|
456
|
+
description: 'Where to search (default: ''title'')'
|
|
443
457
|
- in: query
|
|
444
458
|
name: eventId
|
|
445
459
|
required: false
|
|
@@ -497,17 +511,20 @@ paths:
|
|
|
497
511
|
schema:
|
|
498
512
|
type: string
|
|
499
513
|
format: date-time
|
|
514
|
+
description: Start of the time range
|
|
500
515
|
- in: query
|
|
501
516
|
name: end
|
|
502
517
|
required: false
|
|
503
518
|
schema:
|
|
504
519
|
type: string
|
|
505
520
|
format: date-time
|
|
521
|
+
description: End of the time range
|
|
506
522
|
- in: query
|
|
507
523
|
name: limit
|
|
508
524
|
required: false
|
|
509
525
|
schema:
|
|
510
526
|
type: number
|
|
527
|
+
description: Maximum number of results to return
|
|
511
528
|
responses:
|
|
512
529
|
'200':
|
|
513
530
|
description: Fetch O H L C V response
|
|
@@ -566,17 +583,20 @@ paths:
|
|
|
566
583
|
schema:
|
|
567
584
|
type: string
|
|
568
585
|
format: date-time
|
|
586
|
+
description: Start of the time range
|
|
569
587
|
- in: query
|
|
570
588
|
name: end
|
|
571
589
|
required: false
|
|
572
590
|
schema:
|
|
573
591
|
type: string
|
|
574
592
|
format: date-time
|
|
593
|
+
description: End of the time range
|
|
575
594
|
- in: query
|
|
576
595
|
name: limit
|
|
577
596
|
required: false
|
|
578
597
|
schema:
|
|
579
598
|
type: number
|
|
599
|
+
description: Maximum number of results to return
|
|
580
600
|
responses:
|
|
581
601
|
'200':
|
|
582
602
|
description: Fetch Trades response
|
|
@@ -812,17 +832,20 @@ paths:
|
|
|
812
832
|
schema:
|
|
813
833
|
type: string
|
|
814
834
|
format: date-time
|
|
835
|
+
description: Only return records after this date
|
|
815
836
|
- in: query
|
|
816
837
|
name: until
|
|
817
838
|
required: false
|
|
818
839
|
schema:
|
|
819
840
|
type: string
|
|
820
841
|
format: date-time
|
|
842
|
+
description: Only return records before this date
|
|
821
843
|
- in: query
|
|
822
844
|
name: limit
|
|
823
845
|
required: false
|
|
824
846
|
schema:
|
|
825
847
|
type: number
|
|
848
|
+
description: Maximum number of results to return
|
|
826
849
|
- in: query
|
|
827
850
|
name: cursor
|
|
828
851
|
required: false
|
|
@@ -861,22 +884,26 @@ paths:
|
|
|
861
884
|
schema:
|
|
862
885
|
type: string
|
|
863
886
|
format: date-time
|
|
887
|
+
description: Only return records after this date
|
|
864
888
|
- in: query
|
|
865
889
|
name: until
|
|
866
890
|
required: false
|
|
867
891
|
schema:
|
|
868
892
|
type: string
|
|
869
893
|
format: date-time
|
|
894
|
+
description: Only return records before this date
|
|
870
895
|
- in: query
|
|
871
896
|
name: limit
|
|
872
897
|
required: false
|
|
873
898
|
schema:
|
|
874
899
|
type: number
|
|
900
|
+
description: Maximum number of results to return
|
|
875
901
|
- in: query
|
|
876
902
|
name: cursor
|
|
877
903
|
required: false
|
|
878
904
|
schema:
|
|
879
905
|
type: string
|
|
906
|
+
description: Opaque pagination cursor from a previous response
|
|
880
907
|
responses:
|
|
881
908
|
'200':
|
|
882
909
|
description: Fetch Closed Orders response
|
|
@@ -909,22 +936,26 @@ paths:
|
|
|
909
936
|
schema:
|
|
910
937
|
type: string
|
|
911
938
|
format: date-time
|
|
939
|
+
description: Only return records after this date
|
|
912
940
|
- in: query
|
|
913
941
|
name: until
|
|
914
942
|
required: false
|
|
915
943
|
schema:
|
|
916
944
|
type: string
|
|
917
945
|
format: date-time
|
|
946
|
+
description: Only return records before this date
|
|
918
947
|
- in: query
|
|
919
948
|
name: limit
|
|
920
949
|
required: false
|
|
921
950
|
schema:
|
|
922
951
|
type: number
|
|
952
|
+
description: Maximum number of results to return
|
|
923
953
|
- in: query
|
|
924
954
|
name: cursor
|
|
925
955
|
required: false
|
|
926
956
|
schema:
|
|
927
957
|
type: string
|
|
958
|
+
description: Opaque pagination cursor from a previous response
|
|
928
959
|
responses:
|
|
929
960
|
'200':
|
|
930
961
|
description: Fetch All Orders response
|
|
@@ -1535,36 +1566,48 @@ components:
|
|
|
1535
1566
|
description: Link to parent event
|
|
1536
1567
|
title:
|
|
1537
1568
|
type: string
|
|
1569
|
+
description: 'The market title (e.g., "Will BTC close above $100k on Dec 31?").'
|
|
1538
1570
|
description:
|
|
1539
1571
|
type: string
|
|
1572
|
+
description: Long-form market description or resolution criteria.
|
|
1540
1573
|
slug:
|
|
1541
1574
|
type: string
|
|
1575
|
+
description: URL-friendly slug for the market.
|
|
1542
1576
|
outcomes:
|
|
1543
1577
|
type: array
|
|
1544
1578
|
items:
|
|
1545
1579
|
$ref: '#/components/schemas/MarketOutcome'
|
|
1580
|
+
description: The possible outcomes for this market.
|
|
1546
1581
|
resolutionDate:
|
|
1547
1582
|
type: string
|
|
1548
1583
|
format: date-time
|
|
1584
|
+
description: When the market is scheduled to resolve.
|
|
1549
1585
|
volume24h:
|
|
1550
1586
|
type: number
|
|
1587
|
+
description: Trading volume over the past 24 hours (USD).
|
|
1551
1588
|
volume:
|
|
1552
1589
|
type: number
|
|
1553
1590
|
description: Total / Lifetime volume
|
|
1554
1591
|
liquidity:
|
|
1555
1592
|
type: number
|
|
1593
|
+
description: Current market liquidity (USD).
|
|
1556
1594
|
openInterest:
|
|
1557
1595
|
type: number
|
|
1596
|
+
description: Total value of outstanding contracts (USD).
|
|
1558
1597
|
url:
|
|
1559
1598
|
type: string
|
|
1599
|
+
description: Canonical URL to view the market on the venue.
|
|
1560
1600
|
image:
|
|
1561
1601
|
type: string
|
|
1602
|
+
description: Optional image URL for the market.
|
|
1562
1603
|
category:
|
|
1563
1604
|
type: string
|
|
1605
|
+
description: 'Optional category label (e.g., "Politics", "Crypto").'
|
|
1564
1606
|
tags:
|
|
1565
1607
|
type: array
|
|
1566
1608
|
items:
|
|
1567
1609
|
type: string
|
|
1610
|
+
description: Optional list of tags associated with the market.
|
|
1568
1611
|
tickSize:
|
|
1569
1612
|
type: number
|
|
1570
1613
|
description: 'Minimum price increment (e.g., 0.01, 0.001)'
|
|
@@ -1575,13 +1618,21 @@ components:
|
|
|
1575
1618
|
type: string
|
|
1576
1619
|
description: 'On-chain contract / condition identifier where applicable (Polymarket conditionId, etc.).'
|
|
1577
1620
|
'yes':
|
|
1578
|
-
|
|
1621
|
+
allOf:
|
|
1622
|
+
- $ref: '#/components/schemas/MarketOutcome'
|
|
1623
|
+
description: Convenience accessor for the YES outcome on a binary market.
|
|
1579
1624
|
'no':
|
|
1580
|
-
|
|
1625
|
+
allOf:
|
|
1626
|
+
- $ref: '#/components/schemas/MarketOutcome'
|
|
1627
|
+
description: Convenience accessor for the NO outcome on a binary market.
|
|
1581
1628
|
up:
|
|
1582
|
-
|
|
1629
|
+
allOf:
|
|
1630
|
+
- $ref: '#/components/schemas/MarketOutcome'
|
|
1631
|
+
description: Convenience accessor for the UP outcome on a binary market.
|
|
1583
1632
|
down:
|
|
1584
|
-
|
|
1633
|
+
allOf:
|
|
1634
|
+
- $ref: '#/components/schemas/MarketOutcome'
|
|
1635
|
+
description: Convenience accessor for the DOWN outcome on a binary market.
|
|
1585
1636
|
required:
|
|
1586
1637
|
- marketId
|
|
1587
1638
|
- title
|
|
@@ -1602,10 +1653,13 @@ components:
|
|
|
1602
1653
|
description: The market this outcome belongs to (set automatically when outcomes are built)
|
|
1603
1654
|
label:
|
|
1604
1655
|
type: string
|
|
1656
|
+
description: 'Human-readable outcome label (e.g., "Yes", "No", candidate name).'
|
|
1605
1657
|
price:
|
|
1606
1658
|
type: number
|
|
1659
|
+
description: Probability between 0.0 and 1.0.
|
|
1607
1660
|
priceChange24h:
|
|
1608
1661
|
type: number
|
|
1662
|
+
description: 'Change in price over the past 24 hours, as an absolute probability delta.'
|
|
1609
1663
|
metadata:
|
|
1610
1664
|
type: object
|
|
1611
1665
|
additionalProperties: {}
|
|
@@ -1620,31 +1674,41 @@ components:
|
|
|
1620
1674
|
properties:
|
|
1621
1675
|
id:
|
|
1622
1676
|
type: string
|
|
1677
|
+
description: The unique identifier for this event.
|
|
1623
1678
|
title:
|
|
1624
1679
|
type: string
|
|
1680
|
+
description: 'The event title (e.g., "Who will be Fed Chair?").'
|
|
1625
1681
|
description:
|
|
1626
1682
|
type: string
|
|
1683
|
+
description: Long-form event description.
|
|
1627
1684
|
slug:
|
|
1628
1685
|
type: string
|
|
1686
|
+
description: URL-friendly slug for the event.
|
|
1629
1687
|
markets:
|
|
1630
1688
|
type: array
|
|
1631
1689
|
items:
|
|
1632
1690
|
$ref: '#/components/schemas/UnifiedMarket'
|
|
1691
|
+
description: Markets grouped under this event.
|
|
1633
1692
|
volume24h:
|
|
1634
1693
|
type: number
|
|
1694
|
+
description: Trading volume over the past 24 hours (USD).
|
|
1635
1695
|
volume:
|
|
1636
1696
|
type: number
|
|
1637
1697
|
description: Total / Lifetime volume (sum across markets; undefined if no market provides it)
|
|
1638
1698
|
url:
|
|
1639
1699
|
type: string
|
|
1700
|
+
description: Canonical URL to view the event on the venue.
|
|
1640
1701
|
image:
|
|
1641
1702
|
type: string
|
|
1703
|
+
description: Optional image URL for the event.
|
|
1642
1704
|
category:
|
|
1643
1705
|
type: string
|
|
1706
|
+
description: 'Optional category label (e.g., "Politics", "Sports").'
|
|
1644
1707
|
tags:
|
|
1645
1708
|
type: array
|
|
1646
1709
|
items:
|
|
1647
1710
|
type: string
|
|
1711
|
+
description: Optional list of tags associated with the event.
|
|
1648
1712
|
required:
|
|
1649
1713
|
- id
|
|
1650
1714
|
- title
|
|
@@ -1658,16 +1722,22 @@ components:
|
|
|
1658
1722
|
properties:
|
|
1659
1723
|
timestamp:
|
|
1660
1724
|
type: number
|
|
1725
|
+
description: Unix timestamp in milliseconds marking the start of the candle.
|
|
1661
1726
|
open:
|
|
1662
1727
|
type: number
|
|
1728
|
+
description: Opening price for the interval (probability between 0.0 and 1.0).
|
|
1663
1729
|
high:
|
|
1664
1730
|
type: number
|
|
1731
|
+
description: Highest price during the interval (probability between 0.0 and 1.0).
|
|
1665
1732
|
low:
|
|
1666
1733
|
type: number
|
|
1734
|
+
description: Lowest price during the interval (probability between 0.0 and 1.0).
|
|
1667
1735
|
close:
|
|
1668
1736
|
type: number
|
|
1737
|
+
description: Closing price for the interval (probability between 0.0 and 1.0).
|
|
1669
1738
|
volume:
|
|
1670
1739
|
type: number
|
|
1740
|
+
description: Trading volume during the interval.
|
|
1671
1741
|
required:
|
|
1672
1742
|
- timestamp
|
|
1673
1743
|
- open
|
|
@@ -1681,12 +1751,15 @@ components:
|
|
|
1681
1751
|
type: array
|
|
1682
1752
|
items:
|
|
1683
1753
|
$ref: '#/components/schemas/OrderLevel'
|
|
1754
|
+
description: 'Order book bid levels, sorted by price descending.'
|
|
1684
1755
|
asks:
|
|
1685
1756
|
type: array
|
|
1686
1757
|
items:
|
|
1687
1758
|
$ref: '#/components/schemas/OrderLevel'
|
|
1759
|
+
description: 'Order book ask levels, sorted by price ascending.'
|
|
1688
1760
|
timestamp:
|
|
1689
1761
|
type: number
|
|
1762
|
+
description: Unix timestamp in milliseconds when the snapshot was taken.
|
|
1690
1763
|
required:
|
|
1691
1764
|
- bids
|
|
1692
1765
|
- asks
|
|
@@ -1707,20 +1780,26 @@ components:
|
|
|
1707
1780
|
properties:
|
|
1708
1781
|
id:
|
|
1709
1782
|
type: string
|
|
1783
|
+
description: The unique identifier for this trade.
|
|
1710
1784
|
timestamp:
|
|
1711
1785
|
type: number
|
|
1786
|
+
description: Unix timestamp in milliseconds when the trade executed.
|
|
1712
1787
|
price:
|
|
1713
1788
|
type: number
|
|
1789
|
+
description: Probability between 0.0 and 1.0.
|
|
1714
1790
|
amount:
|
|
1715
1791
|
type: number
|
|
1792
|
+
description: Size of the trade in contracts/shares.
|
|
1716
1793
|
side:
|
|
1717
1794
|
type: string
|
|
1718
1795
|
enum:
|
|
1719
1796
|
- buy
|
|
1720
1797
|
- sell
|
|
1721
1798
|
- unknown
|
|
1799
|
+
description: Trade side from the taker's perspective.
|
|
1722
1800
|
outcomeId:
|
|
1723
1801
|
type: string
|
|
1802
|
+
description: The outcome this trade is for (if known).
|
|
1724
1803
|
required:
|
|
1725
1804
|
- id
|
|
1726
1805
|
- timestamp
|
|
@@ -1732,22 +1811,29 @@ components:
|
|
|
1732
1811
|
properties:
|
|
1733
1812
|
id:
|
|
1734
1813
|
type: string
|
|
1814
|
+
description: The unique identifier for this trade.
|
|
1735
1815
|
timestamp:
|
|
1736
1816
|
type: number
|
|
1817
|
+
description: Unix timestamp in milliseconds when the trade executed.
|
|
1737
1818
|
price:
|
|
1738
1819
|
type: number
|
|
1820
|
+
description: Probability between 0.0 and 1.0.
|
|
1739
1821
|
amount:
|
|
1740
1822
|
type: number
|
|
1823
|
+
description: Size of the trade in contracts/shares.
|
|
1741
1824
|
side:
|
|
1742
1825
|
type: string
|
|
1743
1826
|
enum:
|
|
1744
1827
|
- buy
|
|
1745
1828
|
- sell
|
|
1746
1829
|
- unknown
|
|
1830
|
+
description: Trade side from the taker's perspective.
|
|
1747
1831
|
outcomeId:
|
|
1748
1832
|
type: string
|
|
1833
|
+
description: The outcome this trade is for (if known).
|
|
1749
1834
|
orderId:
|
|
1750
1835
|
type: string
|
|
1836
|
+
description: 'The order that produced this trade, if known.'
|
|
1751
1837
|
required:
|
|
1752
1838
|
- id
|
|
1753
1839
|
- timestamp
|
|
@@ -1759,20 +1845,25 @@ components:
|
|
|
1759
1845
|
properties:
|
|
1760
1846
|
id:
|
|
1761
1847
|
type: string
|
|
1848
|
+
description: The exchange-assigned order identifier.
|
|
1762
1849
|
marketId:
|
|
1763
1850
|
type: string
|
|
1851
|
+
description: The market this order was placed on.
|
|
1764
1852
|
outcomeId:
|
|
1765
1853
|
type: string
|
|
1854
|
+
description: The outcome this order was placed on.
|
|
1766
1855
|
side:
|
|
1767
1856
|
type: string
|
|
1768
1857
|
enum:
|
|
1769
1858
|
- buy
|
|
1770
1859
|
- sell
|
|
1860
|
+
description: 'Order side: buy or sell.'
|
|
1771
1861
|
type:
|
|
1772
1862
|
type: string
|
|
1773
1863
|
enum:
|
|
1774
1864
|
- market
|
|
1775
1865
|
- limit
|
|
1866
|
+
description: 'Order type: market (execute immediately) or limit (resting at a price).'
|
|
1776
1867
|
price:
|
|
1777
1868
|
type: number
|
|
1778
1869
|
description: For limit orders
|
|
@@ -1787,6 +1878,7 @@ components:
|
|
|
1787
1878
|
- filled
|
|
1788
1879
|
- cancelled
|
|
1789
1880
|
- rejected
|
|
1881
|
+
description: Lifecycle status of the order.
|
|
1790
1882
|
filled:
|
|
1791
1883
|
type: number
|
|
1792
1884
|
description: Amount filled
|
|
@@ -1795,8 +1887,10 @@ components:
|
|
|
1795
1887
|
description: Amount remaining
|
|
1796
1888
|
timestamp:
|
|
1797
1889
|
type: number
|
|
1890
|
+
description: Unix timestamp in milliseconds when the order was created.
|
|
1798
1891
|
fee:
|
|
1799
1892
|
type: number
|
|
1893
|
+
description: 'Fee paid for this order, if known.'
|
|
1800
1894
|
required:
|
|
1801
1895
|
- id
|
|
1802
1896
|
- marketId
|
|
@@ -1813,21 +1907,28 @@ components:
|
|
|
1813
1907
|
properties:
|
|
1814
1908
|
marketId:
|
|
1815
1909
|
type: string
|
|
1910
|
+
description: The market this position is held in.
|
|
1816
1911
|
outcomeId:
|
|
1817
1912
|
type: string
|
|
1913
|
+
description: The outcome this position is held in.
|
|
1818
1914
|
outcomeLabel:
|
|
1819
1915
|
type: string
|
|
1916
|
+
description: Human-readable label for the outcome held.
|
|
1820
1917
|
size:
|
|
1821
1918
|
type: number
|
|
1822
1919
|
description: 'Positive for long, negative for short'
|
|
1823
1920
|
entryPrice:
|
|
1824
1921
|
type: number
|
|
1922
|
+
description: Average entry price for the position (probability between 0.0 and 1.0).
|
|
1825
1923
|
currentPrice:
|
|
1826
1924
|
type: number
|
|
1925
|
+
description: Current mark price for the position (probability between 0.0 and 1.0).
|
|
1827
1926
|
unrealizedPnL:
|
|
1828
1927
|
type: number
|
|
1928
|
+
description: Unrealized profit or loss at the current price (USD).
|
|
1829
1929
|
realizedPnL:
|
|
1830
1930
|
type: number
|
|
1931
|
+
description: Realized profit or loss booked so far (USD).
|
|
1831
1932
|
required:
|
|
1832
1933
|
- marketId
|
|
1833
1934
|
- outcomeId
|
|
@@ -1844,8 +1945,10 @@ components:
|
|
|
1844
1945
|
description: 'e.g., ''USDC'''
|
|
1845
1946
|
total:
|
|
1846
1947
|
type: number
|
|
1948
|
+
description: Total balance including funds locked in open orders.
|
|
1847
1949
|
available:
|
|
1848
1950
|
type: number
|
|
1951
|
+
description: Balance available to trade (excludes locked funds).
|
|
1849
1952
|
locked:
|
|
1850
1953
|
type: number
|
|
1851
1954
|
description: In open orders
|
|
@@ -1875,10 +1978,13 @@ components:
|
|
|
1875
1978
|
type: array
|
|
1876
1979
|
items:
|
|
1877
1980
|
$ref: '#/components/schemas/UnifiedMarket'
|
|
1981
|
+
description: The page of unified markets
|
|
1878
1982
|
total:
|
|
1879
1983
|
type: number
|
|
1984
|
+
description: Total number of markets in the snapshot
|
|
1880
1985
|
nextCursor:
|
|
1881
1986
|
type: string
|
|
1987
|
+
description: 'Cursor to pass to the next call, or undefined if this is the last page'
|
|
1882
1988
|
required:
|
|
1883
1989
|
- data
|
|
1884
1990
|
- total
|
|
@@ -1887,14 +1993,17 @@ components:
|
|
|
1887
1993
|
properties:
|
|
1888
1994
|
limit:
|
|
1889
1995
|
type: number
|
|
1996
|
+
description: Maximum number of results to return
|
|
1890
1997
|
offset:
|
|
1891
1998
|
type: number
|
|
1999
|
+
description: Pagination offset — number of results to skip
|
|
1892
2000
|
sort:
|
|
1893
2001
|
type: string
|
|
1894
2002
|
enum:
|
|
1895
2003
|
- volume
|
|
1896
2004
|
- liquidity
|
|
1897
2005
|
- newest
|
|
2006
|
+
description: Sort order for results
|
|
1898
2007
|
status:
|
|
1899
2008
|
type: string
|
|
1900
2009
|
enum:
|
|
@@ -1939,14 +2048,17 @@ components:
|
|
|
1939
2048
|
description: For keyword search
|
|
1940
2049
|
limit:
|
|
1941
2050
|
type: number
|
|
2051
|
+
description: Maximum number of results to return
|
|
1942
2052
|
offset:
|
|
1943
2053
|
type: number
|
|
2054
|
+
description: Pagination offset — number of results to skip
|
|
1944
2055
|
sort:
|
|
1945
2056
|
type: string
|
|
1946
2057
|
enum:
|
|
1947
2058
|
- volume
|
|
1948
2059
|
- liquidity
|
|
1949
2060
|
- newest
|
|
2061
|
+
description: Sort order for results
|
|
1950
2062
|
status:
|
|
1951
2063
|
type: string
|
|
1952
2064
|
enum:
|
|
@@ -1961,6 +2073,7 @@ components:
|
|
|
1961
2073
|
- title
|
|
1962
2074
|
- description
|
|
1963
2075
|
- both
|
|
2076
|
+
description: 'Where to search (default: ''title'')'
|
|
1964
2077
|
eventId:
|
|
1965
2078
|
type: string
|
|
1966
2079
|
description: Direct lookup by event ID
|
|
@@ -1984,11 +2097,14 @@ components:
|
|
|
1984
2097
|
start:
|
|
1985
2098
|
type: string
|
|
1986
2099
|
format: date-time
|
|
2100
|
+
description: Start of the time range
|
|
1987
2101
|
end:
|
|
1988
2102
|
type: string
|
|
1989
2103
|
format: date-time
|
|
2104
|
+
description: End of the time range
|
|
1990
2105
|
limit:
|
|
1991
2106
|
type: number
|
|
2107
|
+
description: Maximum number of results to return
|
|
1992
2108
|
OHLCVParams:
|
|
1993
2109
|
type: object
|
|
1994
2110
|
properties:
|
|
@@ -2005,11 +2121,14 @@ components:
|
|
|
2005
2121
|
start:
|
|
2006
2122
|
type: string
|
|
2007
2123
|
format: date-time
|
|
2124
|
+
description: Start of the time range
|
|
2008
2125
|
end:
|
|
2009
2126
|
type: string
|
|
2010
2127
|
format: date-time
|
|
2128
|
+
description: End of the time range
|
|
2011
2129
|
limit:
|
|
2012
2130
|
type: number
|
|
2131
|
+
description: Maximum number of results to return
|
|
2013
2132
|
required:
|
|
2014
2133
|
- resolution
|
|
2015
2134
|
TradesParams:
|
|
@@ -2019,30 +2138,38 @@ components:
|
|
|
2019
2138
|
start:
|
|
2020
2139
|
type: string
|
|
2021
2140
|
format: date-time
|
|
2141
|
+
description: Start of the time range
|
|
2022
2142
|
end:
|
|
2023
2143
|
type: string
|
|
2024
2144
|
format: date-time
|
|
2145
|
+
description: End of the time range
|
|
2025
2146
|
limit:
|
|
2026
2147
|
type: number
|
|
2148
|
+
description: Maximum number of results to return
|
|
2027
2149
|
CreateOrderParams:
|
|
2028
2150
|
type: object
|
|
2029
2151
|
properties:
|
|
2030
2152
|
marketId:
|
|
2031
2153
|
type: string
|
|
2154
|
+
description: The market to trade on.
|
|
2032
2155
|
outcomeId:
|
|
2033
2156
|
type: string
|
|
2157
|
+
description: The outcome to trade.
|
|
2034
2158
|
side:
|
|
2035
2159
|
type: string
|
|
2036
2160
|
enum:
|
|
2037
2161
|
- buy
|
|
2038
2162
|
- sell
|
|
2163
|
+
description: 'Order side: buy or sell.'
|
|
2039
2164
|
type:
|
|
2040
2165
|
type: string
|
|
2041
2166
|
enum:
|
|
2042
2167
|
- market
|
|
2043
2168
|
- limit
|
|
2169
|
+
description: 'Order type: market (execute immediately) or limit (resting at a price).'
|
|
2044
2170
|
amount:
|
|
2045
2171
|
type: number
|
|
2172
|
+
description: Size of the order in contracts/shares.
|
|
2046
2173
|
price:
|
|
2047
2174
|
type: number
|
|
2048
2175
|
description: Required for limit orders
|
|
@@ -2112,11 +2239,14 @@ components:
|
|
|
2112
2239
|
since:
|
|
2113
2240
|
type: string
|
|
2114
2241
|
format: date-time
|
|
2242
|
+
description: Only return records after this date
|
|
2115
2243
|
until:
|
|
2116
2244
|
type: string
|
|
2117
2245
|
format: date-time
|
|
2246
|
+
description: Only return records before this date
|
|
2118
2247
|
limit:
|
|
2119
2248
|
type: number
|
|
2249
|
+
description: Maximum number of results to return
|
|
2120
2250
|
cursor:
|
|
2121
2251
|
type: string
|
|
2122
2252
|
description: for Kalshi cursor pagination
|
|
@@ -2129,13 +2259,17 @@ components:
|
|
|
2129
2259
|
since:
|
|
2130
2260
|
type: string
|
|
2131
2261
|
format: date-time
|
|
2262
|
+
description: Only return records after this date
|
|
2132
2263
|
until:
|
|
2133
2264
|
type: string
|
|
2134
2265
|
format: date-time
|
|
2266
|
+
description: Only return records before this date
|
|
2135
2267
|
limit:
|
|
2136
2268
|
type: number
|
|
2269
|
+
description: Maximum number of results to return
|
|
2137
2270
|
cursor:
|
|
2138
2271
|
type: string
|
|
2272
|
+
description: Opaque pagination cursor from a previous response
|
|
2139
2273
|
ExchangeCredentials:
|
|
2140
2274
|
type: object
|
|
2141
2275
|
description: Optional authentication credentials for exchange operations.
|
|
@@ -2144,8 +2278,10 @@ components:
|
|
|
2144
2278
|
type: string
|
|
2145
2279
|
apiSecret:
|
|
2146
2280
|
type: string
|
|
2281
|
+
description: Standard API secret for HMAC-authenticated exchanges
|
|
2147
2282
|
passphrase:
|
|
2148
2283
|
type: string
|
|
2284
|
+
description: Standard API passphrase for HMAC-authenticated exchanges
|
|
2149
2285
|
apiToken:
|
|
2150
2286
|
type: string
|
|
2151
2287
|
description: 'Metaculus: `Authorization: Token <apiToken>` for higher rate limits'
|
package/dist/types.d.ts
CHANGED
|
@@ -3,8 +3,11 @@ export interface MarketOutcome {
|
|
|
3
3
|
outcomeId: string;
|
|
4
4
|
/** The market this outcome belongs to (set automatically when outcomes are built) */
|
|
5
5
|
marketId?: string;
|
|
6
|
+
/** Human-readable outcome label (e.g., "Yes", "No", candidate name). */
|
|
6
7
|
label: string;
|
|
8
|
+
/** Probability between 0.0 and 1.0. */
|
|
7
9
|
price: number;
|
|
10
|
+
/** Change in price over the past 24 hours, as an absolute probability delta. */
|
|
8
11
|
priceChange24h?: number;
|
|
9
12
|
/** Exchange-specific metadata (e.g., clobTokenId for Polymarket) */
|
|
10
13
|
metadata?: Record<string, any>;
|
|
@@ -13,16 +16,26 @@ export interface MarketOutcome {
|
|
|
13
16
|
* A grouped collection of related markets (e.g., "Who will be Fed Chair?" contains multiple candidate markets).
|
|
14
17
|
*/
|
|
15
18
|
export interface UnifiedEvent {
|
|
19
|
+
/** The unique identifier for this event. */
|
|
16
20
|
id: string;
|
|
21
|
+
/** The event title (e.g., "Who will be Fed Chair?"). */
|
|
17
22
|
title: string;
|
|
23
|
+
/** Long-form event description. */
|
|
18
24
|
description: string;
|
|
25
|
+
/** URL-friendly slug for the event. */
|
|
19
26
|
slug: string;
|
|
27
|
+
/** Markets grouped under this event. */
|
|
20
28
|
markets: UnifiedMarket[];
|
|
29
|
+
/** Trading volume over the past 24 hours (USD). */
|
|
21
30
|
volume24h: number;
|
|
22
31
|
volume?: number;
|
|
32
|
+
/** Canonical URL to view the event on the venue. */
|
|
23
33
|
url: string;
|
|
34
|
+
/** Optional image URL for the event. */
|
|
24
35
|
image?: string;
|
|
36
|
+
/** Optional category label (e.g., "Politics", "Sports"). */
|
|
25
37
|
category?: string;
|
|
38
|
+
/** Optional list of tags associated with the event. */
|
|
26
39
|
tags?: string[];
|
|
27
40
|
}
|
|
28
41
|
export interface UnifiedMarket {
|
|
@@ -30,36 +43,58 @@ export interface UnifiedMarket {
|
|
|
30
43
|
marketId: string;
|
|
31
44
|
/** Link to parent event */
|
|
32
45
|
eventId?: string;
|
|
46
|
+
/** The market title (e.g., "Will BTC close above $100k on Dec 31?"). */
|
|
33
47
|
title: string;
|
|
48
|
+
/** Long-form market description or resolution criteria. */
|
|
34
49
|
description: string;
|
|
50
|
+
/** URL-friendly slug for the market. */
|
|
35
51
|
slug?: string;
|
|
52
|
+
/** The possible outcomes for this market. */
|
|
36
53
|
outcomes: MarketOutcome[];
|
|
54
|
+
/** When the market is scheduled to resolve. */
|
|
37
55
|
resolutionDate: Date;
|
|
56
|
+
/** Trading volume over the past 24 hours (USD). */
|
|
38
57
|
volume24h: number;
|
|
39
58
|
volume?: number;
|
|
59
|
+
/** Current market liquidity (USD). */
|
|
40
60
|
liquidity: number;
|
|
61
|
+
/** Total value of outstanding contracts (USD). */
|
|
41
62
|
openInterest?: number;
|
|
63
|
+
/** Canonical URL to view the market on the venue. */
|
|
42
64
|
url: string;
|
|
65
|
+
/** Optional image URL for the market. */
|
|
43
66
|
image?: string;
|
|
67
|
+
/** Optional category label (e.g., "Politics", "Crypto"). */
|
|
44
68
|
category?: string;
|
|
69
|
+
/** Optional list of tags associated with the market. */
|
|
45
70
|
tags?: string[];
|
|
46
71
|
tickSize?: number;
|
|
47
72
|
/** Venue-native lifecycle status (e.g. 'active', 'closed', 'archived'). */
|
|
48
73
|
status?: string;
|
|
49
74
|
/** On-chain contract / condition identifier where applicable (Polymarket conditionId, etc.). */
|
|
50
75
|
contractAddress?: string;
|
|
76
|
+
/** Convenience accessor for the YES outcome on a binary market. */
|
|
51
77
|
yes?: MarketOutcome;
|
|
78
|
+
/** Convenience accessor for the NO outcome on a binary market. */
|
|
52
79
|
no?: MarketOutcome;
|
|
80
|
+
/** Convenience accessor for the UP outcome on a binary market. */
|
|
53
81
|
up?: MarketOutcome;
|
|
82
|
+
/** Convenience accessor for the DOWN outcome on a binary market. */
|
|
54
83
|
down?: MarketOutcome;
|
|
55
84
|
}
|
|
56
85
|
export type CandleInterval = '1m' | '5m' | '15m' | '1h' | '6h' | '1d';
|
|
57
86
|
export interface PriceCandle {
|
|
87
|
+
/** Unix timestamp in milliseconds marking the start of the candle. */
|
|
58
88
|
timestamp: number;
|
|
89
|
+
/** Opening price for the interval (probability between 0.0 and 1.0). */
|
|
59
90
|
open: number;
|
|
91
|
+
/** Highest price during the interval (probability between 0.0 and 1.0). */
|
|
60
92
|
high: number;
|
|
93
|
+
/** Lowest price during the interval (probability between 0.0 and 1.0). */
|
|
61
94
|
low: number;
|
|
95
|
+
/** Closing price for the interval (probability between 0.0 and 1.0). */
|
|
62
96
|
close: number;
|
|
97
|
+
/** Trading volume during the interval. */
|
|
63
98
|
volume?: number;
|
|
64
99
|
}
|
|
65
100
|
export interface OrderLevel {
|
|
@@ -67,60 +102,94 @@ export interface OrderLevel {
|
|
|
67
102
|
size: number;
|
|
68
103
|
}
|
|
69
104
|
export interface OrderBook {
|
|
105
|
+
/** Order book bid levels, sorted by price descending. */
|
|
70
106
|
bids: OrderLevel[];
|
|
107
|
+
/** Order book ask levels, sorted by price ascending. */
|
|
71
108
|
asks: OrderLevel[];
|
|
109
|
+
/** Unix timestamp in milliseconds when the snapshot was taken. */
|
|
72
110
|
timestamp?: number;
|
|
73
111
|
}
|
|
74
112
|
export interface Trade {
|
|
113
|
+
/** The unique identifier for this trade. */
|
|
75
114
|
id: string;
|
|
115
|
+
/** Unix timestamp in milliseconds when the trade executed. */
|
|
76
116
|
timestamp: number;
|
|
117
|
+
/** Probability between 0.0 and 1.0. */
|
|
77
118
|
price: number;
|
|
119
|
+
/** Size of the trade in contracts/shares. */
|
|
78
120
|
amount: number;
|
|
121
|
+
/** Trade side from the taker's perspective. */
|
|
79
122
|
side: 'buy' | 'sell' | 'unknown';
|
|
123
|
+
/** The outcome this trade is for (if known). */
|
|
80
124
|
outcomeId?: string;
|
|
81
125
|
}
|
|
82
126
|
export interface UserTrade extends Trade {
|
|
127
|
+
/** The order that produced this trade, if known. */
|
|
83
128
|
orderId?: string;
|
|
84
129
|
}
|
|
85
130
|
export interface QueuedPromise<T> {
|
|
131
|
+
/** Internal: resolver for a queued promise. */
|
|
86
132
|
resolve: (value: T | PromiseLike<T>) => void;
|
|
133
|
+
/** Internal: rejecter for a queued promise. */
|
|
87
134
|
reject: (reason?: any) => void;
|
|
88
135
|
}
|
|
89
136
|
export interface Order {
|
|
137
|
+
/** The exchange-assigned order identifier. */
|
|
90
138
|
id: string;
|
|
139
|
+
/** The market this order was placed on. */
|
|
91
140
|
marketId: string;
|
|
141
|
+
/** The outcome this order was placed on. */
|
|
92
142
|
outcomeId: string;
|
|
143
|
+
/** Order side: buy or sell. */
|
|
93
144
|
side: 'buy' | 'sell';
|
|
145
|
+
/** Order type: market (execute immediately) or limit (resting at a price). */
|
|
94
146
|
type: 'market' | 'limit';
|
|
95
147
|
price?: number;
|
|
96
148
|
amount: number;
|
|
149
|
+
/** Lifecycle status of the order. */
|
|
97
150
|
status: 'pending' | 'open' | 'filled' | 'cancelled' | 'rejected';
|
|
98
151
|
filled: number;
|
|
99
152
|
remaining: number;
|
|
153
|
+
/** Unix timestamp in milliseconds when the order was created. */
|
|
100
154
|
timestamp: number;
|
|
155
|
+
/** Fee paid for this order, if known. */
|
|
101
156
|
fee?: number;
|
|
102
157
|
}
|
|
103
158
|
export interface Position {
|
|
159
|
+
/** The market this position is held in. */
|
|
104
160
|
marketId: string;
|
|
161
|
+
/** The outcome this position is held in. */
|
|
105
162
|
outcomeId: string;
|
|
163
|
+
/** Human-readable label for the outcome held. */
|
|
106
164
|
outcomeLabel: string;
|
|
107
165
|
size: number;
|
|
166
|
+
/** Average entry price for the position (probability between 0.0 and 1.0). */
|
|
108
167
|
entryPrice: number;
|
|
168
|
+
/** Current mark price for the position (probability between 0.0 and 1.0). */
|
|
109
169
|
currentPrice: number;
|
|
170
|
+
/** Unrealized profit or loss at the current price (USD). */
|
|
110
171
|
unrealizedPnL: number;
|
|
172
|
+
/** Realized profit or loss booked so far (USD). */
|
|
111
173
|
realizedPnL?: number;
|
|
112
174
|
}
|
|
113
175
|
export interface Balance {
|
|
114
176
|
currency: string;
|
|
177
|
+
/** Total balance including funds locked in open orders. */
|
|
115
178
|
total: number;
|
|
179
|
+
/** Balance available to trade (excludes locked funds). */
|
|
116
180
|
available: number;
|
|
117
181
|
locked: number;
|
|
118
182
|
}
|
|
119
183
|
export interface CreateOrderParams {
|
|
184
|
+
/** The market to trade on. */
|
|
120
185
|
marketId: string;
|
|
186
|
+
/** The outcome to trade. */
|
|
121
187
|
outcomeId: string;
|
|
188
|
+
/** Order side: buy or sell. */
|
|
122
189
|
side: 'buy' | 'sell';
|
|
190
|
+
/** Order type: market (execute immediately) or limit (resting at a price). */
|
|
123
191
|
type: 'market' | 'limit';
|
|
192
|
+
/** Size of the order in contracts/shares. */
|
|
124
193
|
amount: number;
|
|
125
194
|
price?: number;
|
|
126
195
|
fee?: number;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pmxt-core",
|
|
3
|
-
"version": "2.27.
|
|
3
|
+
"version": "2.27.5",
|
|
4
4
|
"description": "pmxt is a unified prediction market data API. The ccxt for prediction markets.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -29,8 +29,8 @@
|
|
|
29
29
|
"test": "jest -c jest.config.js",
|
|
30
30
|
"server": "tsx watch src/server/index.ts",
|
|
31
31
|
"server:prod": "node dist/server/index.js",
|
|
32
|
-
"generate:sdk:python": "npx @openapitools/openapi-generator-cli generate -i src/server/openapi.yaml -g python -o ../sdks/python/generated --package-name pmxt_internal --additional-properties=projectName=pmxt-internal,packageVersion=2.27.
|
|
33
|
-
"generate:sdk:typescript": "npx @openapitools/openapi-generator-cli generate -i src/server/openapi.yaml -g typescript-fetch -o ../sdks/typescript/generated --additional-properties=npmName=pmxtjs,npmVersion=2.27.
|
|
32
|
+
"generate:sdk:python": "npx @openapitools/openapi-generator-cli generate -i src/server/openapi.yaml -g python -o ../sdks/python/generated --package-name pmxt_internal --additional-properties=projectName=pmxt-internal,packageVersion=2.27.5,library=urllib3",
|
|
33
|
+
"generate:sdk:typescript": "npx @openapitools/openapi-generator-cli generate -i src/server/openapi.yaml -g typescript-fetch -o ../sdks/typescript/generated --additional-properties=npmName=pmxtjs,npmVersion=2.27.5,supportsES6=true,typescriptThreePlus=true && node ../sdks/typescript/scripts/fix-generated.js",
|
|
34
34
|
"fetch:openapi": "node scripts/fetch-openapi-specs.js",
|
|
35
35
|
"extract:jsdoc": "node ../scripts/extract-jsdoc.js",
|
|
36
36
|
"generate:docs": "npm run extract:jsdoc && node ../scripts/generate-api-docs.js",
|