pmxt-core 2.35.17 → 2.35.18

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.
@@ -49,9 +49,9 @@ export interface MarketFilterParams {
49
49
  export interface MarketFetchParams extends MarketFilterParams {
50
50
  /** Optional client-side filter applied after fetching */
51
51
  filter?: MarketFilterCriteria;
52
- /** Shorthand for filter.category -- merged into filter (takes precedence) */
52
+ /** Filter by category. Each market belongs to a venue-assigned category such as "Sports", "Politics", "Crypto", "Bitcoin", "Soccer", "Economic Policy" (Polymarket) or "Sports", "Mentions" (Kalshi). */
53
53
  category?: string;
54
- /** Shorthand for filter.tags -- merged into filter (takes precedence) */
54
+ /** Filter by tags. Returns markets matching ANY of the provided tags. Tags are more specific than categories -- for example a "Sports" market might carry tags ["Sports", "FIFA World Cup", "2026 FIFA World Cup"]. Common tags include "Crypto", "Politics", "Elections", "Geopolitics", "Fed Rates", "Trump". */
55
55
  tags?: string[];
56
56
  }
57
57
  export interface EventFetchParams {
@@ -69,9 +69,9 @@ export interface EventFetchParams {
69
69
  slug?: string;
70
70
  /** Optional client-side filter applied after fetching */
71
71
  filter?: EventFilterCriteria;
72
- /** Shorthand for filter.category -- merged into filter (takes precedence) */
72
+ /** Filter by category. Each event belongs to a venue-assigned category such as "Sports", "Politics", "Crypto", "Bitcoin", "Soccer", "Economic Policy" (Polymarket) or "Sports", "Mentions" (Kalshi). */
73
73
  category?: string;
74
- /** Shorthand for filter.tags -- merged into filter (takes precedence) */
74
+ /** Filter by tags. Returns events matching ANY of the provided tags. Tags are more specific than categories -- for example a "Politics" event might carry tags ["Politics", "Geopolitics", "Middle East", "Iran"]. Common tags include "Crypto", "Elections", "Fed Rates", "FIFA World Cup", "Trump". */
75
75
  tags?: string[];
76
76
  }
77
77
  /**
@@ -154,7 +154,9 @@ export interface MarketFilterCriteria {
154
154
  before?: Date;
155
155
  after?: Date;
156
156
  };
157
+ /** Filter by category. Common values: "Sports", "Politics", "Crypto", "Bitcoin", "Soccer", "Economic Policy" (Polymarket) or "Sports", "Mentions" (Kalshi). */
157
158
  category?: string;
159
+ /** Match markets that have ANY of these tags. Examples: ["Crypto", "Crypto Prices"], ["Politics", "Elections"], ["Sports", "FIFA World Cup"]. */
158
160
  tags?: string[];
159
161
  price?: {
160
162
  outcome: 'yes' | 'no' | 'up' | 'down';
@@ -171,8 +173,9 @@ export type MarketFilterFunction = (market: UnifiedMarket) => boolean;
171
173
  export interface EventFilterCriteria {
172
174
  text?: string;
173
175
  searchIn?: ('title' | 'description' | 'category' | 'tags')[];
176
+ /** Filter by category. Common values: "Sports", "Politics", "Crypto", "Bitcoin", "Soccer", "Economic Policy" (Polymarket) or "Sports", "Mentions" (Kalshi). */
174
177
  category?: string;
175
- /** Match events that have any of these tags */
178
+ /** Match events that have ANY of these tags. Examples: ["Crypto"], ["Politics", "Geopolitics", "Middle East"], ["Sports", "FIFA World Cup"]. */
176
179
  tags?: string[];
177
180
  marketCount?: {
178
181
  min?: number;
@@ -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-28T14:37:14.451Z
3
+ * Generated at: 2026-04-28T16:04:56.022Z
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-28T14:37:14.451Z
6
+ * Generated at: 2026-04-28T16:04:56.022Z
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-28T14:37:14.734Z
3
+ * Generated at: 2026-04-28T16:04:56.064Z
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-28T14:37:14.734Z
6
+ * Generated at: 2026-04-28T16:04:56.064Z
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-28T14:37:14.743Z
3
+ * Generated at: 2026-04-28T16:04:56.079Z
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-28T14:37:14.743Z
6
+ * Generated at: 2026-04-28T16:04:56.079Z
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-28T14:37:14.745Z
3
+ * Generated at: 2026-04-28T16:04:56.084Z
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-28T14:37:14.745Z
6
+ * Generated at: 2026-04-28T16:04:56.084Z
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-28T14:37:14.481Z
3
+ * Generated at: 2026-04-28T16:04:56.029Z
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-28T14:37:14.481Z
6
+ * Generated at: 2026-04-28T16:04:56.029Z
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-28T14:37:14.720Z
3
+ * Generated at: 2026-04-28T16:04:56.044Z
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-28T14:37:14.720Z
6
+ * Generated at: 2026-04-28T16:04:56.044Z
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-28T14:37:14.651Z
3
+ * Generated at: 2026-04-28T16:04:56.041Z
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-28T14:37:14.651Z
6
+ * Generated at: 2026-04-28T16:04:56.041Z
7
7
  * Do not edit manually -- run "npm run fetch:openapi" to regenerate.
8
8
  */
9
9
  exports.polymarketGammaSpec = {
@@ -234,10 +234,13 @@ class PolymarketFetcher {
234
234
  return response.data || [];
235
235
  }
236
236
  async fetchRawMarketsBySlug(slug) {
237
- const response = await this.http.get(utils_1.GAMMA_API_URL, {
238
- params: { slug },
239
- });
240
- return response.data || [];
237
+ const response = await this.http.get(`${GAMMA_MARKETS_URL}/slug/${slug}`);
238
+ const market = response.data;
239
+ if (!market)
240
+ return [];
241
+ // Wrap in event-like shape for consistent normalizer input
242
+ const event = market.events?.[0] || market;
243
+ return [{ ...event, markets: [market] }];
241
244
  }
242
245
  async fetchRawMarketsSearch(params) {
243
246
  const limit = params?.limit || 250000;
@@ -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-28T14:37:14.739Z
3
+ * Generated at: 2026-04-28T16:04:56.071Z
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-28T14:37:14.739Z
6
+ * Generated at: 2026-04-28T16:04:56.071Z
7
7
  * Do not edit manually -- run "npm run fetch:openapi" to regenerate.
8
8
  */
9
9
  exports.probableApiSpec = {
@@ -332,7 +332,9 @@ paths:
332
332
  required: false
333
333
  schema:
334
334
  type: string
335
- description: Shorthand for filter.category -- merged into filter (takes precedence)
335
+ description: >-
336
+ Filter by category. Each event belongs to a venue-assigned category such as "Sports", "Politics", "Crypto",
337
+ "Bitcoin", "Soccer", "Economic Policy" (Polymarket) or "Sports", "Mentions" (Kalshi).
336
338
  - in: query
337
339
  name: tags
338
340
  required: false
@@ -340,7 +342,10 @@ paths:
340
342
  type: array
341
343
  items:
342
344
  type: string
343
- description: Shorthand for filter.tags -- merged into filter (takes precedence)
345
+ description: >-
346
+ Filter by tags. Returns events matching ANY of the provided tags. Tags are more specific than categories --
347
+ for example a "Politics" event might carry tags ["Politics", "Geopolitics", "Middle East", "Iran"]. Common
348
+ tags include "Crypto", "Elections", "Fed Rates", "FIFA World Cup", "Trump".
344
349
  responses:
345
350
  '200':
346
351
  description: Fetch Events response
@@ -543,7 +548,9 @@ paths:
543
548
  required: false
544
549
  schema:
545
550
  type: string
546
- description: Shorthand for filter.category -- merged into filter (takes precedence)
551
+ description: >-
552
+ Filter by category. Each event belongs to a venue-assigned category such as "Sports", "Politics", "Crypto",
553
+ "Bitcoin", "Soccer", "Economic Policy" (Polymarket) or "Sports", "Mentions" (Kalshi).
547
554
  - in: query
548
555
  name: tags
549
556
  required: false
@@ -551,7 +558,10 @@ paths:
551
558
  type: array
552
559
  items:
553
560
  type: string
554
- description: Shorthand for filter.tags -- merged into filter (takes precedence)
561
+ description: >-
562
+ Filter by tags. Returns events matching ANY of the provided tags. Tags are more specific than categories --
563
+ for example a "Politics" event might carry tags ["Politics", "Geopolitics", "Middle East", "Iran"]. Common
564
+ tags include "Crypto", "Elections", "Fed Rates", "FIFA World Cup", "Trump".
555
565
  responses:
556
566
  '200':
557
567
  description: Fetch Event response
@@ -2164,12 +2174,18 @@ components:
2164
2174
  description: Optional image URL for the market.
2165
2175
  category:
2166
2176
  type: string
2167
- description: 'Optional category label (e.g., "Politics", "Crypto").'
2177
+ description: >-
2178
+ Optional category label. Venue-defined — common values include "Sports", "Politics", "Crypto", "Economics",
2179
+ "Science", "Culture". Polymarket uses finer-grained categories like "Bitcoin", "Soccer", "Economic Policy";
2180
+ Kalshi uses broader ones like "Sports" or "Mentions".
2168
2181
  tags:
2169
2182
  type: array
2170
2183
  items:
2171
2184
  type: string
2172
- description: Optional list of tags associated with the market.
2185
+ description: >-
2186
+ Optional list of tags. More granular than category — e.g. ["Crypto", "Crypto Prices", "Bitcoin"] or
2187
+ ["Politics", "Elections", "Trump"]. Tags vary by venue: Polymarket markets carry several, Kalshi typically
2188
+ one.
2173
2189
  tickSize:
2174
2190
  type: number
2175
2191
  description: 'Minimum price increment (e.g., 0.01, 0.001)'
@@ -2268,12 +2284,18 @@ components:
2268
2284
  description: Optional image URL for the event.
2269
2285
  category:
2270
2286
  type: string
2271
- description: 'Optional category label (e.g., "Politics", "Sports").'
2287
+ description: >-
2288
+ Optional category label. Venue-defined — common values include "Sports", "Politics", "Crypto", "Economics",
2289
+ "Science", "Culture". Polymarket uses finer-grained categories like "Bitcoin", "Soccer", "Economic Policy";
2290
+ Kalshi uses broader ones like "Sports" or "Mentions".
2272
2291
  tags:
2273
2292
  type: array
2274
2293
  items:
2275
2294
  type: string
2276
- description: Optional list of tags associated with the event.
2295
+ description: >-
2296
+ Optional list of tags. More granular than category — e.g. ["Sports", "FIFA World Cup", "2026 FIFA World
2297
+ Cup"] or ["Politics", "Geopolitics", "Middle East"]. Tags vary by venue: Polymarket markets carry several,
2298
+ Kalshi typically one.
2277
2299
  sourceExchange:
2278
2300
  type: string
2279
2301
  description: 'The exchange/venue this event originates from (e.g. ''polymarket'', ''kalshi''). Populated by the Router.'
@@ -2672,12 +2694,17 @@ components:
2672
2694
  description: Optional client-side filter applied after fetching
2673
2695
  category:
2674
2696
  type: string
2675
- description: Shorthand for filter.category -- merged into filter (takes precedence)
2697
+ description: >-
2698
+ Filter by category. Each event belongs to a venue-assigned category such as "Sports", "Politics", "Crypto",
2699
+ "Bitcoin", "Soccer", "Economic Policy" (Polymarket) or "Sports", "Mentions" (Kalshi).
2676
2700
  tags:
2677
2701
  type: array
2678
2702
  items:
2679
2703
  type: string
2680
- description: Shorthand for filter.tags -- merged into filter (takes precedence)
2704
+ description: >-
2705
+ Filter by tags. Returns events matching ANY of the provided tags. Tags are more specific than categories --
2706
+ for example a "Politics" event might carry tags ["Politics", "Geopolitics", "Middle East", "Iran"]. Common
2707
+ tags include "Crypto", "Elections", "Fed Rates", "FIFA World Cup", "Trump".
2681
2708
  HistoryFilterParams:
2682
2709
  type: object
2683
2710
  description: Deprecated - use OHLCVParams or TradesParams instead. Resolution is optional for backward compatibility.
@@ -2912,11 +2939,16 @@ components:
2912
2939
  format: date-time
2913
2940
  category:
2914
2941
  type: string
2942
+ description: >-
2943
+ Filter by category. Common values: "Sports", "Politics", "Crypto", "Bitcoin", "Soccer", "Economic Policy"
2944
+ (Polymarket) or "Sports", "Mentions" (Kalshi).
2915
2945
  tags:
2916
2946
  type: array
2917
2947
  items:
2918
2948
  type: string
2919
- description: Match if market has ANY of these tags
2949
+ description: >-
2950
+ Match markets that have ANY of these tags. Examples: ["Crypto", "Crypto Prices"], ["Politics", "Elections"],
2951
+ ["Sports", "FIFA World Cup"].
2920
2952
  price:
2921
2953
  type: object
2922
2954
  properties:
@@ -2966,11 +2998,16 @@ components:
2966
2998
  description: 'Default: [''title'']'
2967
2999
  category:
2968
3000
  type: string
3001
+ description: >-
3002
+ Filter by category. Common values: "Sports", "Politics", "Crypto", "Bitcoin", "Soccer", "Economic Policy"
3003
+ (Polymarket) or "Sports", "Mentions" (Kalshi).
2969
3004
  tags:
2970
3005
  type: array
2971
3006
  items:
2972
3007
  type: string
2973
- description: Match events that have any of these tags
3008
+ description: >-
3009
+ Match events that have ANY of these tags. Examples: ["Crypto"], ["Politics", "Geopolitics", "Middle East"],
3010
+ ["Sports", "FIFA World Cup"].
2974
3011
  marketCount:
2975
3012
  type: object
2976
3013
  properties:
package/dist/types.d.ts CHANGED
@@ -33,9 +33,9 @@ export interface UnifiedEvent {
33
33
  url: string;
34
34
  /** Optional image URL for the event. */
35
35
  image?: string;
36
- /** Optional category label (e.g., "Politics", "Sports"). */
36
+ /** Optional category label. Venue-defined — common values include "Sports", "Politics", "Crypto", "Economics", "Science", "Culture". Polymarket uses finer-grained categories like "Bitcoin", "Soccer", "Economic Policy"; Kalshi uses broader ones like "Sports" or "Mentions". */
37
37
  category?: string;
38
- /** Optional list of tags associated with the event. */
38
+ /** Optional list of tags. More granular than category — e.g. ["Sports", "FIFA World Cup", "2026 FIFA World Cup"] or ["Politics", "Geopolitics", "Middle East"]. Tags vary by venue: Polymarket markets carry several, Kalshi typically one. */
39
39
  tags?: string[];
40
40
  /** The exchange/venue this event originates from (e.g. 'polymarket', 'kalshi'). Populated by the Router. */
41
41
  sourceExchange?: string;
@@ -66,9 +66,9 @@ export interface UnifiedMarket {
66
66
  url: string;
67
67
  /** Optional image URL for the market. */
68
68
  image?: string;
69
- /** Optional category label (e.g., "Politics", "Crypto"). */
69
+ /** Optional category label. Venue-defined — common values include "Sports", "Politics", "Crypto", "Economics", "Science", "Culture". Polymarket uses finer-grained categories like "Bitcoin", "Soccer", "Economic Policy"; Kalshi uses broader ones like "Sports" or "Mentions". */
70
70
  category?: string;
71
- /** Optional list of tags associated with the market. */
71
+ /** Optional list of tags. More granular than category — e.g. ["Crypto", "Crypto Prices", "Bitcoin"] or ["Politics", "Elections", "Trump"]. Tags vary by venue: Polymarket markets carry several, Kalshi typically one. */
72
72
  tags?: string[];
73
73
  tickSize?: number;
74
74
  /** Venue-native lifecycle status (e.g. 'active', 'closed', 'archived'). */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pmxt-core",
3
- "version": "2.35.17",
3
+ "version": "2.35.18",
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.35.17,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.35.17,supportsES6=true,typescriptThreePlus=true && node ../sdks/typescript/scripts/fix-generated.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.35.18,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.35.18,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",