tcgpriser 0.4.0 → 0.7.0
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/README.md +78 -9
- package/dist/index.cjs +35 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +326 -375
- package/dist/index.d.ts +326 -375
- package/dist/index.js +35 -2
- package/dist/index.js.map +1 -1
- package/package.json +2 -1
package/dist/index.d.cts
CHANGED
|
@@ -32,11 +32,16 @@ interface components {
|
|
|
32
32
|
AlternativeName: {
|
|
33
33
|
name: string;
|
|
34
34
|
shortName: string | undefined;
|
|
35
|
+
/**
|
|
36
|
+
* @description ISO 639-1 language code the alias is written in (e.g. "sv"), possibly combined ("sv/da/no"). Null means unspecified.
|
|
37
|
+
* @example sv
|
|
38
|
+
*/
|
|
39
|
+
language: string | undefined;
|
|
35
40
|
};
|
|
36
41
|
ApiError: {
|
|
37
42
|
error: {
|
|
38
43
|
/** @enum {string} */
|
|
39
|
-
code: "validationFailed" | "unauthorized" | "forbidden" | "notFound" | "conflict" | "readOnlyField" | "rateLimited" | "premiumRequired" | "internalError";
|
|
44
|
+
code: "validationFailed" | "unauthorized" | "forbidden" | "notFound" | "conflict" | "readOnlyField" | "rateLimited" | "premiumRequired" | "businessRequired" | "internalError";
|
|
40
45
|
message: string;
|
|
41
46
|
details: unknown;
|
|
42
47
|
};
|
|
@@ -71,6 +76,10 @@ interface components {
|
|
|
71
76
|
kind: "sealed" | "card";
|
|
72
77
|
name: string;
|
|
73
78
|
technicalName: string;
|
|
79
|
+
/**
|
|
80
|
+
* @description Absolute asset URL, or null when absent. For best performance, please rehost this image on your own storage/CDN and cache it there rather than hotlinking it — see the API description's "Image hosting" section.
|
|
81
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
82
|
+
*/
|
|
74
83
|
imageUrl: string | undefined;
|
|
75
84
|
};
|
|
76
85
|
bargain: {
|
|
@@ -127,29 +136,11 @@ interface components {
|
|
|
127
136
|
alternativeNames: components["schemas"]["AlternativeName"][];
|
|
128
137
|
supportsMultipackPricing: boolean;
|
|
129
138
|
/**
|
|
130
|
-
* @description Absolute asset URL, or null when absent
|
|
139
|
+
* @description Absolute asset URL, or null when absent. For best performance, please rehost this image on your own storage/CDN and cache it there rather than hotlinking it — see the API description's "Image hosting" section.
|
|
131
140
|
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
132
141
|
*/
|
|
133
142
|
imageUrl: string | undefined;
|
|
134
|
-
|
|
135
|
-
* @description Cheapest current shop price, in SEK
|
|
136
|
-
* @example 149.5
|
|
137
|
-
*/
|
|
138
|
-
retailPrice: number | undefined;
|
|
139
|
-
/**
|
|
140
|
-
* @description Estimated market value, in SEK
|
|
141
|
-
* @example 149.5
|
|
142
|
-
*/
|
|
143
|
-
estimatedValue: number | undefined;
|
|
144
|
-
/** @description Active shops currently tracking this item */
|
|
145
|
-
shopCount: number;
|
|
146
|
-
/** @description Observations the estimate rests on */
|
|
147
|
-
pricingDataPoints: number;
|
|
148
|
-
/**
|
|
149
|
-
* Format: date-time
|
|
150
|
-
* @example 2026-07-15T12:03:29.322Z
|
|
151
|
-
*/
|
|
152
|
-
pricingUpdatedAt: string | undefined;
|
|
143
|
+
lockedFields: string[];
|
|
153
144
|
/**
|
|
154
145
|
* Format: date-time
|
|
155
146
|
* @example 2026-07-15T12:03:29.322Z
|
|
@@ -179,33 +170,13 @@ interface components {
|
|
|
179
170
|
firstEdition: boolean;
|
|
180
171
|
wPromo: boolean;
|
|
181
172
|
};
|
|
182
|
-
|
|
173
|
+
CatalogItem: components["schemas"]["Card"] | components["schemas"]["Product"];
|
|
174
|
+
CatalogItemPricing: {
|
|
183
175
|
/**
|
|
184
176
|
* @description Resource identifier
|
|
185
177
|
* @example 6a577711abc1ce71383d3e10
|
|
186
178
|
*/
|
|
187
179
|
id: string;
|
|
188
|
-
name: string;
|
|
189
|
-
shortName: string | undefined;
|
|
190
|
-
technicalName: string;
|
|
191
|
-
brand: components["schemas"]["Brand"];
|
|
192
|
-
manufacturer: string;
|
|
193
|
-
modelNumber: string | undefined;
|
|
194
|
-
category: components["schemas"]["CategoryRef"] | undefined;
|
|
195
|
-
expansion: components["schemas"]["ExpansionRef"] | undefined;
|
|
196
|
-
/**
|
|
197
|
-
* @description Printing language of the item
|
|
198
|
-
* @example JPN
|
|
199
|
-
* @enum {string|null}
|
|
200
|
-
*/
|
|
201
|
-
language: "ENG" | "JPN" | "CHI" | undefined;
|
|
202
|
-
alternativeNames: components["schemas"]["AlternativeName"][];
|
|
203
|
-
supportsMultipackPricing: boolean;
|
|
204
|
-
/**
|
|
205
|
-
* @description Absolute asset URL, or null when absent
|
|
206
|
-
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
207
|
-
*/
|
|
208
|
-
imageUrl: string | undefined;
|
|
209
180
|
/**
|
|
210
181
|
* @description Cheapest current shop price, in SEK
|
|
211
182
|
* @example 149.5
|
|
@@ -225,33 +196,11 @@ interface components {
|
|
|
225
196
|
* @example 2026-07-15T12:03:29.322Z
|
|
226
197
|
*/
|
|
227
198
|
pricingUpdatedAt: string | undefined;
|
|
228
|
-
/**
|
|
229
|
-
* Format: date-time
|
|
230
|
-
* @example 2026-07-15T12:03:29.322Z
|
|
231
|
-
*/
|
|
232
|
-
createdAt: string;
|
|
233
|
-
/**
|
|
234
|
-
* Format: date-time
|
|
235
|
-
* @example 2026-07-15T12:03:29.322Z
|
|
236
|
-
*/
|
|
237
|
-
updatedAt: string;
|
|
238
|
-
/** @enum {string} */
|
|
239
|
-
kind: "card";
|
|
240
|
-
/** @example 4/102 */
|
|
241
|
-
cardNumber: string;
|
|
242
|
-
/** @example Rare Holo */
|
|
243
|
-
rarity: string | undefined;
|
|
244
|
-
artist: string | undefined;
|
|
245
|
-
cardmarketId: string | undefined;
|
|
246
|
-
tcgplayerId: string | undefined;
|
|
247
|
-
variants: components["schemas"]["CardVariants"] | undefined;
|
|
248
|
-
prisjaktId: string | undefined;
|
|
249
199
|
lowestShopOffer: components["schemas"]["LowestShopOffer"] | undefined;
|
|
250
200
|
referencePriceSnapshotsByProvider: {
|
|
251
201
|
[key: string]: components["schemas"]["ReferencePriceSummary"];
|
|
252
202
|
};
|
|
253
203
|
};
|
|
254
|
-
CatalogItem: components["schemas"]["Card"] | components["schemas"]["Product"];
|
|
255
204
|
CatalogItemRef: {
|
|
256
205
|
/**
|
|
257
206
|
* @description Resource identifier
|
|
@@ -260,6 +209,14 @@ interface components {
|
|
|
260
209
|
id: string;
|
|
261
210
|
name: string;
|
|
262
211
|
};
|
|
212
|
+
CatalogSlug: {
|
|
213
|
+
technicalName: string;
|
|
214
|
+
/**
|
|
215
|
+
* Format: date-time
|
|
216
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
217
|
+
*/
|
|
218
|
+
updatedAt: string;
|
|
219
|
+
};
|
|
263
220
|
CategoryRef: {
|
|
264
221
|
/**
|
|
265
222
|
* @description Resource identifier
|
|
@@ -320,17 +277,17 @@ interface components {
|
|
|
320
277
|
*/
|
|
321
278
|
releaseDate: string | undefined;
|
|
322
279
|
/**
|
|
323
|
-
* @description Absolute asset URL, or null when absent
|
|
280
|
+
* @description Absolute asset URL, or null when absent. For best performance, please rehost this image on your own storage/CDN and cache it there rather than hotlinking it — see the API description's "Image hosting" section.
|
|
324
281
|
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
325
282
|
*/
|
|
326
283
|
logoUrl: string | undefined;
|
|
327
284
|
/**
|
|
328
|
-
* @description Absolute asset URL, or null when absent
|
|
285
|
+
* @description Absolute asset URL, or null when absent. For best performance, please rehost this image on your own storage/CDN and cache it there rather than hotlinking it — see the API description's "Image hosting" section.
|
|
329
286
|
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
330
287
|
*/
|
|
331
288
|
symbolUrl: string | undefined;
|
|
332
289
|
/**
|
|
333
|
-
* @description Absolute asset URL, or null when absent
|
|
290
|
+
* @description Absolute asset URL, or null when absent. For best performance, please rehost this image on your own storage/CDN and cache it there rather than hotlinking it — see the API description's "Image hosting" section.
|
|
334
291
|
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
335
292
|
*/
|
|
336
293
|
imageUrl: string | undefined;
|
|
@@ -358,11 +315,11 @@ interface components {
|
|
|
358
315
|
expansion: components["schemas"]["ExpansionRef"];
|
|
359
316
|
cards: {
|
|
360
317
|
count: number;
|
|
361
|
-
items: components["schemas"]["
|
|
318
|
+
items: components["schemas"]["Card"][];
|
|
362
319
|
};
|
|
363
320
|
sealed: {
|
|
364
321
|
count: number;
|
|
365
|
-
items: components["schemas"]["
|
|
322
|
+
items: components["schemas"]["Product"][];
|
|
366
323
|
};
|
|
367
324
|
};
|
|
368
325
|
ExpansionLivePricing: {
|
|
@@ -401,17 +358,17 @@ interface components {
|
|
|
401
358
|
*/
|
|
402
359
|
releaseDate: string | undefined;
|
|
403
360
|
/**
|
|
404
|
-
* @description Absolute asset URL, or null when absent
|
|
361
|
+
* @description Absolute asset URL, or null when absent. For best performance, please rehost this image on your own storage/CDN and cache it there rather than hotlinking it — see the API description's "Image hosting" section.
|
|
405
362
|
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
406
363
|
*/
|
|
407
364
|
logoUrl: string | undefined;
|
|
408
365
|
/**
|
|
409
|
-
* @description Absolute asset URL, or null when absent
|
|
366
|
+
* @description Absolute asset URL, or null when absent. For best performance, please rehost this image on your own storage/CDN and cache it there rather than hotlinking it — see the API description's "Image hosting" section.
|
|
410
367
|
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
411
368
|
*/
|
|
412
369
|
symbolUrl: string | undefined;
|
|
413
370
|
/**
|
|
414
|
-
* @description Absolute asset URL, or null when absent
|
|
371
|
+
* @description Absolute asset URL, or null when absent. For best performance, please rehost this image on your own storage/CDN and cache it there rather than hotlinking it — see the API description's "Image hosting" section.
|
|
415
372
|
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
416
373
|
*/
|
|
417
374
|
imageUrl: string | undefined;
|
|
@@ -563,6 +520,10 @@ interface components {
|
|
|
563
520
|
shortName: string | undefined;
|
|
564
521
|
technicalName: string;
|
|
565
522
|
cardNumber: string | undefined;
|
|
523
|
+
/**
|
|
524
|
+
* @description Absolute asset URL, or null when absent. For best performance, please rehost this image on your own storage/CDN and cache it there rather than hotlinking it — see the API description's "Image hosting" section.
|
|
525
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
526
|
+
*/
|
|
566
527
|
imageUrl: string | undefined;
|
|
567
528
|
language: string | undefined;
|
|
568
529
|
priceChartingId: string | undefined;
|
|
@@ -575,6 +536,36 @@ interface components {
|
|
|
575
536
|
id: string;
|
|
576
537
|
expansion: components["schemas"]["ExpansionRef"];
|
|
577
538
|
buckets: components["schemas"]["PackRateBucket"][];
|
|
539
|
+
/**
|
|
540
|
+
* @example [
|
|
541
|
+
* "code",
|
|
542
|
+
* "common",
|
|
543
|
+
* "common",
|
|
544
|
+
* "common",
|
|
545
|
+
* "uncommon",
|
|
546
|
+
* "uncommon",
|
|
547
|
+
* "uncommon",
|
|
548
|
+
* "reverse",
|
|
549
|
+
* "common",
|
|
550
|
+
* "hit",
|
|
551
|
+
* "energy"
|
|
552
|
+
* ]
|
|
553
|
+
*/
|
|
554
|
+
slotOrder: ("common" | "uncommon" | "reverse" | "hit" | "energy" | "code")[] | undefined;
|
|
555
|
+
source: {
|
|
556
|
+
/** @example pullrates.gg */
|
|
557
|
+
name: string;
|
|
558
|
+
/**
|
|
559
|
+
* Format: uri
|
|
560
|
+
* @description The specific page these rates were read from, if any
|
|
561
|
+
*/
|
|
562
|
+
url: string | undefined;
|
|
563
|
+
/**
|
|
564
|
+
* Format: date-time
|
|
565
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
566
|
+
*/
|
|
567
|
+
fetchedAt: string | undefined;
|
|
568
|
+
} | undefined;
|
|
578
569
|
/**
|
|
579
570
|
* Format: date-time
|
|
580
571
|
* @example 2026-07-15T12:03:29.322Z
|
|
@@ -632,29 +623,11 @@ interface components {
|
|
|
632
623
|
alternativeNames: components["schemas"]["AlternativeName"][];
|
|
633
624
|
supportsMultipackPricing: boolean;
|
|
634
625
|
/**
|
|
635
|
-
* @description Absolute asset URL, or null when absent
|
|
626
|
+
* @description Absolute asset URL, or null when absent. For best performance, please rehost this image on your own storage/CDN and cache it there rather than hotlinking it — see the API description's "Image hosting" section.
|
|
636
627
|
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
637
628
|
*/
|
|
638
629
|
imageUrl: string | undefined;
|
|
639
|
-
|
|
640
|
-
* @description Cheapest current shop price, in SEK
|
|
641
|
-
* @example 149.5
|
|
642
|
-
*/
|
|
643
|
-
retailPrice: number | undefined;
|
|
644
|
-
/**
|
|
645
|
-
* @description Estimated market value, in SEK
|
|
646
|
-
* @example 149.5
|
|
647
|
-
*/
|
|
648
|
-
estimatedValue: number | undefined;
|
|
649
|
-
/** @description Active shops currently tracking this item */
|
|
650
|
-
shopCount: number;
|
|
651
|
-
/** @description Observations the estimate rests on */
|
|
652
|
-
pricingDataPoints: number;
|
|
653
|
-
/**
|
|
654
|
-
* Format: date-time
|
|
655
|
-
* @example 2026-07-15T12:03:29.322Z
|
|
656
|
-
*/
|
|
657
|
-
pricingUpdatedAt: string | undefined;
|
|
630
|
+
lockedFields: string[];
|
|
658
631
|
/**
|
|
659
632
|
* Format: date-time
|
|
660
633
|
* @example 2026-07-15T12:03:29.322Z
|
|
@@ -673,77 +646,9 @@ interface components {
|
|
|
673
646
|
priceChartingId: string | undefined;
|
|
674
647
|
prisjaktId: string | undefined;
|
|
675
648
|
};
|
|
676
|
-
ProductWithPricing: {
|
|
677
|
-
/**
|
|
678
|
-
* @description Resource identifier
|
|
679
|
-
* @example 6a577711abc1ce71383d3e10
|
|
680
|
-
*/
|
|
681
|
-
id: string;
|
|
682
|
-
name: string;
|
|
683
|
-
shortName: string | undefined;
|
|
684
|
-
technicalName: string;
|
|
685
|
-
brand: components["schemas"]["Brand"];
|
|
686
|
-
manufacturer: string;
|
|
687
|
-
modelNumber: string | undefined;
|
|
688
|
-
category: components["schemas"]["CategoryRef"] | undefined;
|
|
689
|
-
expansion: components["schemas"]["ExpansionRef"] | undefined;
|
|
690
|
-
/**
|
|
691
|
-
* @description Printing language of the item
|
|
692
|
-
* @example JPN
|
|
693
|
-
* @enum {string|null}
|
|
694
|
-
*/
|
|
695
|
-
language: "ENG" | "JPN" | "CHI" | undefined;
|
|
696
|
-
alternativeNames: components["schemas"]["AlternativeName"][];
|
|
697
|
-
supportsMultipackPricing: boolean;
|
|
698
|
-
/**
|
|
699
|
-
* @description Absolute asset URL, or null when absent
|
|
700
|
-
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
701
|
-
*/
|
|
702
|
-
imageUrl: string | undefined;
|
|
703
|
-
/**
|
|
704
|
-
* @description Cheapest current shop price, in SEK
|
|
705
|
-
* @example 149.5
|
|
706
|
-
*/
|
|
707
|
-
retailPrice: number | undefined;
|
|
708
|
-
/**
|
|
709
|
-
* @description Estimated market value, in SEK
|
|
710
|
-
* @example 149.5
|
|
711
|
-
*/
|
|
712
|
-
estimatedValue: number | undefined;
|
|
713
|
-
/** @description Active shops currently tracking this item */
|
|
714
|
-
shopCount: number;
|
|
715
|
-
/** @description Observations the estimate rests on */
|
|
716
|
-
pricingDataPoints: number;
|
|
717
|
-
/**
|
|
718
|
-
* Format: date-time
|
|
719
|
-
* @example 2026-07-15T12:03:29.322Z
|
|
720
|
-
*/
|
|
721
|
-
pricingUpdatedAt: string | undefined;
|
|
722
|
-
/**
|
|
723
|
-
* Format: date-time
|
|
724
|
-
* @example 2026-07-15T12:03:29.322Z
|
|
725
|
-
*/
|
|
726
|
-
createdAt: string;
|
|
727
|
-
/**
|
|
728
|
-
* Format: date-time
|
|
729
|
-
* @example 2026-07-15T12:03:29.322Z
|
|
730
|
-
*/
|
|
731
|
-
updatedAt: string;
|
|
732
|
-
/** @enum {string} */
|
|
733
|
-
kind: "sealed";
|
|
734
|
-
upc: string | undefined;
|
|
735
|
-
asin: string | undefined;
|
|
736
|
-
epid: string | undefined;
|
|
737
|
-
priceChartingId: string | undefined;
|
|
738
|
-
prisjaktId: string | undefined;
|
|
739
|
-
lowestShopOffer: components["schemas"]["LowestShopOffer"] | undefined;
|
|
740
|
-
referencePriceSnapshotsByProvider: {
|
|
741
|
-
[key: string]: components["schemas"]["ReferencePriceSummary"];
|
|
742
|
-
};
|
|
743
|
-
};
|
|
744
649
|
ReferencePriceSeries: {
|
|
745
650
|
/** @enum {string} */
|
|
746
|
-
source: "tcgdex" | "cmapi" | "tradera";
|
|
651
|
+
source: "tcgdex" | "cmapi" | "tradera" | "pokemonpricetracker";
|
|
747
652
|
/** @enum {string} */
|
|
748
653
|
provider: "cardmarket" | "tcgplayer" | "ebay" | "tradera";
|
|
749
654
|
/** @enum {string|null} */
|
|
@@ -798,7 +703,7 @@ interface components {
|
|
|
798
703
|
technicalName: string;
|
|
799
704
|
websiteUrl: string | undefined;
|
|
800
705
|
/**
|
|
801
|
-
* @description Absolute asset URL, or null when absent
|
|
706
|
+
* @description Absolute asset URL, or null when absent. For best performance, please rehost this image on your own storage/CDN and cache it there rather than hotlinking it — see the API description's "Image hosting" section.
|
|
802
707
|
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
803
708
|
*/
|
|
804
709
|
logoUrl: string | undefined;
|
|
@@ -1050,6 +955,10 @@ interface components {
|
|
|
1050
955
|
ShopSummary: {
|
|
1051
956
|
technicalName: string;
|
|
1052
957
|
name: string;
|
|
958
|
+
/**
|
|
959
|
+
* @description Absolute asset URL, or null when absent. For best performance, please rehost this image on your own storage/CDN and cache it there rather than hotlinking it — see the API description's "Image hosting" section.
|
|
960
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
961
|
+
*/
|
|
1053
962
|
logoUrl: string | undefined;
|
|
1054
963
|
websiteUrl: string | undefined;
|
|
1055
964
|
description: string | undefined;
|
|
@@ -1193,9 +1102,9 @@ interface components {
|
|
|
1193
1102
|
* not silent drift.
|
|
1194
1103
|
*
|
|
1195
1104
|
* The API registers `Brand`, `CategoryRef`, `ExpansionRef`, `ShopRef` etc. as their own named
|
|
1196
|
-
* components and `$ref`s them wherever they're embedded (in `
|
|
1197
|
-
*
|
|
1198
|
-
*
|
|
1105
|
+
* components and `$ref`s them wherever they're embedded (in `Card`, `Product`, `PackRate`, the
|
|
1106
|
+
* shop-match schemas, ...), so those are pulled by name directly. `CardSchema` is still the
|
|
1107
|
+
* extraction source for the handful of shapes that aren't independently registered
|
|
1199
1108
|
* (`lowestShopOffer`'s `bargain`, the reference-price snapshot map).
|
|
1200
1109
|
*/
|
|
1201
1110
|
type CardSchema = {
|
|
@@ -1207,43 +1116,25 @@ type CardSchema = {
|
|
|
1207
1116
|
name: string;
|
|
1208
1117
|
shortName: string | undefined;
|
|
1209
1118
|
technicalName: string;
|
|
1210
|
-
brand:
|
|
1119
|
+
brand: BrandRef;
|
|
1211
1120
|
manufacturer: string;
|
|
1212
1121
|
modelNumber: string | undefined;
|
|
1213
|
-
category:
|
|
1214
|
-
expansion:
|
|
1122
|
+
category: CategoryRef | undefined;
|
|
1123
|
+
expansion: ExpansionRef | undefined;
|
|
1215
1124
|
/**
|
|
1216
1125
|
* @description Printing language of the item
|
|
1217
1126
|
* @example JPN
|
|
1218
1127
|
* @enum {string|null}
|
|
1219
1128
|
*/
|
|
1220
1129
|
language: "ENG" | "JPN" | "CHI" | undefined;
|
|
1221
|
-
alternativeNames:
|
|
1130
|
+
alternativeNames: AlternativeName[];
|
|
1222
1131
|
supportsMultipackPricing: boolean;
|
|
1223
1132
|
/**
|
|
1224
|
-
* @description Absolute asset URL, or null when absent
|
|
1133
|
+
* @description Absolute asset URL, or null when absent. For best performance, please rehost this image on your own storage/CDN and cache it there rather than hotlinking it — see the API description's "Image hosting" section.
|
|
1225
1134
|
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
1226
1135
|
*/
|
|
1227
1136
|
imageUrl: string | undefined;
|
|
1228
|
-
|
|
1229
|
-
* @description Cheapest current shop price, in SEK
|
|
1230
|
-
* @example 149.5
|
|
1231
|
-
*/
|
|
1232
|
-
retailPrice: number | undefined;
|
|
1233
|
-
/**
|
|
1234
|
-
* @description Estimated market value, in SEK
|
|
1235
|
-
* @example 149.5
|
|
1236
|
-
*/
|
|
1237
|
-
estimatedValue: number | undefined;
|
|
1238
|
-
/** @description Active shops currently tracking this item */
|
|
1239
|
-
shopCount: number;
|
|
1240
|
-
/** @description Observations the estimate rests on */
|
|
1241
|
-
pricingDataPoints: number;
|
|
1242
|
-
/**
|
|
1243
|
-
* Format: date-time
|
|
1244
|
-
* @example 2026-07-15T12:03:29.322Z
|
|
1245
|
-
*/
|
|
1246
|
-
pricingUpdatedAt: string | undefined;
|
|
1137
|
+
lockedFields: string[];
|
|
1247
1138
|
/**
|
|
1248
1139
|
* Format: date-time
|
|
1249
1140
|
* @example 2026-07-15T12:03:29.322Z
|
|
@@ -1263,15 +1154,11 @@ type CardSchema = {
|
|
|
1263
1154
|
artist: string | undefined;
|
|
1264
1155
|
cardmarketId: string | undefined;
|
|
1265
1156
|
tcgplayerId: string | undefined;
|
|
1266
|
-
variants:
|
|
1157
|
+
variants: CardVariants | undefined;
|
|
1267
1158
|
prisjaktId: string | undefined;
|
|
1268
|
-
lowestShopOffer: components["schemas"]["LowestShopOffer"] | undefined;
|
|
1269
|
-
referencePriceSnapshotsByProvider: {
|
|
1270
|
-
[key: string]: components["schemas"]["ReferencePriceSummary"];
|
|
1271
|
-
};
|
|
1272
1159
|
};
|
|
1273
1160
|
type LowestShopOfferSchema = {
|
|
1274
|
-
shop:
|
|
1161
|
+
shop: ShopRef;
|
|
1275
1162
|
url: string;
|
|
1276
1163
|
/** @example 149.5 */
|
|
1277
1164
|
price: number;
|
|
@@ -1330,6 +1217,11 @@ interface PaginationParams {
|
|
|
1330
1217
|
type AlternativeName = {
|
|
1331
1218
|
name: string;
|
|
1332
1219
|
shortName: string | undefined;
|
|
1220
|
+
/**
|
|
1221
|
+
* @description ISO 639-1 language code the alias is written in (e.g. "sv"), possibly combined ("sv/da/no"). Null means unspecified.
|
|
1222
|
+
* @example sv
|
|
1223
|
+
*/
|
|
1224
|
+
language: string | undefined;
|
|
1333
1225
|
};
|
|
1334
1226
|
type BrandRef = {
|
|
1335
1227
|
/**
|
|
@@ -1395,17 +1287,17 @@ type ExpansionRef = {
|
|
|
1395
1287
|
*/
|
|
1396
1288
|
releaseDate: string | undefined;
|
|
1397
1289
|
/**
|
|
1398
|
-
* @description Absolute asset URL, or null when absent
|
|
1290
|
+
* @description Absolute asset URL, or null when absent. For best performance, please rehost this image on your own storage/CDN and cache it there rather than hotlinking it — see the API description's "Image hosting" section.
|
|
1399
1291
|
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
1400
1292
|
*/
|
|
1401
1293
|
logoUrl: string | undefined;
|
|
1402
1294
|
/**
|
|
1403
|
-
* @description Absolute asset URL, or null when absent
|
|
1295
|
+
* @description Absolute asset URL, or null when absent. For best performance, please rehost this image on your own storage/CDN and cache it there rather than hotlinking it — see the API description's "Image hosting" section.
|
|
1404
1296
|
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
1405
1297
|
*/
|
|
1406
1298
|
symbolUrl: string | undefined;
|
|
1407
1299
|
/**
|
|
1408
|
-
* @description Absolute asset URL, or null when absent
|
|
1300
|
+
* @description Absolute asset URL, or null when absent. For best performance, please rehost this image on your own storage/CDN and cache it there rather than hotlinking it — see the API description's "Image hosting" section.
|
|
1409
1301
|
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
1410
1302
|
*/
|
|
1411
1303
|
imageUrl: string | undefined;
|
|
@@ -1426,7 +1318,6 @@ type BargainInfo = {
|
|
|
1426
1318
|
};
|
|
1427
1319
|
/** The cheapest current shop offer for a card or product. */
|
|
1428
1320
|
type LowestShopOffer = LowestShopOfferSchema;
|
|
1429
|
-
type ReferencePriceProvider = "tradera" | "cardmarket" | "tcgplayer" | "ebay";
|
|
1430
1321
|
type ReferencePriceSnapshot = {
|
|
1431
1322
|
/** @enum {string} */
|
|
1432
1323
|
provider: "cardmarket" | "tcgplayer" | "ebay" | "tradera";
|
|
@@ -1448,11 +1339,13 @@ type ReferencePriceSnapshot = {
|
|
|
1448
1339
|
*/
|
|
1449
1340
|
snapshotDate: string;
|
|
1450
1341
|
};
|
|
1342
|
+
type ReferencePriceProvider = "tradera" | "cardmarket" | "tcgplayer" | "ebay";
|
|
1451
1343
|
/** Keyed by provider, at most one snapshot per provider. */
|
|
1452
1344
|
type ReferencePriceSnapshotsByProvider = Partial<Record<ReferencePriceProvider, ReferencePriceSnapshot>>;
|
|
1453
1345
|
/** A card, as returned by `client.cards.get()` / `client.cards.list()`, and as embedded in
|
|
1454
1346
|
* `client.expansions.products()`. `kind: 'card'` is a literal on the generated type, which is what
|
|
1455
|
-
* makes `CatalogItem` (below) discriminate cleanly.
|
|
1347
|
+
* makes `CatalogItem` (below) discriminate cleanly. Content only — no pricing fields; fetch those
|
|
1348
|
+
* separately via `client.cards.pricing()` / `.pricingBatch()`. */
|
|
1456
1349
|
type Card = {
|
|
1457
1350
|
/**
|
|
1458
1351
|
* @description Resource identifier
|
|
@@ -1462,43 +1355,25 @@ type Card = {
|
|
|
1462
1355
|
name: string;
|
|
1463
1356
|
shortName: string | undefined;
|
|
1464
1357
|
technicalName: string;
|
|
1465
|
-
brand:
|
|
1358
|
+
brand: BrandRef;
|
|
1466
1359
|
manufacturer: string;
|
|
1467
1360
|
modelNumber: string | undefined;
|
|
1468
|
-
category:
|
|
1469
|
-
expansion:
|
|
1361
|
+
category: CategoryRef | undefined;
|
|
1362
|
+
expansion: ExpansionRef | undefined;
|
|
1470
1363
|
/**
|
|
1471
1364
|
* @description Printing language of the item
|
|
1472
1365
|
* @example JPN
|
|
1473
1366
|
* @enum {string|null}
|
|
1474
1367
|
*/
|
|
1475
1368
|
language: "ENG" | "JPN" | "CHI" | undefined;
|
|
1476
|
-
alternativeNames:
|
|
1369
|
+
alternativeNames: AlternativeName[];
|
|
1477
1370
|
supportsMultipackPricing: boolean;
|
|
1478
1371
|
/**
|
|
1479
|
-
* @description Absolute asset URL, or null when absent
|
|
1372
|
+
* @description Absolute asset URL, or null when absent. For best performance, please rehost this image on your own storage/CDN and cache it there rather than hotlinking it — see the API description's "Image hosting" section.
|
|
1480
1373
|
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
1481
1374
|
*/
|
|
1482
1375
|
imageUrl: string | undefined;
|
|
1483
|
-
|
|
1484
|
-
* @description Cheapest current shop price, in SEK
|
|
1485
|
-
* @example 149.5
|
|
1486
|
-
*/
|
|
1487
|
-
retailPrice: number | undefined;
|
|
1488
|
-
/**
|
|
1489
|
-
* @description Estimated market value, in SEK
|
|
1490
|
-
* @example 149.5
|
|
1491
|
-
*/
|
|
1492
|
-
estimatedValue: number | undefined;
|
|
1493
|
-
/** @description Active shops currently tracking this item */
|
|
1494
|
-
shopCount: number;
|
|
1495
|
-
/** @description Observations the estimate rests on */
|
|
1496
|
-
pricingDataPoints: number;
|
|
1497
|
-
/**
|
|
1498
|
-
* Format: date-time
|
|
1499
|
-
* @example 2026-07-15T12:03:29.322Z
|
|
1500
|
-
*/
|
|
1501
|
-
pricingUpdatedAt: string | undefined;
|
|
1376
|
+
lockedFields: string[];
|
|
1502
1377
|
/**
|
|
1503
1378
|
* Format: date-time
|
|
1504
1379
|
* @example 2026-07-15T12:03:29.322Z
|
|
@@ -1518,15 +1393,12 @@ type Card = {
|
|
|
1518
1393
|
artist: string | undefined;
|
|
1519
1394
|
cardmarketId: string | undefined;
|
|
1520
1395
|
tcgplayerId: string | undefined;
|
|
1521
|
-
variants:
|
|
1396
|
+
variants: CardVariants | undefined;
|
|
1522
1397
|
prisjaktId: string | undefined;
|
|
1523
|
-
lowestShopOffer: components["schemas"]["LowestShopOffer"] | undefined;
|
|
1524
|
-
referencePriceSnapshotsByProvider: {
|
|
1525
|
-
[key: string]: components["schemas"]["ReferencePriceSummary"];
|
|
1526
|
-
};
|
|
1527
1398
|
};
|
|
1528
1399
|
/** A sealed product (booster box, ETB, tin, ...), as returned by `client.products.get()` /
|
|
1529
|
-
* `client.products.list()`. `kind: 'sealed'` is a literal on the generated type.
|
|
1400
|
+
* `client.products.list()`. `kind: 'sealed'` is a literal on the generated type. Content only — no
|
|
1401
|
+
* pricing fields; fetch those separately via `client.products.pricing()` / `.pricingBatch()`. */
|
|
1530
1402
|
type SealedProduct = {
|
|
1531
1403
|
/**
|
|
1532
1404
|
* @description Resource identifier
|
|
@@ -1536,24 +1408,55 @@ type SealedProduct = {
|
|
|
1536
1408
|
name: string;
|
|
1537
1409
|
shortName: string | undefined;
|
|
1538
1410
|
technicalName: string;
|
|
1539
|
-
brand:
|
|
1411
|
+
brand: BrandRef;
|
|
1540
1412
|
manufacturer: string;
|
|
1541
1413
|
modelNumber: string | undefined;
|
|
1542
|
-
category:
|
|
1543
|
-
expansion:
|
|
1414
|
+
category: CategoryRef | undefined;
|
|
1415
|
+
expansion: ExpansionRef | undefined;
|
|
1544
1416
|
/**
|
|
1545
1417
|
* @description Printing language of the item
|
|
1546
1418
|
* @example JPN
|
|
1547
1419
|
* @enum {string|null}
|
|
1548
1420
|
*/
|
|
1549
1421
|
language: "ENG" | "JPN" | "CHI" | undefined;
|
|
1550
|
-
alternativeNames:
|
|
1422
|
+
alternativeNames: AlternativeName[];
|
|
1551
1423
|
supportsMultipackPricing: boolean;
|
|
1552
1424
|
/**
|
|
1553
|
-
* @description Absolute asset URL, or null when absent
|
|
1425
|
+
* @description Absolute asset URL, or null when absent. For best performance, please rehost this image on your own storage/CDN and cache it there rather than hotlinking it — see the API description's "Image hosting" section.
|
|
1554
1426
|
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
1555
1427
|
*/
|
|
1556
1428
|
imageUrl: string | undefined;
|
|
1429
|
+
lockedFields: string[];
|
|
1430
|
+
/**
|
|
1431
|
+
* Format: date-time
|
|
1432
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
1433
|
+
*/
|
|
1434
|
+
createdAt: string;
|
|
1435
|
+
/**
|
|
1436
|
+
* Format: date-time
|
|
1437
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
1438
|
+
*/
|
|
1439
|
+
updatedAt: string;
|
|
1440
|
+
/** @enum {string} */
|
|
1441
|
+
kind: "sealed";
|
|
1442
|
+
upc: string | undefined;
|
|
1443
|
+
asin: string | undefined;
|
|
1444
|
+
epid: string | undefined;
|
|
1445
|
+
priceChartingId: string | undefined;
|
|
1446
|
+
prisjaktId: string | undefined;
|
|
1447
|
+
};
|
|
1448
|
+
/** A card or sealed product, discriminated on `kind`. */
|
|
1449
|
+
type CatalogItem = Card | SealedProduct;
|
|
1450
|
+
/** Pricing for one catalog item (card or sealed product) — `retailPrice`, `estimatedValue`,
|
|
1451
|
+
* `lowestShopOffer`, `referencePriceSnapshotsByProvider` — refreshed once a day by the nightly
|
|
1452
|
+
* pricing/scraper jobs, not embedded in `Card`/`SealedProduct` above. Returned by
|
|
1453
|
+
* `client.cards.pricing()` / `.pricingBatch()` and their `client.products` equivalents. */
|
|
1454
|
+
type CatalogItemPricing = {
|
|
1455
|
+
/**
|
|
1456
|
+
* @description Resource identifier
|
|
1457
|
+
* @example 6a577711abc1ce71383d3e10
|
|
1458
|
+
*/
|
|
1459
|
+
id: string;
|
|
1557
1460
|
/**
|
|
1558
1461
|
* @description Cheapest current shop price, in SEK
|
|
1559
1462
|
* @example 149.5
|
|
@@ -1573,30 +1476,11 @@ type SealedProduct = {
|
|
|
1573
1476
|
* @example 2026-07-15T12:03:29.322Z
|
|
1574
1477
|
*/
|
|
1575
1478
|
pricingUpdatedAt: string | undefined;
|
|
1576
|
-
|
|
1577
|
-
* Format: date-time
|
|
1578
|
-
* @example 2026-07-15T12:03:29.322Z
|
|
1579
|
-
*/
|
|
1580
|
-
createdAt: string;
|
|
1581
|
-
/**
|
|
1582
|
-
* Format: date-time
|
|
1583
|
-
* @example 2026-07-15T12:03:29.322Z
|
|
1584
|
-
*/
|
|
1585
|
-
updatedAt: string;
|
|
1586
|
-
/** @enum {string} */
|
|
1587
|
-
kind: "sealed";
|
|
1588
|
-
upc: string | undefined;
|
|
1589
|
-
asin: string | undefined;
|
|
1590
|
-
epid: string | undefined;
|
|
1591
|
-
priceChartingId: string | undefined;
|
|
1592
|
-
prisjaktId: string | undefined;
|
|
1593
|
-
lowestShopOffer: components["schemas"]["LowestShopOffer"] | undefined;
|
|
1479
|
+
lowestShopOffer: LowestShopOfferSchema | undefined;
|
|
1594
1480
|
referencePriceSnapshotsByProvider: {
|
|
1595
|
-
[key: string]:
|
|
1481
|
+
[key: string]: ReferencePriceSnapshot;
|
|
1596
1482
|
};
|
|
1597
1483
|
};
|
|
1598
|
-
/** A card or sealed product, discriminated on `kind`. */
|
|
1599
|
-
type CatalogItem = Card | SealedProduct;
|
|
1600
1484
|
type CardVariants = {
|
|
1601
1485
|
normal: boolean;
|
|
1602
1486
|
holo: boolean;
|
|
@@ -1618,6 +1502,10 @@ type MatchedItemRef = {
|
|
|
1618
1502
|
shortName: string | undefined;
|
|
1619
1503
|
technicalName: string;
|
|
1620
1504
|
cardNumber: string | undefined;
|
|
1505
|
+
/**
|
|
1506
|
+
* @description Absolute asset URL, or null when absent. For best performance, please rehost this image on your own storage/CDN and cache it there rather than hotlinking it — see the API description's "Image hosting" section.
|
|
1507
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
1508
|
+
*/
|
|
1621
1509
|
imageUrl: string | undefined;
|
|
1622
1510
|
language: string | undefined;
|
|
1623
1511
|
priceChartingId: string | undefined;
|
|
@@ -1633,7 +1521,7 @@ type Bargain = {
|
|
|
1633
1521
|
* @example SEK
|
|
1634
1522
|
*/
|
|
1635
1523
|
currency: string | undefined;
|
|
1636
|
-
shop:
|
|
1524
|
+
shop: ShopRef;
|
|
1637
1525
|
inStock: boolean;
|
|
1638
1526
|
/**
|
|
1639
1527
|
* Format: date-time
|
|
@@ -1650,6 +1538,10 @@ type Bargain = {
|
|
|
1650
1538
|
kind: "sealed" | "card";
|
|
1651
1539
|
name: string;
|
|
1652
1540
|
technicalName: string;
|
|
1541
|
+
/**
|
|
1542
|
+
* @description Absolute asset URL, or null when absent. For best performance, please rehost this image on your own storage/CDN and cache it there rather than hotlinking it — see the API description's "Image hosting" section.
|
|
1543
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
1544
|
+
*/
|
|
1653
1545
|
imageUrl: string | undefined;
|
|
1654
1546
|
};
|
|
1655
1547
|
bargain: {
|
|
@@ -1668,6 +1560,10 @@ type BargainProductRef = {
|
|
|
1668
1560
|
kind: "sealed" | "card";
|
|
1669
1561
|
name: string;
|
|
1670
1562
|
technicalName: string;
|
|
1563
|
+
/**
|
|
1564
|
+
* @description Absolute asset URL, or null when absent. For best performance, please rehost this image on your own storage/CDN and cache it there rather than hotlinking it — see the API description's "Image hosting" section.
|
|
1565
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
1566
|
+
*/
|
|
1671
1567
|
imageUrl: string | undefined;
|
|
1672
1568
|
};
|
|
1673
1569
|
/** A set/expansion, as returned by `client.expansions.list()`. This is the full record. The
|
|
@@ -1703,23 +1599,23 @@ type Expansion = {
|
|
|
1703
1599
|
*/
|
|
1704
1600
|
releaseDate: string | undefined;
|
|
1705
1601
|
/**
|
|
1706
|
-
* @description Absolute asset URL, or null when absent
|
|
1602
|
+
* @description Absolute asset URL, or null when absent. For best performance, please rehost this image on your own storage/CDN and cache it there rather than hotlinking it — see the API description's "Image hosting" section.
|
|
1707
1603
|
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
1708
1604
|
*/
|
|
1709
1605
|
logoUrl: string | undefined;
|
|
1710
1606
|
/**
|
|
1711
|
-
* @description Absolute asset URL, or null when absent
|
|
1607
|
+
* @description Absolute asset URL, or null when absent. For best performance, please rehost this image on your own storage/CDN and cache it there rather than hotlinking it — see the API description's "Image hosting" section.
|
|
1712
1608
|
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
1713
1609
|
*/
|
|
1714
1610
|
symbolUrl: string | undefined;
|
|
1715
1611
|
/**
|
|
1716
|
-
* @description Absolute asset URL, or null when absent
|
|
1612
|
+
* @description Absolute asset URL, or null when absent. For best performance, please rehost this image on your own storage/CDN and cache it there rather than hotlinking it — see the API description's "Image hosting" section.
|
|
1717
1613
|
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
1718
1614
|
*/
|
|
1719
1615
|
imageUrl: string | undefined;
|
|
1720
1616
|
year: number | undefined;
|
|
1721
|
-
brand:
|
|
1722
|
-
alternativeNames:
|
|
1617
|
+
brand: BrandRef;
|
|
1618
|
+
alternativeNames: AlternativeName[];
|
|
1723
1619
|
/** @description Sealed products in this expansion */
|
|
1724
1620
|
sealedCount: number;
|
|
1725
1621
|
/** @description Cards in this expansion */
|
|
@@ -1740,14 +1636,14 @@ type Expansion = {
|
|
|
1740
1636
|
/** Response of `client.expansions.products()`: everything in one expansion, cards and sealed
|
|
1741
1637
|
* products kept as separate `cards`/`sealed` groups rather than merged into one mixed list. */
|
|
1742
1638
|
type ExpansionContents = {
|
|
1743
|
-
expansion:
|
|
1639
|
+
expansion: ExpansionRef;
|
|
1744
1640
|
cards: {
|
|
1745
1641
|
count: number;
|
|
1746
|
-
items:
|
|
1642
|
+
items: CardSchema[];
|
|
1747
1643
|
};
|
|
1748
1644
|
sealed: {
|
|
1749
1645
|
count: number;
|
|
1750
|
-
items:
|
|
1646
|
+
items: SealedProduct[];
|
|
1751
1647
|
};
|
|
1752
1648
|
};
|
|
1753
1649
|
/** One card as embedded in `client.expansions.products()`'s `cards` group. `$ref`s `CardWithPricing`
|
|
@@ -1763,7 +1659,7 @@ type ShopMatchWithItemSchema = {
|
|
|
1763
1659
|
* @example 6a577711abc1ce71383d3e10
|
|
1764
1660
|
*/
|
|
1765
1661
|
id: string;
|
|
1766
|
-
shop:
|
|
1662
|
+
shop: ShopRef;
|
|
1767
1663
|
url: string;
|
|
1768
1664
|
/**
|
|
1769
1665
|
* @description Resource identifier
|
|
@@ -1792,9 +1688,9 @@ type ShopMatchWithItemSchema = {
|
|
|
1792
1688
|
/** @enum {string|null} */
|
|
1793
1689
|
gradingCompany: "PSA" | "BGS" | "CGC" | "SGC" | "ACE" | "RAUKCARD" | "TAG" | "GMA" | undefined;
|
|
1794
1690
|
grade: number | undefined;
|
|
1795
|
-
item:
|
|
1796
|
-
expansion:
|
|
1797
|
-
category:
|
|
1691
|
+
item: MatchedItemRef | undefined;
|
|
1692
|
+
expansion: ExpansionRef | undefined;
|
|
1693
|
+
category: CategoryRef | undefined;
|
|
1798
1694
|
/**
|
|
1799
1695
|
* Format: date-time
|
|
1800
1696
|
* @example 2026-07-15T12:03:29.322Z
|
|
@@ -1817,7 +1713,7 @@ type ItemShopMatchSchema = {
|
|
|
1817
1713
|
* @example 6a577711abc1ce71383d3e10
|
|
1818
1714
|
*/
|
|
1819
1715
|
id: string;
|
|
1820
|
-
shop:
|
|
1716
|
+
shop: MatchShop;
|
|
1821
1717
|
url: string;
|
|
1822
1718
|
/**
|
|
1823
1719
|
* @description Resource identifier
|
|
@@ -1877,7 +1773,7 @@ type Shop = {
|
|
|
1877
1773
|
technicalName: string;
|
|
1878
1774
|
websiteUrl: string | undefined;
|
|
1879
1775
|
/**
|
|
1880
|
-
* @description Absolute asset URL, or null when absent
|
|
1776
|
+
* @description Absolute asset URL, or null when absent. For best performance, please rehost this image on your own storage/CDN and cache it there rather than hotlinking it — see the API description's "Image hosting" section.
|
|
1881
1777
|
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
1882
1778
|
*/
|
|
1883
1779
|
logoUrl: string | undefined;
|
|
@@ -1926,6 +1822,10 @@ type Shop = {
|
|
|
1926
1822
|
type ShopSummary = {
|
|
1927
1823
|
technicalName: string;
|
|
1928
1824
|
name: string;
|
|
1825
|
+
/**
|
|
1826
|
+
* @description Absolute asset URL, or null when absent. For best performance, please rehost this image on your own storage/CDN and cache it there rather than hotlinking it — see the API description's "Image hosting" section.
|
|
1827
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
1828
|
+
*/
|
|
1929
1829
|
logoUrl: string | undefined;
|
|
1930
1830
|
websiteUrl: string | undefined;
|
|
1931
1831
|
description: string | undefined;
|
|
@@ -1951,25 +1851,34 @@ type ShopMatchDelivery = {
|
|
|
1951
1851
|
supportsLocalPickup: boolean | undefined;
|
|
1952
1852
|
note: string | undefined;
|
|
1953
1853
|
};
|
|
1854
|
+
/** The shop identity embedded on an item-scoped match (`ItemShopMatch.shop`): like `ShopRef`, plus
|
|
1855
|
+
* delivery terms -- this is the one place a match row prices in shipping. */
|
|
1856
|
+
type MatchShop = {
|
|
1857
|
+
/** @example cardlevels */
|
|
1858
|
+
technicalName: string;
|
|
1859
|
+
/** @example Cardlevels */
|
|
1860
|
+
name: string;
|
|
1861
|
+
delivery: ShopMatchDelivery;
|
|
1862
|
+
};
|
|
1954
1863
|
/** A shop-match row scoped to one already-known item. `client.cards.matches()` and
|
|
1955
1864
|
* `client.products.matches()` drop `item`/`expansion`/`category` since the caller already has
|
|
1956
1865
|
* them, but add delivery terms since you're looking at one listing's total cost here. */
|
|
1957
1866
|
type ItemShopMatch = ItemShopMatchSchema;
|
|
1958
1867
|
/** Response of `client.cards.matches()` / `client.products.matches()`. */
|
|
1959
1868
|
type ItemShopMatches = {
|
|
1960
|
-
item:
|
|
1961
|
-
data:
|
|
1962
|
-
pagination:
|
|
1869
|
+
item: ItemRef;
|
|
1870
|
+
data: ItemShopMatchSchema[];
|
|
1871
|
+
pagination: PageMeta;
|
|
1963
1872
|
};
|
|
1964
1873
|
/** Response of `client.shopMatches.forShop()`: every match, of any item, currently live at one shop. */
|
|
1965
1874
|
type ShopMatchesForShop = {
|
|
1966
|
-
shop:
|
|
1967
|
-
data:
|
|
1968
|
-
pagination:
|
|
1875
|
+
shop: ShopSummary | undefined;
|
|
1876
|
+
data: ShopMatchWithItemSchema[];
|
|
1877
|
+
pagination: PageMeta;
|
|
1969
1878
|
};
|
|
1970
1879
|
/** One row of `client.shopMatches.shopStats()`: match counts per shop, not the matches themselves. */
|
|
1971
1880
|
type ShopMatchStats = {
|
|
1972
|
-
shop:
|
|
1881
|
+
shop: ShopSummary;
|
|
1973
1882
|
matchCount: number;
|
|
1974
1883
|
/** @description Matches resolved to a catalog item */
|
|
1975
1884
|
linkedMatchCount: number;
|
|
@@ -2005,8 +1914,8 @@ type DailyPricePoint = {
|
|
|
2005
1914
|
};
|
|
2006
1915
|
/** Response row of `client.priceStats.daily()`. */
|
|
2007
1916
|
type ItemDailyStats = {
|
|
2008
|
-
item:
|
|
2009
|
-
dailyStats:
|
|
1917
|
+
item: ItemRef;
|
|
1918
|
+
dailyStats: DailyPricePoint[];
|
|
2010
1919
|
};
|
|
2011
1920
|
type EstimatedValue = {
|
|
2012
1921
|
/** @example 149.5 */
|
|
@@ -2020,8 +1929,8 @@ type EstimatedValue = {
|
|
|
2020
1929
|
};
|
|
2021
1930
|
/** Response row of `client.priceStats.estimatedValues()`. */
|
|
2022
1931
|
type ItemEstimatedValue = {
|
|
2023
|
-
item:
|
|
2024
|
-
estimate:
|
|
1932
|
+
item: ItemRef;
|
|
1933
|
+
estimate: EstimatedValue;
|
|
2025
1934
|
};
|
|
2026
1935
|
/** Response row of `client.priceStats.topProducts()`: items ranked by shop availability, not price. */
|
|
2027
1936
|
type TopItem = {
|
|
@@ -2052,8 +1961,38 @@ type PackRate = {
|
|
|
2052
1961
|
* @example 6a577711abc1ce71383d3e10
|
|
2053
1962
|
*/
|
|
2054
1963
|
id: string;
|
|
2055
|
-
expansion:
|
|
2056
|
-
buckets:
|
|
1964
|
+
expansion: ExpansionRef;
|
|
1965
|
+
buckets: PackRateBucket[];
|
|
1966
|
+
/**
|
|
1967
|
+
* @example [
|
|
1968
|
+
* "code",
|
|
1969
|
+
* "common",
|
|
1970
|
+
* "common",
|
|
1971
|
+
* "common",
|
|
1972
|
+
* "uncommon",
|
|
1973
|
+
* "uncommon",
|
|
1974
|
+
* "uncommon",
|
|
1975
|
+
* "reverse",
|
|
1976
|
+
* "common",
|
|
1977
|
+
* "hit",
|
|
1978
|
+
* "energy"
|
|
1979
|
+
* ]
|
|
1980
|
+
*/
|
|
1981
|
+
slotOrder: ("common" | "uncommon" | "reverse" | "hit" | "energy" | "code")[] | undefined;
|
|
1982
|
+
source: {
|
|
1983
|
+
/** @example pullrates.gg */
|
|
1984
|
+
name: string;
|
|
1985
|
+
/**
|
|
1986
|
+
* Format: uri
|
|
1987
|
+
* @description The specific page these rates were read from, if any
|
|
1988
|
+
*/
|
|
1989
|
+
url: string | undefined;
|
|
1990
|
+
/**
|
|
1991
|
+
* Format: date-time
|
|
1992
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
1993
|
+
*/
|
|
1994
|
+
fetchedAt: string | undefined;
|
|
1995
|
+
} | undefined;
|
|
2057
1996
|
/**
|
|
2058
1997
|
* Format: date-time
|
|
2059
1998
|
* @example 2026-07-15T12:03:29.322Z
|
|
@@ -2065,6 +2004,8 @@ type PackRate = {
|
|
|
2065
2004
|
*/
|
|
2066
2005
|
updatedAt: string;
|
|
2067
2006
|
};
|
|
2007
|
+
/** One of the 9 fixed slots in a simulated pack (4 common, 3 uncommon, 1 reverse, 1 hit). */
|
|
2008
|
+
type PackSlot = "common" | "uncommon" | "reverse" | "hit" | "energy" | "code";
|
|
2068
2009
|
/** Platform-wide overview counts, returned by `client.stats.platform()`. */
|
|
2069
2010
|
type PlatformStats = {
|
|
2070
2011
|
shopCount: number;
|
|
@@ -2074,7 +2015,7 @@ type PlatformStats = {
|
|
|
2074
2015
|
priceCount: number;
|
|
2075
2016
|
};
|
|
2076
2017
|
/**
|
|
2077
|
-
* Types for the premium tier: endpoints that need a
|
|
2018
|
+
* Types for the premium tier: endpoints that need a subscriber's API token (see
|
|
2078
2019
|
* `TcgPriserOptions.authToken`, or the `authToken` field on each premium method's params). Split
|
|
2079
2020
|
* out from the public-tier types because none of these mean anything without a token: without one,
|
|
2080
2021
|
* the API just answers `403 premiumRequired`.
|
|
@@ -2083,7 +2024,7 @@ type PlatformStats = {
|
|
|
2083
2024
|
*/
|
|
2084
2025
|
type ReferencePriceSeries = {
|
|
2085
2026
|
/** @enum {string} */
|
|
2086
|
-
source: "tcgdex" | "cmapi" | "tradera";
|
|
2027
|
+
source: "tcgdex" | "cmapi" | "tradera" | "pokemonpricetracker";
|
|
2087
2028
|
/** @enum {string} */
|
|
2088
2029
|
provider: "cardmarket" | "tcgplayer" | "ebay" | "tradera";
|
|
2089
2030
|
/** @enum {string|null} */
|
|
@@ -2095,7 +2036,7 @@ type ReferencePriceSeries = {
|
|
|
2095
2036
|
grade: number | undefined;
|
|
2096
2037
|
currency: string;
|
|
2097
2038
|
sampleSize: number | undefined;
|
|
2098
|
-
points:
|
|
2039
|
+
points: ReferencePriceSeriesPoint[];
|
|
2099
2040
|
};
|
|
2100
2041
|
type ReferencePriceSeriesPoint = {
|
|
2101
2042
|
/**
|
|
@@ -2105,8 +2046,8 @@ type ReferencePriceSeriesPoint = {
|
|
|
2105
2046
|
snapshotDate: string;
|
|
2106
2047
|
price: number;
|
|
2107
2048
|
};
|
|
2108
|
-
type ReferencePriceSource = "tradera" | "tcgdex" | "cmapi";
|
|
2109
|
-
type ReferencePriceCardVariant = "
|
|
2049
|
+
type ReferencePriceSource = "tradera" | "tcgdex" | "cmapi" | "pokemonpricetracker";
|
|
2050
|
+
type ReferencePriceCardVariant = "reverse" | "normal" | "holo";
|
|
2110
2051
|
type ReferencePriceMetric = "price" | "low" | "mid" | "high" | "avg" | "avg1" | "avg7" | "avg30" | "directLow";
|
|
2111
2052
|
type ReferencePriceCurrencyMode = "native" | "sek";
|
|
2112
2053
|
/** Response of `client.cards.referencePrices()` / `client.products.referencePrices()`.
|
|
@@ -2117,7 +2058,7 @@ type ReferencePriceCurrencyMode = "native" | "sek";
|
|
|
2117
2058
|
* keeps its own `currency`; in `sek` mode everything is `SEK`, converted at the rate stored on
|
|
2118
2059
|
* each point. */
|
|
2119
2060
|
type ItemReferencePrices = {
|
|
2120
|
-
item:
|
|
2061
|
+
item: ItemRef;
|
|
2121
2062
|
/**
|
|
2122
2063
|
* Format: date-time
|
|
2123
2064
|
* @example 2026-07-15T12:03:29.322Z
|
|
@@ -2132,7 +2073,7 @@ type ItemReferencePrices = {
|
|
|
2132
2073
|
metric: "price" | "low" | "mid" | "high" | "avg" | "avg1" | "avg7" | "avg30" | "directLow";
|
|
2133
2074
|
/** @enum {string} */
|
|
2134
2075
|
currencyMode: "native" | "sek";
|
|
2135
|
-
series:
|
|
2076
|
+
series: ReferencePriceSeries[];
|
|
2136
2077
|
};
|
|
2137
2078
|
type SoldPrice = {
|
|
2138
2079
|
/**
|
|
@@ -2161,9 +2102,9 @@ type SoldPrice = {
|
|
|
2161
2102
|
* `true` here. That field only exists because this envelope shape is shared with a free preview
|
|
2162
2103
|
* elsewhere in the API; this response is never the preview. */
|
|
2163
2104
|
type ItemSoldPrices = {
|
|
2164
|
-
item:
|
|
2165
|
-
data:
|
|
2166
|
-
pagination:
|
|
2105
|
+
item: ItemRef;
|
|
2106
|
+
data: SoldPrice[];
|
|
2107
|
+
pagination: PageMeta;
|
|
2167
2108
|
/** @enum {boolean} */
|
|
2168
2109
|
premiumRequired: true;
|
|
2169
2110
|
};
|
|
@@ -2189,14 +2130,14 @@ type LivePricingForItem = {
|
|
|
2189
2130
|
id: string;
|
|
2190
2131
|
name: string;
|
|
2191
2132
|
technicalName: string;
|
|
2192
|
-
pricing:
|
|
2133
|
+
pricing: LivePricingDetail;
|
|
2193
2134
|
};
|
|
2194
2135
|
/** Response of `client.expansions.livePricing()`: live pricing for every item in one expansion. */
|
|
2195
2136
|
type ExpansionLivePricing = {
|
|
2196
2137
|
expansion: {
|
|
2197
2138
|
technicalName: string;
|
|
2198
2139
|
};
|
|
2199
|
-
items:
|
|
2140
|
+
items: LivePricingForItem[];
|
|
2200
2141
|
};
|
|
2201
2142
|
/** The catalog item as embedded in stats responses: a `Card`/`SealedProduct` minus
|
|
2202
2143
|
* `lowestShopOffer` and `referencePriceSnapshotsByProvider`, which these endpoints already answer
|
|
@@ -2210,43 +2151,25 @@ type StatsItemRef = {
|
|
|
2210
2151
|
name: string;
|
|
2211
2152
|
shortName: string | undefined;
|
|
2212
2153
|
technicalName: string;
|
|
2213
|
-
brand:
|
|
2154
|
+
brand: BrandRef;
|
|
2214
2155
|
manufacturer: string;
|
|
2215
2156
|
modelNumber: string | undefined;
|
|
2216
|
-
category:
|
|
2217
|
-
expansion:
|
|
2157
|
+
category: CategoryRef | undefined;
|
|
2158
|
+
expansion: ExpansionRef | undefined;
|
|
2218
2159
|
/**
|
|
2219
2160
|
* @description Printing language of the item
|
|
2220
2161
|
* @example JPN
|
|
2221
2162
|
* @enum {string|null}
|
|
2222
2163
|
*/
|
|
2223
2164
|
language: "ENG" | "JPN" | "CHI" | undefined;
|
|
2224
|
-
alternativeNames:
|
|
2165
|
+
alternativeNames: AlternativeName[];
|
|
2225
2166
|
supportsMultipackPricing: boolean;
|
|
2226
2167
|
/**
|
|
2227
|
-
* @description Absolute asset URL, or null when absent
|
|
2168
|
+
* @description Absolute asset URL, or null when absent. For best performance, please rehost this image on your own storage/CDN and cache it there rather than hotlinking it — see the API description's "Image hosting" section.
|
|
2228
2169
|
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
2229
2170
|
*/
|
|
2230
2171
|
imageUrl: string | undefined;
|
|
2231
|
-
|
|
2232
|
-
* @description Cheapest current shop price, in SEK
|
|
2233
|
-
* @example 149.5
|
|
2234
|
-
*/
|
|
2235
|
-
retailPrice: number | undefined;
|
|
2236
|
-
/**
|
|
2237
|
-
* @description Estimated market value, in SEK
|
|
2238
|
-
* @example 149.5
|
|
2239
|
-
*/
|
|
2240
|
-
estimatedValue: number | undefined;
|
|
2241
|
-
/** @description Active shops currently tracking this item */
|
|
2242
|
-
shopCount: number;
|
|
2243
|
-
/** @description Observations the estimate rests on */
|
|
2244
|
-
pricingDataPoints: number;
|
|
2245
|
-
/**
|
|
2246
|
-
* Format: date-time
|
|
2247
|
-
* @example 2026-07-15T12:03:29.322Z
|
|
2248
|
-
*/
|
|
2249
|
-
pricingUpdatedAt: string | undefined;
|
|
2172
|
+
lockedFields: string[];
|
|
2250
2173
|
/**
|
|
2251
2174
|
* Format: date-time
|
|
2252
2175
|
* @example 2026-07-15T12:03:29.322Z
|
|
@@ -2266,7 +2189,7 @@ type StatsItemRef = {
|
|
|
2266
2189
|
artist: string | undefined;
|
|
2267
2190
|
cardmarketId: string | undefined;
|
|
2268
2191
|
tcgplayerId: string | undefined;
|
|
2269
|
-
variants:
|
|
2192
|
+
variants: CardVariants | undefined;
|
|
2270
2193
|
prisjaktId: string | undefined;
|
|
2271
2194
|
} | {
|
|
2272
2195
|
/**
|
|
@@ -2277,43 +2200,25 @@ type StatsItemRef = {
|
|
|
2277
2200
|
name: string;
|
|
2278
2201
|
shortName: string | undefined;
|
|
2279
2202
|
technicalName: string;
|
|
2280
|
-
brand:
|
|
2203
|
+
brand: BrandRef;
|
|
2281
2204
|
manufacturer: string;
|
|
2282
2205
|
modelNumber: string | undefined;
|
|
2283
|
-
category:
|
|
2284
|
-
expansion:
|
|
2206
|
+
category: CategoryRef | undefined;
|
|
2207
|
+
expansion: ExpansionRef | undefined;
|
|
2285
2208
|
/**
|
|
2286
2209
|
* @description Printing language of the item
|
|
2287
2210
|
* @example JPN
|
|
2288
2211
|
* @enum {string|null}
|
|
2289
2212
|
*/
|
|
2290
2213
|
language: "ENG" | "JPN" | "CHI" | undefined;
|
|
2291
|
-
alternativeNames:
|
|
2214
|
+
alternativeNames: AlternativeName[];
|
|
2292
2215
|
supportsMultipackPricing: boolean;
|
|
2293
2216
|
/**
|
|
2294
|
-
* @description Absolute asset URL, or null when absent
|
|
2217
|
+
* @description Absolute asset URL, or null when absent. For best performance, please rehost this image on your own storage/CDN and cache it there rather than hotlinking it — see the API description's "Image hosting" section.
|
|
2295
2218
|
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
2296
2219
|
*/
|
|
2297
2220
|
imageUrl: string | undefined;
|
|
2298
|
-
|
|
2299
|
-
* @description Cheapest current shop price, in SEK
|
|
2300
|
-
* @example 149.5
|
|
2301
|
-
*/
|
|
2302
|
-
retailPrice: number | undefined;
|
|
2303
|
-
/**
|
|
2304
|
-
* @description Estimated market value, in SEK
|
|
2305
|
-
* @example 149.5
|
|
2306
|
-
*/
|
|
2307
|
-
estimatedValue: number | undefined;
|
|
2308
|
-
/** @description Active shops currently tracking this item */
|
|
2309
|
-
shopCount: number;
|
|
2310
|
-
/** @description Observations the estimate rests on */
|
|
2311
|
-
pricingDataPoints: number;
|
|
2312
|
-
/**
|
|
2313
|
-
* Format: date-time
|
|
2314
|
-
* @example 2026-07-15T12:03:29.322Z
|
|
2315
|
-
*/
|
|
2316
|
-
pricingUpdatedAt: string | undefined;
|
|
2221
|
+
lockedFields: string[];
|
|
2317
2222
|
/**
|
|
2318
2223
|
* Format: date-time
|
|
2319
2224
|
* @example 2026-07-15T12:03:29.322Z
|
|
@@ -2340,23 +2245,23 @@ type VariantStatsSummary = {
|
|
|
2340
2245
|
};
|
|
2341
2246
|
/** Response of `client.priceStats.product()`. */
|
|
2342
2247
|
type ItemStats = {
|
|
2343
|
-
item:
|
|
2344
|
-
dailyStats:
|
|
2345
|
-
estimate:
|
|
2346
|
-
variantStats:
|
|
2248
|
+
item: StatsItemRef;
|
|
2249
|
+
dailyStats: DailyPricePoint[];
|
|
2250
|
+
estimate: EstimatedValue;
|
|
2251
|
+
variantStats: VariantStatsSummary;
|
|
2347
2252
|
};
|
|
2348
2253
|
/** Response of `client.priceStats.productFull()`: everything `product()` has, plus the item's
|
|
2349
2254
|
* current shop matches. */
|
|
2350
2255
|
type ItemFullStats = {
|
|
2351
|
-
item:
|
|
2256
|
+
item: StatsItemRef;
|
|
2352
2257
|
stats: {
|
|
2353
|
-
dailyStats:
|
|
2354
|
-
variantStats:
|
|
2258
|
+
dailyStats: DailyPricePoint[];
|
|
2259
|
+
variantStats: VariantStatsSummary;
|
|
2355
2260
|
};
|
|
2356
|
-
estimate:
|
|
2261
|
+
estimate: EstimatedValue;
|
|
2357
2262
|
shopMatches: {
|
|
2358
|
-
data:
|
|
2359
|
-
pagination:
|
|
2263
|
+
data: ItemShopMatchSchema[];
|
|
2264
|
+
pagination: PageMeta;
|
|
2360
2265
|
};
|
|
2361
2266
|
};
|
|
2362
2267
|
type VariantPriceStat = {
|
|
@@ -2399,9 +2304,9 @@ type VariantSelector = {
|
|
|
2399
2304
|
};
|
|
2400
2305
|
/** Response of `client.priceStats.productDailyByVariant()`. */
|
|
2401
2306
|
type ItemVariantDailyStats = {
|
|
2402
|
-
item:
|
|
2403
|
-
variant:
|
|
2404
|
-
dailyStats:
|
|
2307
|
+
item: ItemRef;
|
|
2308
|
+
variant: VariantSelector;
|
|
2309
|
+
dailyStats: DailyPricePoint[];
|
|
2405
2310
|
};
|
|
2406
2311
|
type ShopPricePoint = {
|
|
2407
2312
|
/**
|
|
@@ -2419,18 +2324,36 @@ type ShopPricePoint = {
|
|
|
2419
2324
|
inStock: boolean;
|
|
2420
2325
|
url: string;
|
|
2421
2326
|
};
|
|
2327
|
+
/** One shop's history for the item `ItemShopPriceHistory` is scoped to. */
|
|
2328
|
+
type ShopPriceHistory = {
|
|
2329
|
+
/** @description The shop's technicalName */
|
|
2330
|
+
shop: string;
|
|
2331
|
+
history: ShopPricePoint[];
|
|
2332
|
+
};
|
|
2422
2333
|
/** Response of `client.shopMatchStats.forProduct()`: one product's price history, broken out per
|
|
2423
2334
|
* shop. */
|
|
2424
2335
|
type ItemShopPriceHistory = {
|
|
2425
|
-
item:
|
|
2426
|
-
shops:
|
|
2336
|
+
item: ItemRef;
|
|
2337
|
+
shops: ShopPriceHistory[];
|
|
2427
2338
|
recordCount: number;
|
|
2428
2339
|
};
|
|
2340
|
+
/** One product's history for the shop `ShopPriceHistoryList` is scoped to. */
|
|
2341
|
+
type ShopItemPriceHistory = {
|
|
2342
|
+
item: ItemRef;
|
|
2343
|
+
history: ShopPricePoint[];
|
|
2344
|
+
/** @example 149.5 */
|
|
2345
|
+
latestPrice: number | undefined;
|
|
2346
|
+
/**
|
|
2347
|
+
* Format: date-time
|
|
2348
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
2349
|
+
*/
|
|
2350
|
+
latestDate: string | undefined;
|
|
2351
|
+
};
|
|
2429
2352
|
/** Response of `client.shopMatchStats.forShop()`: one shop's price history, broken out per
|
|
2430
2353
|
* product. */
|
|
2431
2354
|
type ShopPriceHistoryList = {
|
|
2432
2355
|
shop: string;
|
|
2433
|
-
items:
|
|
2356
|
+
items: ShopItemPriceHistory[];
|
|
2434
2357
|
itemCount: number;
|
|
2435
2358
|
};
|
|
2436
2359
|
type ShopPriceComparisonRow = {
|
|
@@ -2462,9 +2385,9 @@ type ShopPriceComparisonStats = {
|
|
|
2462
2385
|
/** Response of `client.shopMatchStats.compare()`: one product's price at every shop that carries
|
|
2463
2386
|
* it, as of one date. `stats` is `undefined` when no shop had a price on that date. */
|
|
2464
2387
|
type ItemPriceComparison = {
|
|
2465
|
-
item:
|
|
2466
|
-
items:
|
|
2467
|
-
stats:
|
|
2388
|
+
item: ItemRef;
|
|
2389
|
+
items: ShopPriceComparisonRow[];
|
|
2390
|
+
stats: ShopPriceComparisonStats | undefined;
|
|
2468
2391
|
};
|
|
2469
2392
|
type ShopUrlStatus = "pending" | "active" | "invalid" | "rejected" | "sanityRejected";
|
|
2470
2393
|
type ShopUrlDiscoveredBy = "scraper" | "user";
|
|
@@ -2477,7 +2400,7 @@ type ShopUrl = {
|
|
|
2477
2400
|
id: string;
|
|
2478
2401
|
url: string;
|
|
2479
2402
|
shop: string | undefined;
|
|
2480
|
-
status:
|
|
2403
|
+
status: ShopUrlStatus;
|
|
2481
2404
|
/** @enum {string} */
|
|
2482
2405
|
discoveredBy: "scraper" | "user";
|
|
2483
2406
|
/**
|
|
@@ -2521,7 +2444,7 @@ type ShopUrl = {
|
|
|
2521
2444
|
/** Response of `client.shopUrls.submit()` / `client.shopUrls.assignProduct()`. */
|
|
2522
2445
|
type ShopUrlMutationResult = {
|
|
2523
2446
|
message: string;
|
|
2524
|
-
shopUrl:
|
|
2447
|
+
shopUrl: ShopUrl;
|
|
2525
2448
|
};
|
|
2526
2449
|
interface ListBargainsParams {
|
|
2527
2450
|
type?: 'sealed' | 'card' | 'all';
|
|
@@ -2595,6 +2518,17 @@ declare class CardsResource {
|
|
|
2595
2518
|
/** `GET /cards/{id}/pricing/live`: computed fresh for this request, not read from the last
|
|
2596
2519
|
* stats job. Premium. */
|
|
2597
2520
|
livePricing(idOrTechnicalName: string, options?: PremiumOptions): Promise<LivePricingForItem>;
|
|
2521
|
+
/** `GET /cards/{id}/pricing`: this card's current pricing snapshot — `retailPrice`,
|
|
2522
|
+
* `estimatedValue`, `lowestShopOffer`, `referencePriceSnapshotsByProvider` — refreshed once a day
|
|
2523
|
+
* by the nightly pricing/scraper jobs. `get()` returns content only; this is the separate,
|
|
2524
|
+
* shorter-cached call for the part of a card that actually changes day to day. */
|
|
2525
|
+
pricing(idOrTechnicalName: string): Promise<CatalogItemPricing>;
|
|
2526
|
+
/** `GET /cards/pricing`: pricing for up to 200 cards in one request, keyed by `id` — the batch
|
|
2527
|
+
* counterpart to `pricing()`, for a page of results (a search page, an expansion's contents) that
|
|
2528
|
+
* needs pricing for many items at once. Unlike `get()`/`pricing()`, this only accepts `id`s, not
|
|
2529
|
+
* technicalNames — pass the `id`s already on the cards you fetched. Ids with no match are
|
|
2530
|
+
* silently omitted from the result rather than causing an error. */
|
|
2531
|
+
pricingBatch(ids: string[]): Promise<ListResponse<CatalogItemPricing>>;
|
|
2598
2532
|
}
|
|
2599
2533
|
declare class ExpansionsResource {
|
|
2600
2534
|
private readonly http;
|
|
@@ -2602,7 +2536,10 @@ declare class ExpansionsResource {
|
|
|
2602
2536
|
/** `GET /expansions`: every expansion. Unwrapped to a plain array, nothing to paginate here. */
|
|
2603
2537
|
list(): Promise<Expansion[]>;
|
|
2604
2538
|
/** `GET /expansions/{technicalName}/products`: every card and sealed product in one
|
|
2605
|
-
* expansion, kept as separate `cards`/`sealed` groups.
|
|
2539
|
+
* expansion, kept as separate `cards`/`sealed` groups. Content only, no pricing fields — pass the
|
|
2540
|
+
* `id`s from the result to `client.cards.pricingBatch()` / `client.products.pricingBatch()` if you
|
|
2541
|
+
* need pricing too. This mirrors the API 1:1 rather than fetching pricing for you, since pricing
|
|
2542
|
+
* for every item in an expansion is a second, separately-cached call the caller may not want. */
|
|
2606
2543
|
products(technicalName: string): Promise<ExpansionContents>;
|
|
2607
2544
|
/** `GET /expansions/{technicalName}/products/live-pricing`: computed fresh for every item in
|
|
2608
2545
|
* this expansion, not read from the last stats job. Premium. */
|
|
@@ -2744,6 +2681,17 @@ declare class ProductsResource {
|
|
|
2744
2681
|
/** `GET /product/{id}/pricing/live`: computed fresh for this request, not read from the last
|
|
2745
2682
|
* stats job. Premium. */
|
|
2746
2683
|
livePricing(idOrTechnicalName: string, options?: PremiumOptions): Promise<LivePricingForItem>;
|
|
2684
|
+
/** `GET /product/{id}/pricing`: this product's current pricing snapshot — `retailPrice`,
|
|
2685
|
+
* `estimatedValue`, `lowestShopOffer`, `referencePriceSnapshotsByProvider` — refreshed once a day
|
|
2686
|
+
* by the nightly pricing/scraper jobs. `get()` returns content only; this is the separate,
|
|
2687
|
+
* shorter-cached call for the part of a product that actually changes day to day. */
|
|
2688
|
+
pricing(idOrTechnicalName: string): Promise<CatalogItemPricing>;
|
|
2689
|
+
/** `GET /product/pricing`: pricing for up to 200 sealed products in one request, keyed by `id` —
|
|
2690
|
+
* the batch counterpart to `pricing()`, for a page of results (a search page, an expansion's
|
|
2691
|
+
* contents) that needs pricing for many items at once. Unlike `get()`/`pricing()`, this only
|
|
2692
|
+
* accepts `id`s, not technicalNames — pass the `id`s already on the products you fetched. Ids with
|
|
2693
|
+
* no match are silently omitted from the result rather than causing an error. */
|
|
2694
|
+
pricingBatch(ids: string[]): Promise<ListResponse<CatalogItemPricing>>;
|
|
2747
2695
|
}
|
|
2748
2696
|
interface ShopMatchStatsForProductParams {
|
|
2749
2697
|
authToken?: string;
|
|
@@ -2855,9 +2803,11 @@ interface TcgPriserAdvancedOptions {
|
|
|
2855
2803
|
}
|
|
2856
2804
|
interface TcgPriserOptions {
|
|
2857
2805
|
/**
|
|
2858
|
-
* A
|
|
2859
|
-
* `
|
|
2860
|
-
*
|
|
2806
|
+
* A per-account API token, generated from your account page at tcgpriser.se/account/api-token.
|
|
2807
|
+
* Only needed for premium methods (`cards.prices()`, `priceStats.product()`,
|
|
2808
|
+
* `bargains.search()` etc.); public methods work fine without it. This client has no login flow
|
|
2809
|
+
* of its own, and doesn't need one: the API token is a long-lived, revocable secret made for
|
|
2810
|
+
* exactly this, so there's no OAuth dance to drive.
|
|
2861
2811
|
*
|
|
2862
2812
|
* Every premium method also accepts its own `authToken` to override this per call. Useful when
|
|
2863
2813
|
* one server-side client is shared across requests for several different signed-in users.
|
|
@@ -2880,10 +2830,11 @@ interface TcgPriserOptions {
|
|
|
2880
2830
|
*
|
|
2881
2831
|
* That example needs no token. Most of the API is public (https://api.tcgpriser.se/docs). A
|
|
2882
2832
|
* smaller set of premium methods (live pricing, per-condition history, shop comparison, bargain
|
|
2883
|
-
* search, shop-URL submission) need a subscriber's
|
|
2833
|
+
* search, shop-URL submission) need a Premium subscriber's API token
|
|
2834
|
+
* (https://api.tcgpriser.se/premium-docs), generated from tcgpriser.se/account/api-token:
|
|
2884
2835
|
*
|
|
2885
2836
|
* ```ts
|
|
2886
|
-
* const tcgpriser = new TcgPriser(
|
|
2837
|
+
* const tcgpriser = new TcgPriser(myApiToken); // shorthand for { authToken: myApiToken }
|
|
2887
2838
|
* await tcgpriser.cards.livePricing('fezandipiti-ex');
|
|
2888
2839
|
* ```
|
|
2889
2840
|
*/
|
|
@@ -2900,7 +2851,7 @@ declare class TcgPriser {
|
|
|
2900
2851
|
readonly packRates: PackRatesResource;
|
|
2901
2852
|
readonly stats: StatsResource;
|
|
2902
2853
|
/**
|
|
2903
|
-
* @param optionsOrAuthToken A subscriber
|
|
2854
|
+
* @param optionsOrAuthToken A subscriber's API token (`new TcgPriser(myApiToken)`), a full
|
|
2904
2855
|
* `TcgPriserOptions` object, or omit it entirely for an anonymous, public-only client.
|
|
2905
2856
|
*/
|
|
2906
2857
|
constructor(optionsOrAuthToken?: string | TcgPriserOptions);
|
|
@@ -2930,4 +2881,4 @@ declare class TcgPriserError extends Error {
|
|
|
2930
2881
|
body: string;
|
|
2931
2882
|
});
|
|
2932
2883
|
}
|
|
2933
|
-
export { type AlternativeName, type AssignShopUrlProductParams, type Bargain, type BargainInfo, type BargainProductRef, type BargainReferenceSource, type BrandRef, type Card, type CardMatchesParams, type CardPricesParams, type CardReferencePricesParams, type CardType, type CardVariants, type CatalogItem, type CategoryRef, type CompareShopPricesParams, type CurrencyCode, DEFAULT_BASE_URL, type DailyPricePoint, type DailyPriceStatsParams, type EstimatedValue, type EstimatedValuesParams, type Expansion, type ExpansionCard, type ExpansionContents, type ExpansionLivePricing, type ExpansionRef, type ExpansionSealedProduct, type GradingCompany, type ItemCondition, type ItemDailyStats, type ItemEstimatedValue, type ItemFullStats, type ItemPriceComparison, type ItemRef, type ItemReferencePrices, type ItemShopMatch, type ItemShopMatches, type ItemShopPriceHistory, type ItemSoldPrices, type ItemStats, type ItemVariantDailyStats, type ItemVariantStats, type ListBargainsParams, type ListCardsParams, type ListProductsParams, type ListResponse, type ListShopMatchesParams, type ListShopsParams, type LivePricingDetail, type LivePricingForItem, type LowestShopOffer, type MatchedItemRef, type PackRate, type PackRateBucket, type PageMeta, type PaginationParams, type PlatformStats, type PremiumOptions, type PrintingLanguage, type ProductByVariantParams, type ProductDailyByVariantParams, type ProductDailyStatsParams, type ProductFilterParams, type ProductMatchesParams, type ProductPricesParams, type ProductReferencePricesParams, type ReferencePriceCardVariant, type ReferencePriceCurrencyMode, type ReferencePriceMetric, type ReferencePriceProvider, type ReferencePriceSeries, type ReferencePriceSeriesPoint, type ReferencePriceSnapshot, type ReferencePriceSnapshotsByProvider, type ReferencePriceSource, type ResourceId, type SealedProduct, type SearchBargainsParams, type Shop, type ShopMatch, type ShopMatchDelivery, type ShopMatchStats, type ShopMatchStatsForProductParams, type ShopMatchStatsForShopParams, type ShopMatchesForShop, type ShopMatchesForShopParams, type ShopPriceComparisonRow, type ShopPriceComparisonStats, type ShopPriceHistoryList, type ShopPricePoint, type ShopRef, type ShopSummary, type ShopUrl, type ShopUrlDiscoveredBy, type ShopUrlMutationResult, type ShopUrlStatus, type SoldPrice, type StatsItemRef, type SubmitShopUrlParams, TcgPriser, TcgPriserError, type TcgPriserErrorCode, type TcgPriserOptions, type Timestamp, type TopItem, type TopProductsParams, type VariantPriceStat, type VariantSelector, type VariantStatsSummary, type components };
|
|
2884
|
+
export { type AlternativeName, type AssignShopUrlProductParams, type Bargain, type BargainInfo, type BargainProductRef, type BargainReferenceSource, type BrandRef, type Card, type CardMatchesParams, type CardPricesParams, type CardReferencePricesParams, type CardType, type CardVariants, type CatalogItem, type CatalogItemPricing, type CategoryRef, type CompareShopPricesParams, type CurrencyCode, DEFAULT_BASE_URL, type DailyPricePoint, type DailyPriceStatsParams, type EstimatedValue, type EstimatedValuesParams, type Expansion, type ExpansionCard, type ExpansionContents, type ExpansionLivePricing, type ExpansionRef, type ExpansionSealedProduct, type GradingCompany, type ItemCondition, type ItemDailyStats, type ItemEstimatedValue, type ItemFullStats, type ItemPriceComparison, type ItemRef, type ItemReferencePrices, type ItemShopMatch, type ItemShopMatches, type ItemShopPriceHistory, type ItemSoldPrices, type ItemStats, type ItemVariantDailyStats, type ItemVariantStats, type ListBargainsParams, type ListCardsParams, type ListProductsParams, type ListResponse, type ListShopMatchesParams, type ListShopsParams, type LivePricingDetail, type LivePricingForItem, type LowestShopOffer, type MatchShop, type MatchedItemRef, type PackRate, type PackRateBucket, type PackSlot, type PageMeta, type PaginationParams, type PlatformStats, type PremiumOptions, type PrintingLanguage, type ProductByVariantParams, type ProductDailyByVariantParams, type ProductDailyStatsParams, type ProductFilterParams, type ProductMatchesParams, type ProductPricesParams, type ProductReferencePricesParams, type ReferencePriceCardVariant, type ReferencePriceCurrencyMode, type ReferencePriceMetric, type ReferencePriceProvider, type ReferencePriceSeries, type ReferencePriceSeriesPoint, type ReferencePriceSnapshot, type ReferencePriceSnapshotsByProvider, type ReferencePriceSource, type ResourceId, type SealedProduct, type SearchBargainsParams, type Shop, type ShopItemPriceHistory, type ShopMatch, type ShopMatchDelivery, type ShopMatchStats, type ShopMatchStatsForProductParams, type ShopMatchStatsForShopParams, type ShopMatchesForShop, type ShopMatchesForShopParams, type ShopPriceComparisonRow, type ShopPriceComparisonStats, type ShopPriceHistory, type ShopPriceHistoryList, type ShopPricePoint, type ShopRef, type ShopSummary, type ShopUrl, type ShopUrlDiscoveredBy, type ShopUrlMutationResult, type ShopUrlStatus, type SoldPrice, type StatsItemRef, type SubmitShopUrlParams, TcgPriser, TcgPriserError, type TcgPriserErrorCode, type TcgPriserOptions, type Timestamp, type TopItem, type TopProductsParams, type VariantPriceStat, type VariantSelector, type VariantStatsSummary, type components };
|