tcgpriser 0.13.0 → 1.1.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/dist/index.d.cts CHANGED
@@ -140,6 +140,11 @@ interface components {
140
140
  name: string;
141
141
  /** @example pokemon */
142
142
  technicalName: string;
143
+ /**
144
+ * @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.
145
+ * @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
146
+ */
147
+ imageUrl: string | undefined;
143
148
  /**
144
149
  * Format: date-time
145
150
  * @example 2026-07-15T12:03:29.322Z
@@ -162,6 +167,8 @@ interface components {
162
167
  technicalName: string;
163
168
  brand: components["schemas"]["Brand"];
164
169
  manufacturer: string;
170
+ /** @enum {string} */
171
+ productLine: "tcg" | "accessory" | "collectible" | "boardGame" | "videoGame" | "other";
165
172
  modelNumber: string | undefined;
166
173
  category: components["schemas"]["CategoryRef"] | undefined;
167
174
  expansion: components["schemas"]["ExpansionRef"] | undefined;
@@ -170,7 +177,7 @@ interface components {
170
177
  * @example JPN
171
178
  * @enum {string|null}
172
179
  */
173
- language: "ENG" | "JPN" | "CHI" | undefined;
180
+ language: "ENG" | "JPN" | "CHI" | "KOR" | "SPA" | "GER" | "FRA" | "ITA" | "POR" | "RUS" | undefined;
174
181
  alternativeNames: components["schemas"]["AlternativeName"][];
175
182
  supportsMultipackPricing: boolean;
176
183
  /**
@@ -297,18 +304,32 @@ interface components {
297
304
  shortName: string;
298
305
  /** @example jpn-mega-evolution-30th-celebration */
299
306
  technicalName: string;
307
+ brand: components["schemas"]["Brand"];
300
308
  /**
301
309
  * @description Printing language of the item
302
310
  * @example JPN
303
311
  * @enum {string}
304
312
  */
305
- language: "ENG" | "JPN" | "CHI";
313
+ language: "ENG" | "JPN" | "CHI" | "KOR" | "SPA" | "GER" | "FRA" | "ITA" | "POR" | "RUS";
306
314
  /** @example m6a */
307
315
  code: string | undefined;
308
316
  /** @example m6a */
309
317
  cardCode: string | undefined;
310
318
  /** @example Mega Evolution */
311
319
  seriesName: string | undefined;
320
+ /** @example The Lord of the Rings: Tales of Middle-earth */
321
+ releaseGroupName: string | undefined;
322
+ releaseGroup: {
323
+ /**
324
+ * @description Resource identifier
325
+ * @example 6a577711abc1ce71383d3e10
326
+ */
327
+ id: string;
328
+ /** @example The Lord of the Rings: Tales of Middle-earth */
329
+ name: string;
330
+ /** @example eng-the-lord-of-the-rings-tales-of-middle-earth */
331
+ technicalName: string;
332
+ } | undefined;
312
333
  /**
313
334
  * Format: date-time
314
335
  * @example 2026-07-15T12:03:29.322Z
@@ -330,7 +351,6 @@ interface components {
330
351
  */
331
352
  imageUrl: string | undefined;
332
353
  year: number | undefined;
333
- brand: components["schemas"]["Brand"];
334
354
  alternativeNames: components["schemas"]["AlternativeName"][];
335
355
  /** @description Sealed products in this expansion */
336
356
  sealedCount: number;
@@ -367,18 +387,32 @@ interface components {
367
387
  shortName: string;
368
388
  /** @example jpn-mega-evolution-30th-celebration */
369
389
  technicalName: string;
390
+ brand: components["schemas"]["Brand"] | undefined;
370
391
  /**
371
392
  * @description Printing language of the item
372
393
  * @example JPN
373
394
  * @enum {string}
374
395
  */
375
- language: "ENG" | "JPN" | "CHI";
396
+ language: "ENG" | "JPN" | "CHI" | "KOR" | "SPA" | "GER" | "FRA" | "ITA" | "POR" | "RUS";
376
397
  /** @example m6a */
377
398
  code: string | undefined;
378
399
  /** @example m6a */
379
400
  cardCode: string | undefined;
380
401
  /** @example Mega Evolution */
381
402
  seriesName: string | undefined;
403
+ /** @example The Lord of the Rings: Tales of Middle-earth */
404
+ releaseGroupName: string | undefined;
405
+ releaseGroup: {
406
+ /**
407
+ * @description Resource identifier
408
+ * @example 6a577711abc1ce71383d3e10
409
+ */
410
+ id: string;
411
+ /** @example The Lord of the Rings: Tales of Middle-earth */
412
+ name: string;
413
+ /** @example eng-the-lord-of-the-rings-tales-of-middle-earth */
414
+ technicalName: string;
415
+ } | undefined;
382
416
  /**
383
417
  * Format: date-time
384
418
  * @example 2026-07-15T12:03:29.322Z
@@ -400,6 +434,10 @@ interface components {
400
434
  */
401
435
  imageUrl: string | undefined;
402
436
  };
437
+ ExpansionReleaseGroup: {
438
+ releaseGroupName: string | undefined;
439
+ expansions: components["schemas"]["Expansion"][];
440
+ };
403
441
  ItemDailyStats: {
404
442
  item: components["schemas"]["CatalogItemRef"];
405
443
  dailyStats: components["schemas"]["DailyPricePoint"][];
@@ -638,6 +676,8 @@ interface components {
638
676
  technicalName: string;
639
677
  brand: components["schemas"]["Brand"];
640
678
  manufacturer: string;
679
+ /** @enum {string} */
680
+ productLine: "tcg" | "accessory" | "collectible" | "boardGame" | "videoGame" | "other";
641
681
  modelNumber: string | undefined;
642
682
  category: components["schemas"]["CategoryRef"] | undefined;
643
683
  expansion: components["schemas"]["ExpansionRef"] | undefined;
@@ -646,7 +686,7 @@ interface components {
646
686
  * @example JPN
647
687
  * @enum {string|null}
648
688
  */
649
- language: "ENG" | "JPN" | "CHI" | undefined;
689
+ language: "ENG" | "JPN" | "CHI" | "KOR" | "SPA" | "GER" | "FRA" | "ITA" | "POR" | "RUS" | undefined;
650
690
  alternativeNames: components["schemas"]["AlternativeName"][];
651
691
  supportsMultipackPricing: boolean;
652
692
  /**
@@ -675,11 +715,11 @@ interface components {
675
715
  };
676
716
  ReferencePriceSeries: {
677
717
  /** @enum {string} */
678
- source: "tcgdex" | "cmapi" | "tradera" | "pokemonpricetracker";
718
+ source: "tcgdex" | "cmapi" | "tradera" | "pokemonpricetracker" | "scryfall";
679
719
  /** @enum {string} */
680
720
  provider: "cardmarket" | "tcgplayer" | "ebay" | "tradera";
681
721
  /** @enum {string|null} */
682
- variant: "normal" | "holo" | "reverse" | undefined;
722
+ variant: "normal" | "holo" | "reverse" | "foil" | undefined;
683
723
  /** @enum {string|null} */
684
724
  cardType: "loose" | "graded" | undefined;
685
725
  /** @enum {string|null} */
@@ -1209,6 +1249,8 @@ type CardSchema = {
1209
1249
  technicalName: string;
1210
1250
  brand: BrandRef;
1211
1251
  manufacturer: string;
1252
+ /** @enum {string} */
1253
+ productLine: "tcg" | "accessory" | "collectible" | "boardGame" | "videoGame" | "other";
1212
1254
  modelNumber: string | undefined;
1213
1255
  category: CategoryRef | undefined;
1214
1256
  expansion: ExpansionRef | undefined;
@@ -1217,7 +1259,7 @@ type CardSchema = {
1217
1259
  * @example JPN
1218
1260
  * @enum {string|null}
1219
1261
  */
1220
- language: "ENG" | "JPN" | "CHI" | undefined;
1262
+ language: "ENG" | "JPN" | "CHI" | "KOR" | "SPA" | "GER" | "FRA" | "ITA" | "POR" | "RUS" | undefined;
1221
1263
  alternativeNames: AlternativeName[];
1222
1264
  supportsMultipackPricing: boolean;
1223
1265
  /**
@@ -1285,7 +1327,13 @@ type ResourceId = string;
1285
1327
  type CurrencyCode = string;
1286
1328
  /** ISO 8601 timestamp, as returned by the API (always UTC, `Z`-suffixed). */
1287
1329
  type Timestamp = string;
1288
- type PrintingLanguage = "ENG" | "JPN" | "CHI";
1330
+ type PrintingLanguage = "ENG" | "JPN" | "CHI" | "KOR" | "SPA" | "GER" | "FRA" | "ITA" | "POR" | "RUS";
1331
+ /** What universe of product an item is — `'tcg'` for every card and sealed product today, plus
1332
+ * `'accessory'`/`'collectible'`/`'boardGame'`/`'videoGame'`/`'other'` for non-TCG catalogue items.
1333
+ * Orthogonal to `kind` (which endpoint returned it: `cards` vs `products`) and to `category` (the
1334
+ * specific group within a product line, e.g. "Booster Box"). The value `productLine` filters on
1335
+ * `cards.list()`/`products.list()` accept. */
1336
+ type ProductLine = "tcg" | "accessory" | "collectible" | "boardGame" | "videoGame" | "other";
1289
1337
  type PageMeta = {
1290
1338
  /** @description Total matching records, ignoring pagination */
1291
1339
  total: number;
@@ -1330,6 +1378,11 @@ type BrandRef = {
1330
1378
  name: string;
1331
1379
  /** @example pokemon */
1332
1380
  technicalName: string;
1381
+ /**
1382
+ * @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.
1383
+ * @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
1384
+ */
1385
+ imageUrl: string | undefined;
1333
1386
  /**
1334
1387
  * Format: date-time
1335
1388
  * @example 2026-07-15T12:03:29.322Z
@@ -1352,8 +1405,9 @@ type CategoryRef = {
1352
1405
  /** @example booster-box */
1353
1406
  technicalName: string;
1354
1407
  };
1355
- /** The expansion shape embedded on cards, products and pack rates. Not the full `Expansion`
1356
- * returned by `client.expansions.list()`, which additionally carries counts and a `brand`. */
1408
+ /** The expansion shape embedded on cards, products and pack rates, and returned by
1409
+ * `client.expansions.get()`. It includes the owning `brand`, but not the aggregation counts that
1410
+ * only `client.expansions.list()` computes. */
1357
1411
  type ExpansionRef = {
1358
1412
  /**
1359
1413
  * @description Resource identifier
@@ -1366,18 +1420,32 @@ type ExpansionRef = {
1366
1420
  shortName: string;
1367
1421
  /** @example jpn-mega-evolution-30th-celebration */
1368
1422
  technicalName: string;
1423
+ brand: BrandRef | undefined;
1369
1424
  /**
1370
1425
  * @description Printing language of the item
1371
1426
  * @example JPN
1372
1427
  * @enum {string}
1373
1428
  */
1374
- language: "ENG" | "JPN" | "CHI";
1429
+ language: "ENG" | "JPN" | "CHI" | "KOR" | "SPA" | "GER" | "FRA" | "ITA" | "POR" | "RUS";
1375
1430
  /** @example m6a */
1376
1431
  code: string | undefined;
1377
1432
  /** @example m6a */
1378
1433
  cardCode: string | undefined;
1379
1434
  /** @example Mega Evolution */
1380
1435
  seriesName: string | undefined;
1436
+ /** @example The Lord of the Rings: Tales of Middle-earth */
1437
+ releaseGroupName: string | undefined;
1438
+ releaseGroup: {
1439
+ /**
1440
+ * @description Resource identifier
1441
+ * @example 6a577711abc1ce71383d3e10
1442
+ */
1443
+ id: string;
1444
+ /** @example The Lord of the Rings: Tales of Middle-earth */
1445
+ name: string;
1446
+ /** @example eng-the-lord-of-the-rings-tales-of-middle-earth */
1447
+ technicalName: string;
1448
+ } | undefined;
1381
1449
  /**
1382
1450
  * Format: date-time
1383
1451
  * @example 2026-07-15T12:03:29.322Z
@@ -1439,6 +1507,39 @@ type ReferencePriceSnapshot = {
1439
1507
  type ReferencePriceProvider = "tradera" | "cardmarket" | "tcgplayer" | "ebay";
1440
1508
  /** Keyed by provider, at most one snapshot per provider. */
1441
1509
  type ReferencePriceSnapshotsByProvider = Partial<Record<ReferencePriceProvider, ReferencePriceSnapshot>>;
1510
+ /** A brand/franchise (e.g. "Pokémon"), as returned by `client.brands.list()` /
1511
+ * `client.brands.get()`. Same shape as `BrandRef` (the form embedded on `Card`/`SealedProduct`/
1512
+ * `Expansion`) today — kept as its own named type for symmetry with `Shop`/`ShopRef` and
1513
+ * `Expansion`/`ExpansionRef`, in case the two diverge later. `imageUrl` is the CDN-hosted brand
1514
+ * mark when one has been uploaded. This is the value `brand` filters on
1515
+ * `cards.list()`, `products.list()` and `expansions.list()` accept (either `id` or
1516
+ * `technicalName`). */
1517
+ type Brand = {
1518
+ /**
1519
+ * @description Resource identifier
1520
+ * @example 6a577711abc1ce71383d3e10
1521
+ */
1522
+ id: string;
1523
+ /** @example Pokémon */
1524
+ name: string;
1525
+ /** @example pokemon */
1526
+ technicalName: string;
1527
+ /**
1528
+ * @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.
1529
+ * @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
1530
+ */
1531
+ imageUrl: string | undefined;
1532
+ /**
1533
+ * Format: date-time
1534
+ * @example 2026-07-15T12:03:29.322Z
1535
+ */
1536
+ createdAt: string;
1537
+ /**
1538
+ * Format: date-time
1539
+ * @example 2026-07-15T12:03:29.322Z
1540
+ */
1541
+ updatedAt: string;
1542
+ };
1442
1543
  /** A card, as returned by `client.cards.get()` / `client.cards.list()`, and as embedded in
1443
1544
  * `client.expansions.cards()`. `kind: 'card'` is a literal on the generated type, which is what
1444
1545
  * makes `CatalogItem` (below) discriminate cleanly. Content only — no pricing fields; fetch those
@@ -1454,6 +1555,8 @@ type Card = {
1454
1555
  technicalName: string;
1455
1556
  brand: BrandRef;
1456
1557
  manufacturer: string;
1558
+ /** @enum {string} */
1559
+ productLine: "tcg" | "accessory" | "collectible" | "boardGame" | "videoGame" | "other";
1457
1560
  modelNumber: string | undefined;
1458
1561
  category: CategoryRef | undefined;
1459
1562
  expansion: ExpansionRef | undefined;
@@ -1462,7 +1565,7 @@ type Card = {
1462
1565
  * @example JPN
1463
1566
  * @enum {string|null}
1464
1567
  */
1465
- language: "ENG" | "JPN" | "CHI" | undefined;
1568
+ language: "ENG" | "JPN" | "CHI" | "KOR" | "SPA" | "GER" | "FRA" | "ITA" | "POR" | "RUS" | undefined;
1466
1569
  alternativeNames: AlternativeName[];
1467
1570
  supportsMultipackPricing: boolean;
1468
1571
  /**
@@ -1508,6 +1611,8 @@ type SealedProduct = {
1508
1611
  technicalName: string;
1509
1612
  brand: BrandRef;
1510
1613
  manufacturer: string;
1614
+ /** @enum {string} */
1615
+ productLine: "tcg" | "accessory" | "collectible" | "boardGame" | "videoGame" | "other";
1511
1616
  modelNumber: string | undefined;
1512
1617
  category: CategoryRef | undefined;
1513
1618
  expansion: ExpansionRef | undefined;
@@ -1516,7 +1621,7 @@ type SealedProduct = {
1516
1621
  * @example JPN
1517
1622
  * @enum {string|null}
1518
1623
  */
1519
- language: "ENG" | "JPN" | "CHI" | undefined;
1624
+ language: "ENG" | "JPN" | "CHI" | "KOR" | "SPA" | "GER" | "FRA" | "ITA" | "POR" | "RUS" | undefined;
1520
1625
  alternativeNames: AlternativeName[];
1521
1626
  supportsMultipackPricing: boolean;
1522
1627
  /**
@@ -1678,7 +1783,7 @@ type BargainProductRef = {
1678
1783
  /** A set/expansion, as returned by `client.expansions.list()`. This is the full record, including
1679
1784
  * the `sealedCount`/`cardCount`/`productCount` aggregation `list()` runs. The `expansion` field
1680
1785
  * embedded on a card or product, and the result of `client.expansions.get()`, are the smaller
1681
- * `ExpansionRef` from `types/common.ts` instead. */
1786
+ * `ExpansionRef` from `types/common.ts` instead; both shapes include the owning `brand`. */
1682
1787
  type Expansion = {
1683
1788
  /**
1684
1789
  * @description Resource identifier
@@ -1691,18 +1796,32 @@ type Expansion = {
1691
1796
  shortName: string;
1692
1797
  /** @example jpn-mega-evolution-30th-celebration */
1693
1798
  technicalName: string;
1799
+ brand: BrandRef;
1694
1800
  /**
1695
1801
  * @description Printing language of the item
1696
1802
  * @example JPN
1697
1803
  * @enum {string}
1698
1804
  */
1699
- language: "ENG" | "JPN" | "CHI";
1805
+ language: "ENG" | "JPN" | "CHI" | "KOR" | "SPA" | "GER" | "FRA" | "ITA" | "POR" | "RUS";
1700
1806
  /** @example m6a */
1701
1807
  code: string | undefined;
1702
1808
  /** @example m6a */
1703
1809
  cardCode: string | undefined;
1704
1810
  /** @example Mega Evolution */
1705
1811
  seriesName: string | undefined;
1812
+ /** @example The Lord of the Rings: Tales of Middle-earth */
1813
+ releaseGroupName: string | undefined;
1814
+ releaseGroup: {
1815
+ /**
1816
+ * @description Resource identifier
1817
+ * @example 6a577711abc1ce71383d3e10
1818
+ */
1819
+ id: string;
1820
+ /** @example The Lord of the Rings: Tales of Middle-earth */
1821
+ name: string;
1822
+ /** @example eng-the-lord-of-the-rings-tales-of-middle-earth */
1823
+ technicalName: string;
1824
+ } | undefined;
1706
1825
  /**
1707
1826
  * Format: date-time
1708
1827
  * @example 2026-07-15T12:03:29.322Z
@@ -1724,7 +1843,6 @@ type Expansion = {
1724
1843
  */
1725
1844
  imageUrl: string | undefined;
1726
1845
  year: number | undefined;
1727
- brand: BrandRef;
1728
1846
  alternativeNames: AlternativeName[];
1729
1847
  /** @description Sealed products in this expansion */
1730
1848
  sealedCount: number;
@@ -1743,6 +1861,13 @@ type Expansion = {
1743
1861
  */
1744
1862
  updatedAt: string;
1745
1863
  };
1864
+ /** `client.expansions.releaseGroup()`: the other expansions in a release group (e.g. a core set's
1865
+ * variant drops), excluding the requested expansion itself. Empty `expansions` and undefined
1866
+ * `releaseGroupName` when the expansion isn't part of a release group. */
1867
+ type ExpansionReleaseGroup = {
1868
+ releaseGroupName: string | undefined;
1869
+ expansions: Expansion[];
1870
+ };
1746
1871
  type ShopMatchWithItemSchema = {
1747
1872
  /**
1748
1873
  * @description Resource identifier
@@ -2114,11 +2239,11 @@ type PlatformStats = {
2114
2239
  */
2115
2240
  type ReferencePriceSeries = {
2116
2241
  /** @enum {string} */
2117
- source: "tcgdex" | "cmapi" | "tradera" | "pokemonpricetracker";
2242
+ source: "tcgdex" | "cmapi" | "tradera" | "pokemonpricetracker" | "scryfall";
2118
2243
  /** @enum {string} */
2119
2244
  provider: "cardmarket" | "tcgplayer" | "ebay" | "tradera";
2120
2245
  /** @enum {string|null} */
2121
- variant: "normal" | "holo" | "reverse" | undefined;
2246
+ variant: "normal" | "holo" | "reverse" | "foil" | undefined;
2122
2247
  /** @enum {string|null} */
2123
2248
  cardType: "loose" | "graded" | undefined;
2124
2249
  /** @enum {string|null} */
@@ -2136,8 +2261,8 @@ type ReferencePriceSeriesPoint = {
2136
2261
  snapshotDate: string;
2137
2262
  price: number;
2138
2263
  };
2139
- type ReferencePriceSource = "tradera" | "tcgdex" | "cmapi" | "pokemonpricetracker";
2140
- type ReferencePriceCardVariant = "reverse" | "normal" | "holo";
2264
+ type ReferencePriceSource = "tradera" | "tcgdex" | "cmapi" | "pokemonpricetracker" | "scryfall";
2265
+ type ReferencePriceCardVariant = "reverse" | "normal" | "holo" | "foil";
2141
2266
  type ReferencePriceMetric = "price" | "low" | "mid" | "high" | "avg" | "avg1" | "avg7" | "avg30" | "directLow";
2142
2267
  type ReferencePriceCurrencyMode = "native" | "sek";
2143
2268
  /** Response of `client.cards.referencePrices()` / `client.products.referencePrices()`.
@@ -2243,6 +2368,8 @@ type StatsItemRef = {
2243
2368
  technicalName: string;
2244
2369
  brand: BrandRef;
2245
2370
  manufacturer: string;
2371
+ /** @enum {string} */
2372
+ productLine: "tcg" | "accessory" | "collectible" | "boardGame" | "videoGame" | "other";
2246
2373
  modelNumber: string | undefined;
2247
2374
  category: CategoryRef | undefined;
2248
2375
  expansion: ExpansionRef | undefined;
@@ -2251,7 +2378,7 @@ type StatsItemRef = {
2251
2378
  * @example JPN
2252
2379
  * @enum {string|null}
2253
2380
  */
2254
- language: "ENG" | "JPN" | "CHI" | undefined;
2381
+ language: "ENG" | "JPN" | "CHI" | "KOR" | "SPA" | "GER" | "FRA" | "ITA" | "POR" | "RUS" | undefined;
2255
2382
  alternativeNames: AlternativeName[];
2256
2383
  supportsMultipackPricing: boolean;
2257
2384
  /**
@@ -2292,6 +2419,8 @@ type StatsItemRef = {
2292
2419
  technicalName: string;
2293
2420
  brand: BrandRef;
2294
2421
  manufacturer: string;
2422
+ /** @enum {string} */
2423
+ productLine: "tcg" | "accessory" | "collectible" | "boardGame" | "videoGame" | "other";
2295
2424
  modelNumber: string | undefined;
2296
2425
  category: CategoryRef | undefined;
2297
2426
  expansion: ExpansionRef | undefined;
@@ -2300,7 +2429,7 @@ type StatsItemRef = {
2300
2429
  * @example JPN
2301
2430
  * @enum {string|null}
2302
2431
  */
2303
- language: "ENG" | "JPN" | "CHI" | undefined;
2432
+ language: "ENG" | "JPN" | "CHI" | "KOR" | "SPA" | "GER" | "FRA" | "ITA" | "POR" | "RUS" | undefined;
2304
2433
  alternativeNames: AlternativeName[];
2305
2434
  supportsMultipackPricing: boolean;
2306
2435
  /**
@@ -2650,7 +2779,28 @@ declare class BargainsResource {
2650
2779
  * threshold, card condition/grade, free-text search). Premium. */
2651
2780
  search(params?: SearchBargainsParams): Promise<ListResponse<Bargain>>;
2652
2781
  }
2782
+ /** The franchises and makers the catalogue carries — what `brand` filters on `cards.list()`,
2783
+ * `products.list()` and `expansions.list()` accept. Read-only: brand rows are rare and deliberate
2784
+ * on the API side, so there is no create/update method here. */
2785
+ declare class BrandsResource {
2786
+ private readonly http;
2787
+ constructor(http: HttpClient);
2788
+ /** `GET /brands`: every brand. Unwrapped to a plain array, nothing to paginate here — same
2789
+ * shape as `expansions.list()`/`shops.list()`. */
2790
+ list(options?: RequestOptions): Promise<Brand[]>;
2791
+ /** `GET /brands/{id}`: fetch one brand by its id or technicalName. */
2792
+ get(idOrTechnicalName: string, options?: RequestOptions): Promise<Brand>;
2793
+ }
2653
2794
  interface ListCardsParams extends PaginationParams {
2795
+ /** Brand `id` or technicalName, e.g. `'pokemon'`. Scopes the listing to one game/universe. An
2796
+ * unrecognized value is a 400, not an empty page. */
2797
+ brand?: string;
2798
+ productLine?: ProductLine;
2799
+ }
2800
+ interface GetCardParams extends RequestOptions {
2801
+ /** Brand `id` or technicalName. Disambiguates a `technicalName` two brands both happen to use —
2802
+ * irrelevant while the catalogue carries only one brand, and unused for an `id` lookup. */
2803
+ brand?: string;
2654
2804
  }
2655
2805
  interface SearchCardsParams extends PaginationParams {
2656
2806
  /** Free-text search over card and set names. */
@@ -2691,6 +2841,11 @@ interface CardDailyStatsParams extends RequestOptions {
2691
2841
  categoryId?: string;
2692
2842
  /** Expansion id (ObjectId), an alternative to `expansion`. */
2693
2843
  expansionId?: string;
2844
+ /** Brand technicalName. */
2845
+ brand?: string;
2846
+ /** Brand id (ObjectId), an alternative to `brand`. */
2847
+ brandId?: string;
2848
+ productLine?: ProductLine;
2694
2849
  }
2695
2850
  /** Filters for `cards.estimatedValues()`. Note `page`/`limit`, not the `limit`/`skip` the rest of
2696
2851
  * the API paginates with — this endpoint predates that convention. */
@@ -2703,6 +2858,11 @@ interface CardEstimatedValuesParams extends RequestOptions {
2703
2858
  category?: string;
2704
2859
  /** Expansion technicalName. */
2705
2860
  expansion?: string;
2861
+ /** Brand technicalName. */
2862
+ brand?: string;
2863
+ /** Brand id (ObjectId), an alternative to `brand`. */
2864
+ brandId?: string;
2865
+ productLine?: ProductLine;
2706
2866
  }
2707
2867
  declare class CardsResource {
2708
2868
  private readonly http;
@@ -2711,8 +2871,9 @@ declare class CardsResource {
2711
2871
  list(params?: ListCardsParams): Promise<ListResponse<Card>>;
2712
2872
  /** `GET /cards/search`: like `list()`, but with free-text search on card and set names. Premium. */
2713
2873
  search(params?: SearchCardsParams): Promise<ListResponse<Card>>;
2714
- /** `GET /cards/{id}`: fetch one card by its id or technicalName. */
2715
- get(idOrTechnicalName: string, options?: RequestOptions): Promise<Card>;
2874
+ /** `GET /cards/{id}`: fetch one card by its id or technicalName. Pass `brand` if two brands
2875
+ * might share the same technicalName — see `GetCardParams`. */
2876
+ get(idOrTechnicalName: string, params?: GetCardParams): Promise<Card>;
2716
2877
  /** `GET /cards/{id}/matches`: current shop listings matched to this card (latest per shop). */
2717
2878
  matches(idOrTechnicalName: string, params?: CardMatchesParams): Promise<ItemShopMatches>;
2718
2879
  /** `GET /cards/{id}/reference-prices`: Cardmarket/TCGplayer/eBay/Tradera price history. Premium. */
@@ -2746,11 +2907,16 @@ declare class CardsResource {
2746
2907
  * card-scoped counterpart to `client.priceStats.estimatedValues()`. */
2747
2908
  estimatedValues(params?: CardEstimatedValuesParams): Promise<ListResponse<ItemEstimatedValue>>;
2748
2909
  }
2910
+ interface ListExpansionsParams extends RequestOptions {
2911
+ /** Brand `id` or technicalName, e.g. `'pokemon'`. An unrecognized value is a 400, not an empty
2912
+ * list. */
2913
+ brand?: string;
2914
+ }
2749
2915
  declare class ExpansionsResource {
2750
2916
  private readonly http;
2751
2917
  constructor(http: HttpClient);
2752
2918
  /** `GET /expansions`: every expansion. Unwrapped to a plain array, nothing to paginate here. */
2753
- list(options?: RequestOptions): Promise<Expansion[]>;
2919
+ list(params?: ListExpansionsParams): Promise<Expansion[]>;
2754
2920
  /** `GET /expansions/{technicalName}`: metadata only — no cards or sealed products. Returns the
2755
2921
  * smaller `ExpansionRef`, not the full `Expansion`: this is a plain lookup by technicalName, not
2756
2922
  * the aggregation `list()` runs, so `sealedCount`/`cardCount`/`productCount` aren't available
@@ -2761,6 +2927,9 @@ declare class ExpansionsResource {
2761
2927
  * pricing too. Sealed products are a separate call — see `sealedProducts()` — never merged into
2762
2928
  * this one. */
2763
2929
  cards(technicalName: string, options?: RequestOptions): Promise<ListResponse<Card>>;
2930
+ /** `GET /expansions/{technicalName}/release-group`: the other expansions in this expansion's
2931
+ * release group (e.g. a core set's variant drops), excluding the requested expansion itself. */
2932
+ releaseGroup(technicalName: string, options?: RequestOptions): Promise<ExpansionReleaseGroup>;
2764
2933
  /** `GET /expansions/{technicalName}/products`: every sealed product in this expansion. Content
2765
2934
  * only, no pricing fields — pass the `id`s from the result to `client.products.pricingBatch()`
2766
2935
  * if you need pricing too. Cards are a separate call — see `cards()` — never merged into this
@@ -2793,6 +2962,11 @@ interface ProductFilterParams extends RequestOptions {
2793
2962
  category?: string;
2794
2963
  /** Expansion technicalName. */
2795
2964
  expansion?: string;
2965
+ /** Brand technicalName. */
2966
+ brand?: string;
2967
+ /** Brand id (ObjectId), an alternative to `brand`. */
2968
+ brandId?: string;
2969
+ productLine?: ProductLine;
2796
2970
  }
2797
2971
  interface DailyPriceStatsParams extends ProductFilterParams {
2798
2972
  /** `YYYY-MM-DD` */
@@ -2864,6 +3038,15 @@ declare class PriceStatsResource {
2864
3038
  productDailyByVariant(idOrTechnicalName: string, params: ProductDailyByVariantParams): Promise<ItemVariantDailyStats>;
2865
3039
  }
2866
3040
  interface ListProductsParams extends PaginationParams {
3041
+ /** Brand `id` or technicalName, e.g. `'pokemon'`. Scopes the listing to one game/universe. An
3042
+ * unrecognized value is a 400, not an empty page. */
3043
+ brand?: string;
3044
+ productLine?: ProductLine;
3045
+ }
3046
+ interface GetProductParams extends RequestOptions {
3047
+ /** Brand `id` or technicalName. Disambiguates a `technicalName` two brands both happen to use —
3048
+ * irrelevant while the catalogue carries only one brand, and unused for an `id` lookup. */
3049
+ brand?: string;
2867
3050
  }
2868
3051
  interface SearchProductsParams extends PaginationParams {
2869
3052
  /** Whitespace-separated tokens, each matched against the start of a word. */
@@ -2907,6 +3090,11 @@ interface ProductDailyPriceStatsParams extends RequestOptions {
2907
3090
  categoryId?: string;
2908
3091
  /** Expansion id (ObjectId), an alternative to `expansion`. */
2909
3092
  expansionId?: string;
3093
+ /** Brand technicalName. */
3094
+ brand?: string;
3095
+ /** Brand id (ObjectId), an alternative to `brand`. */
3096
+ brandId?: string;
3097
+ productLine?: ProductLine;
2910
3098
  }
2911
3099
  /** Filters for `products.estimatedValues()`. Note `page`/`limit`, not the `limit`/`skip` the rest
2912
3100
  * of the API paginates with — this endpoint predates that convention. */
@@ -2921,6 +3109,11 @@ interface ProductEstimatedValuesParams extends RequestOptions {
2921
3109
  category?: string;
2922
3110
  /** Expansion technicalName. */
2923
3111
  expansion?: string;
3112
+ /** Brand technicalName. */
3113
+ brand?: string;
3114
+ /** Brand id (ObjectId), an alternative to `brand`. */
3115
+ brandId?: string;
3116
+ productLine?: ProductLine;
2924
3117
  }
2925
3118
  /** Sealed products: booster boxes, ETBs, tins, and the like. Single cards live under
2926
3119
  * `client.cards` instead. */
@@ -2932,8 +3125,9 @@ declare class ProductsResource {
2932
3125
  list(params?: ListProductsParams): Promise<ListResponse<SealedProduct>>;
2933
3126
  /** `GET /product/search`: like `list()`, but with free-text search on the product name. Premium. */
2934
3127
  search(params?: SearchProductsParams): Promise<ListResponse<SealedProduct>>;
2935
- /** `GET /product/{id}`: fetch one sealed product by its id or technicalName. */
2936
- get(idOrTechnicalName: string, options?: RequestOptions): Promise<SealedProduct>;
3128
+ /** `GET /product/{id}`: fetch one sealed product by its id or technicalName. Pass `brand` if two
3129
+ * brands might share the same technicalName — see `GetProductParams`. */
3130
+ get(idOrTechnicalName: string, params?: GetProductParams): Promise<SealedProduct>;
2937
3131
  /** `GET /product/{id}/matches`: current shop listings matched to this product (latest per shop). */
2938
3132
  matches(idOrTechnicalName: string, params?: ProductMatchesParams): Promise<ItemShopMatches>;
2939
3133
  /** `GET /product/{id}/reference-prices`: Cardmarket/TCGplayer/Tradera price history. Premium. */
@@ -3153,6 +3347,7 @@ declare class TcgPriser {
3153
3347
  readonly cards: CardsResource;
3154
3348
  readonly products: ProductsResource;
3155
3349
  readonly expansions: ExpansionsResource;
3350
+ readonly brands: BrandsResource;
3156
3351
  readonly shops: ShopsResource;
3157
3352
  readonly shopMatches: ShopMatchesResource;
3158
3353
  readonly shopMatchStats: ShopMatchStatsResource;
@@ -3229,4 +3424,4 @@ declare class TcgPriserError extends Error {
3229
3424
  creditsRemaining?: number;
3230
3425
  });
3231
3426
  }
3232
- export { type Acknowledgement, type AlternativeName, type AssignShopUrlProductParams, type Bargain, type BargainInfo, type BargainProductRef, type BargainReferenceSource, type BrandRef, type Card, type CardDailyStatsParams, type CardEstimatedValuesParams, type CardMatchesParams, type CardPricesParams, type CardReferencePricesParams, type CardType, type CardVariants, type CatalogItem, type CatalogItemPricing, type CatalogSlug, type CategoryRef, type CompareShopPricesParams, type CreateWebhookParams, type CurrencyCode, DEFAULT_BASE_URL, DEFAULT_TIMEOUT_MS, type DailyPricePoint, type DailyPriceStatsParams, type EstimatedValue, type EstimatedValuesParams, type Expansion, type ExpansionLivePricing, type ExpansionRef, 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 ProductDailyPriceStatsParams, type ProductDailyStatsParams, type ProductEstimatedValuesParams, 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 RequestOptions, type ResourceId, type SealedProduct, type SearchBargainsParams, type SearchCardsParams, type SearchProductsParams, 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, type TcgPriserAdvancedOptions, TcgPriserError, type TcgPriserErrorCode, type TcgPriserOptions, type Timestamp, type TopItem, type TopProductsParams, type VariantPriceStat, type VariantSelector, type VariantStatsSummary, type Webhook, type WebhookDeliveryStatus, type WebhookEvent, type WebhookTestResult, type WebhookWithSecret, type components };
3427
+ export { type Acknowledgement, type AlternativeName, type AssignShopUrlProductParams, type Bargain, type BargainInfo, type BargainProductRef, type BargainReferenceSource, type Brand, type BrandRef, type Card, type CardDailyStatsParams, type CardEstimatedValuesParams, type CardMatchesParams, type CardPricesParams, type CardReferencePricesParams, type CardType, type CardVariants, type CatalogItem, type CatalogItemPricing, type CatalogSlug, type CategoryRef, type CompareShopPricesParams, type CreateWebhookParams, type CurrencyCode, DEFAULT_BASE_URL, DEFAULT_TIMEOUT_MS, type DailyPricePoint, type DailyPriceStatsParams, type EstimatedValue, type EstimatedValuesParams, type Expansion, type ExpansionLivePricing, type ExpansionRef, type ExpansionReleaseGroup, 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 ProductDailyPriceStatsParams, type ProductDailyStatsParams, type ProductEstimatedValuesParams, type ProductFilterParams, type ProductLine, 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 RequestOptions, type ResourceId, type SealedProduct, type SearchBargainsParams, type SearchCardsParams, type SearchProductsParams, 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, type TcgPriserAdvancedOptions, TcgPriserError, type TcgPriserErrorCode, type TcgPriserOptions, type Timestamp, type TopItem, type TopProductsParams, type VariantPriceStat, type VariantSelector, type VariantStatsSummary, type Webhook, type WebhookDeliveryStatus, type WebhookEvent, type WebhookTestResult, type WebhookWithSecret, type components };