tcgpriser 0.2.0 → 0.3.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 +4105 -170
- package/dist/index.d.ts +4105 -170
- package/package.json +2 -2
package/dist/index.d.cts
CHANGED
|
@@ -27,7 +27,6 @@ declare class HttpClient {
|
|
|
27
27
|
patch<T>(path: string, body: unknown, requestOptions?: PremiumOptions): Promise<T>;
|
|
28
28
|
private request;
|
|
29
29
|
}
|
|
30
|
-
|
|
31
30
|
interface components {
|
|
32
31
|
schemas: {
|
|
33
32
|
ApiError: {
|
|
@@ -2746,7 +2745,6 @@ interface components {
|
|
|
2746
2745
|
headers: never;
|
|
2747
2746
|
pathItems: never;
|
|
2748
2747
|
}
|
|
2749
|
-
|
|
2750
2748
|
/**
|
|
2751
2749
|
* Shared primitives reused across every resource. Pulled from `src/generated/openapi.d.ts` via
|
|
2752
2750
|
* indexed access instead of retyped by hand, so a field rename in the API is a compile error here,
|
|
@@ -2758,9 +2756,250 @@ interface components {
|
|
|
2758
2756
|
* byte-identical across `ProductWithPricing`, `PackRate` and the shop-match schemas too, so picking
|
|
2759
2757
|
* one as the source of truth works fine.
|
|
2760
2758
|
*/
|
|
2761
|
-
|
|
2762
|
-
|
|
2763
|
-
|
|
2759
|
+
type CardSchema = {
|
|
2760
|
+
/**
|
|
2761
|
+
* @description Resource identifier
|
|
2762
|
+
* @example 6a577711abc1ce71383d3e10
|
|
2763
|
+
*/
|
|
2764
|
+
id: string;
|
|
2765
|
+
name: string;
|
|
2766
|
+
shortName: string | undefined;
|
|
2767
|
+
technicalName: string;
|
|
2768
|
+
brand: {
|
|
2769
|
+
/**
|
|
2770
|
+
* @description Resource identifier
|
|
2771
|
+
* @example 6a577711abc1ce71383d3e10
|
|
2772
|
+
*/
|
|
2773
|
+
id: string;
|
|
2774
|
+
/** @example Pokémon */
|
|
2775
|
+
name: string;
|
|
2776
|
+
/** @example pokemon */
|
|
2777
|
+
technicalName: string;
|
|
2778
|
+
/**
|
|
2779
|
+
* Format: date-time
|
|
2780
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
2781
|
+
*/
|
|
2782
|
+
createdAt: string;
|
|
2783
|
+
/**
|
|
2784
|
+
* Format: date-time
|
|
2785
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
2786
|
+
*/
|
|
2787
|
+
updatedAt: string;
|
|
2788
|
+
};
|
|
2789
|
+
manufacturer: string;
|
|
2790
|
+
modelNumber: string | undefined;
|
|
2791
|
+
category: {
|
|
2792
|
+
/**
|
|
2793
|
+
* @description Resource identifier
|
|
2794
|
+
* @example 6a577711abc1ce71383d3e10
|
|
2795
|
+
*/
|
|
2796
|
+
id: string;
|
|
2797
|
+
/** @example Booster Box */
|
|
2798
|
+
name: string;
|
|
2799
|
+
/** @example booster-box */
|
|
2800
|
+
technicalName: string;
|
|
2801
|
+
} | undefined;
|
|
2802
|
+
expansion: {
|
|
2803
|
+
/**
|
|
2804
|
+
* @description Resource identifier
|
|
2805
|
+
* @example 6a577711abc1ce71383d3e10
|
|
2806
|
+
*/
|
|
2807
|
+
id: string;
|
|
2808
|
+
/** @example Mega Evolution 30th Celebration */
|
|
2809
|
+
name: string;
|
|
2810
|
+
/** @example 30th Celebration */
|
|
2811
|
+
shortName: string;
|
|
2812
|
+
/** @example jpn-mega-evolution-30th-celebration */
|
|
2813
|
+
technicalName: string;
|
|
2814
|
+
/**
|
|
2815
|
+
* @description Printing language of the item
|
|
2816
|
+
* @example JPN
|
|
2817
|
+
* @enum {string}
|
|
2818
|
+
*/
|
|
2819
|
+
language: "ENG" | "JPN" | "CHI";
|
|
2820
|
+
/** @example m6a */
|
|
2821
|
+
code: string | undefined;
|
|
2822
|
+
/** @example m6a */
|
|
2823
|
+
cardCode: string | undefined;
|
|
2824
|
+
/** @example Mega Evolution */
|
|
2825
|
+
seriesName: string | undefined;
|
|
2826
|
+
/**
|
|
2827
|
+
* Format: date-time
|
|
2828
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
2829
|
+
*/
|
|
2830
|
+
releaseDate: string | undefined;
|
|
2831
|
+
/**
|
|
2832
|
+
* @description Absolute asset URL, or null when absent
|
|
2833
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
2834
|
+
*/
|
|
2835
|
+
logoUrl: string | undefined;
|
|
2836
|
+
/**
|
|
2837
|
+
* @description Absolute asset URL, or null when absent
|
|
2838
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
2839
|
+
*/
|
|
2840
|
+
symbolUrl: string | undefined;
|
|
2841
|
+
/**
|
|
2842
|
+
* @description Absolute asset URL, or null when absent
|
|
2843
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
2844
|
+
*/
|
|
2845
|
+
imageUrl: string | undefined;
|
|
2846
|
+
} | undefined;
|
|
2847
|
+
/**
|
|
2848
|
+
* @description Printing language of the item
|
|
2849
|
+
* @example JPN
|
|
2850
|
+
* @enum {string|null}
|
|
2851
|
+
*/
|
|
2852
|
+
language: "ENG" | "JPN" | "CHI" | undefined;
|
|
2853
|
+
alternativeNames: {
|
|
2854
|
+
name: string;
|
|
2855
|
+
shortName: string | undefined;
|
|
2856
|
+
}[];
|
|
2857
|
+
supportsMultipackPricing: boolean;
|
|
2858
|
+
/**
|
|
2859
|
+
* @description Absolute asset URL, or null when absent
|
|
2860
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
2861
|
+
*/
|
|
2862
|
+
imageUrl: string | undefined;
|
|
2863
|
+
/**
|
|
2864
|
+
* @description Cheapest current shop price, in SEK
|
|
2865
|
+
* @example 149.5
|
|
2866
|
+
*/
|
|
2867
|
+
retailPrice: number | undefined;
|
|
2868
|
+
/**
|
|
2869
|
+
* @description Estimated market value, in SEK
|
|
2870
|
+
* @example 149.5
|
|
2871
|
+
*/
|
|
2872
|
+
estimatedValue: number | undefined;
|
|
2873
|
+
/** @description Active shops currently tracking this item */
|
|
2874
|
+
shopCount: number;
|
|
2875
|
+
/** @description Observations the estimate rests on */
|
|
2876
|
+
pricingDataPoints: number;
|
|
2877
|
+
/**
|
|
2878
|
+
* Format: date-time
|
|
2879
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
2880
|
+
*/
|
|
2881
|
+
pricingUpdatedAt: string | undefined;
|
|
2882
|
+
/**
|
|
2883
|
+
* Format: date-time
|
|
2884
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
2885
|
+
*/
|
|
2886
|
+
createdAt: string;
|
|
2887
|
+
/**
|
|
2888
|
+
* Format: date-time
|
|
2889
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
2890
|
+
*/
|
|
2891
|
+
updatedAt: string;
|
|
2892
|
+
/** @enum {string} */
|
|
2893
|
+
kind: "card";
|
|
2894
|
+
/** @example 4/102 */
|
|
2895
|
+
cardNumber: string;
|
|
2896
|
+
/** @example Rare Holo */
|
|
2897
|
+
rarity: string | undefined;
|
|
2898
|
+
artist: string | undefined;
|
|
2899
|
+
cardmarketId: string | undefined;
|
|
2900
|
+
tcgplayerId: string | undefined;
|
|
2901
|
+
variants: {
|
|
2902
|
+
normal: boolean;
|
|
2903
|
+
holo: boolean;
|
|
2904
|
+
reverse: boolean;
|
|
2905
|
+
firstEdition: boolean;
|
|
2906
|
+
wPromo: boolean;
|
|
2907
|
+
} | undefined;
|
|
2908
|
+
prisjaktId: string | undefined;
|
|
2909
|
+
lowestShopOffer: {
|
|
2910
|
+
shop: {
|
|
2911
|
+
/** @example cardlevels */
|
|
2912
|
+
technicalName: string;
|
|
2913
|
+
/** @example Cardlevels */
|
|
2914
|
+
name: string;
|
|
2915
|
+
};
|
|
2916
|
+
url: string;
|
|
2917
|
+
/** @example 149.5 */
|
|
2918
|
+
price: number;
|
|
2919
|
+
/**
|
|
2920
|
+
* @description ISO-4217 currency code
|
|
2921
|
+
* @example SEK
|
|
2922
|
+
*/
|
|
2923
|
+
currency: string;
|
|
2924
|
+
inStock: boolean;
|
|
2925
|
+
inPreorder: boolean;
|
|
2926
|
+
inMonitor: boolean;
|
|
2927
|
+
isFullyBooked: boolean;
|
|
2928
|
+
/**
|
|
2929
|
+
* Format: date-time
|
|
2930
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
2931
|
+
*/
|
|
2932
|
+
matchedAt: string;
|
|
2933
|
+
/**
|
|
2934
|
+
* Format: date-time
|
|
2935
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
2936
|
+
*/
|
|
2937
|
+
updatedAt: string;
|
|
2938
|
+
bargain: {
|
|
2939
|
+
discountPercent: number;
|
|
2940
|
+
/** @enum {string} */
|
|
2941
|
+
referenceSource: "retail" | "tradera" | "cardmarket";
|
|
2942
|
+
} | undefined;
|
|
2943
|
+
} | undefined;
|
|
2944
|
+
referencePriceSnapshotsByProvider: {
|
|
2945
|
+
[key: string]: {
|
|
2946
|
+
/** @enum {string} */
|
|
2947
|
+
provider: "cardmarket" | "tcgplayer" | "ebay" | "tradera";
|
|
2948
|
+
/** @example 149.5 */
|
|
2949
|
+
price: number;
|
|
2950
|
+
/**
|
|
2951
|
+
* @description ISO-4217 currency code
|
|
2952
|
+
* @example SEK
|
|
2953
|
+
*/
|
|
2954
|
+
currency: string;
|
|
2955
|
+
/**
|
|
2956
|
+
* @description price converted to SEK at the rate stored on the row
|
|
2957
|
+
* @example 149.5
|
|
2958
|
+
*/
|
|
2959
|
+
priceSek: number;
|
|
2960
|
+
/**
|
|
2961
|
+
* Format: date-time
|
|
2962
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
2963
|
+
*/
|
|
2964
|
+
snapshotDate: string;
|
|
2965
|
+
};
|
|
2966
|
+
};
|
|
2967
|
+
};
|
|
2968
|
+
type LowestShopOfferSchema = {
|
|
2969
|
+
shop: {
|
|
2970
|
+
/** @example cardlevels */
|
|
2971
|
+
technicalName: string;
|
|
2972
|
+
/** @example Cardlevels */
|
|
2973
|
+
name: string;
|
|
2974
|
+
};
|
|
2975
|
+
url: string;
|
|
2976
|
+
/** @example 149.5 */
|
|
2977
|
+
price: number;
|
|
2978
|
+
/**
|
|
2979
|
+
* @description ISO-4217 currency code
|
|
2980
|
+
* @example SEK
|
|
2981
|
+
*/
|
|
2982
|
+
currency: string;
|
|
2983
|
+
inStock: boolean;
|
|
2984
|
+
inPreorder: boolean;
|
|
2985
|
+
inMonitor: boolean;
|
|
2986
|
+
isFullyBooked: boolean;
|
|
2987
|
+
/**
|
|
2988
|
+
* Format: date-time
|
|
2989
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
2990
|
+
*/
|
|
2991
|
+
matchedAt: string;
|
|
2992
|
+
/**
|
|
2993
|
+
* Format: date-time
|
|
2994
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
2995
|
+
*/
|
|
2996
|
+
updatedAt: string;
|
|
2997
|
+
bargain: {
|
|
2998
|
+
discountPercent: number;
|
|
2999
|
+
/** @enum {string} */
|
|
3000
|
+
referenceSource: "retail" | "tradera" | "cardmarket";
|
|
3001
|
+
} | undefined;
|
|
3002
|
+
};
|
|
2764
3003
|
/** A Mongo ObjectId, always a 24-char lowercase hex string. Just `string`, not a branded type;
|
|
2765
3004
|
* nothing here needs to tell it apart from any other id at compile time. */
|
|
2766
3005
|
type ResourceId = string;
|
|
@@ -2768,8 +3007,14 @@ type ResourceId = string;
|
|
|
2768
3007
|
type CurrencyCode = string;
|
|
2769
3008
|
/** ISO 8601 timestamp, as returned by the API (always UTC, `Z`-suffixed). */
|
|
2770
3009
|
type Timestamp = string;
|
|
2771
|
-
type PrintingLanguage =
|
|
2772
|
-
type PageMeta =
|
|
3010
|
+
type PrintingLanguage = "ENG" | "JPN" | "CHI";
|
|
3011
|
+
type PageMeta = {
|
|
3012
|
+
/** @description Total matching records, ignoring pagination */
|
|
3013
|
+
total: number;
|
|
3014
|
+
limit: number;
|
|
3015
|
+
skip: number;
|
|
3016
|
+
hasMore: boolean;
|
|
3017
|
+
};
|
|
2773
3018
|
/** The standard paginated list envelope every `list`/`search` method returns. Hand-declared, not
|
|
2774
3019
|
* generated: the API repeats a fresh anonymous `{ data, pagination }` object per endpoint rather
|
|
2775
3020
|
* than naming it once. */
|
|
@@ -2782,177 +3027,3880 @@ interface PaginationParams {
|
|
|
2782
3027
|
limit?: number;
|
|
2783
3028
|
skip?: number;
|
|
2784
3029
|
}
|
|
2785
|
-
type AlternativeName =
|
|
2786
|
-
|
|
2787
|
-
|
|
3030
|
+
type AlternativeName = {
|
|
3031
|
+
name: string;
|
|
3032
|
+
shortName: string | undefined;
|
|
3033
|
+
};
|
|
3034
|
+
type BrandRef = {
|
|
3035
|
+
/**
|
|
3036
|
+
* @description Resource identifier
|
|
3037
|
+
* @example 6a577711abc1ce71383d3e10
|
|
3038
|
+
*/
|
|
3039
|
+
id: string;
|
|
3040
|
+
/** @example Pokémon */
|
|
3041
|
+
name: string;
|
|
3042
|
+
/** @example pokemon */
|
|
3043
|
+
technicalName: string;
|
|
3044
|
+
/**
|
|
3045
|
+
* Format: date-time
|
|
3046
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
3047
|
+
*/
|
|
3048
|
+
createdAt: string;
|
|
3049
|
+
/**
|
|
3050
|
+
* Format: date-time
|
|
3051
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
3052
|
+
*/
|
|
3053
|
+
updatedAt: string;
|
|
3054
|
+
};
|
|
3055
|
+
type CategoryRef = {
|
|
3056
|
+
/**
|
|
3057
|
+
* @description Resource identifier
|
|
3058
|
+
* @example 6a577711abc1ce71383d3e10
|
|
3059
|
+
*/
|
|
3060
|
+
id: string;
|
|
3061
|
+
/** @example Booster Box */
|
|
3062
|
+
name: string;
|
|
3063
|
+
/** @example booster-box */
|
|
3064
|
+
technicalName: string;
|
|
3065
|
+
};
|
|
2788
3066
|
/** The expansion shape embedded on cards, products and pack rates. Not the full `Expansion`
|
|
2789
3067
|
* returned by `client.expansions.list()`, which additionally carries counts and a `brand`. */
|
|
2790
|
-
type ExpansionRef =
|
|
3068
|
+
type ExpansionRef = {
|
|
3069
|
+
/**
|
|
3070
|
+
* @description Resource identifier
|
|
3071
|
+
* @example 6a577711abc1ce71383d3e10
|
|
3072
|
+
*/
|
|
3073
|
+
id: string;
|
|
3074
|
+
/** @example Mega Evolution 30th Celebration */
|
|
3075
|
+
name: string;
|
|
3076
|
+
/** @example 30th Celebration */
|
|
3077
|
+
shortName: string;
|
|
3078
|
+
/** @example jpn-mega-evolution-30th-celebration */
|
|
3079
|
+
technicalName: string;
|
|
3080
|
+
/**
|
|
3081
|
+
* @description Printing language of the item
|
|
3082
|
+
* @example JPN
|
|
3083
|
+
* @enum {string}
|
|
3084
|
+
*/
|
|
3085
|
+
language: "ENG" | "JPN" | "CHI";
|
|
3086
|
+
/** @example m6a */
|
|
3087
|
+
code: string | undefined;
|
|
3088
|
+
/** @example m6a */
|
|
3089
|
+
cardCode: string | undefined;
|
|
3090
|
+
/** @example Mega Evolution */
|
|
3091
|
+
seriesName: string | undefined;
|
|
3092
|
+
/**
|
|
3093
|
+
* Format: date-time
|
|
3094
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
3095
|
+
*/
|
|
3096
|
+
releaseDate: string | undefined;
|
|
3097
|
+
/**
|
|
3098
|
+
* @description Absolute asset URL, or null when absent
|
|
3099
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
3100
|
+
*/
|
|
3101
|
+
logoUrl: string | undefined;
|
|
3102
|
+
/**
|
|
3103
|
+
* @description Absolute asset URL, or null when absent
|
|
3104
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
3105
|
+
*/
|
|
3106
|
+
symbolUrl: string | undefined;
|
|
3107
|
+
/**
|
|
3108
|
+
* @description Absolute asset URL, or null when absent
|
|
3109
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
3110
|
+
*/
|
|
3111
|
+
imageUrl: string | undefined;
|
|
3112
|
+
};
|
|
2791
3113
|
/** The minimal shop identity embedded on offers and matches. */
|
|
2792
|
-
type ShopRef =
|
|
2793
|
-
|
|
3114
|
+
type ShopRef = {
|
|
3115
|
+
/** @example cardlevels */
|
|
3116
|
+
technicalName: string;
|
|
3117
|
+
/** @example Cardlevels */
|
|
3118
|
+
name: string;
|
|
3119
|
+
};
|
|
3120
|
+
type BargainReferenceSource = "retail" | "tradera" | "cardmarket";
|
|
2794
3121
|
/** Present on an offer/match when its price is a known-good discount off a reference price. */
|
|
2795
|
-
type BargainInfo =
|
|
3122
|
+
type BargainInfo = {
|
|
3123
|
+
discountPercent: number;
|
|
3124
|
+
/** @enum {string} */
|
|
3125
|
+
referenceSource: "retail" | "tradera" | "cardmarket";
|
|
3126
|
+
};
|
|
2796
3127
|
/** The cheapest current shop offer for a card or product. */
|
|
2797
3128
|
type LowestShopOffer = LowestShopOfferSchema;
|
|
2798
|
-
type ReferencePriceProvider =
|
|
2799
|
-
type ReferencePriceSnapshot =
|
|
3129
|
+
type ReferencePriceProvider = "tradera" | "cardmarket" | "tcgplayer" | "ebay";
|
|
3130
|
+
type ReferencePriceSnapshot = {
|
|
3131
|
+
/** @enum {string} */
|
|
3132
|
+
provider: "cardmarket" | "tcgplayer" | "ebay" | "tradera";
|
|
3133
|
+
/** @example 149.5 */
|
|
3134
|
+
price: number;
|
|
3135
|
+
/**
|
|
3136
|
+
* @description ISO-4217 currency code
|
|
3137
|
+
* @example SEK
|
|
3138
|
+
*/
|
|
3139
|
+
currency: string;
|
|
3140
|
+
/**
|
|
3141
|
+
* @description price converted to SEK at the rate stored on the row
|
|
3142
|
+
* @example 149.5
|
|
3143
|
+
*/
|
|
3144
|
+
priceSek: number;
|
|
3145
|
+
/**
|
|
3146
|
+
* Format: date-time
|
|
3147
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
3148
|
+
*/
|
|
3149
|
+
snapshotDate: string;
|
|
3150
|
+
};
|
|
2800
3151
|
/** Keyed by provider, at most one snapshot per provider. */
|
|
2801
3152
|
type ReferencePriceSnapshotsByProvider = Partial<Record<ReferencePriceProvider, ReferencePriceSnapshot>>;
|
|
2802
|
-
|
|
2803
3153
|
/** A card, as returned by `client.cards.get()` / `client.cards.list()`, and as embedded in
|
|
2804
3154
|
* `client.expansions.products()`. `kind: 'card'` is a literal on the generated type, which is what
|
|
2805
3155
|
* makes `CatalogItem` (below) discriminate cleanly. */
|
|
2806
|
-
type Card =
|
|
3156
|
+
type Card = {
|
|
3157
|
+
/**
|
|
3158
|
+
* @description Resource identifier
|
|
3159
|
+
* @example 6a577711abc1ce71383d3e10
|
|
3160
|
+
*/
|
|
3161
|
+
id: string;
|
|
3162
|
+
name: string;
|
|
3163
|
+
shortName: string | undefined;
|
|
3164
|
+
technicalName: string;
|
|
3165
|
+
brand: {
|
|
3166
|
+
/**
|
|
3167
|
+
* @description Resource identifier
|
|
3168
|
+
* @example 6a577711abc1ce71383d3e10
|
|
3169
|
+
*/
|
|
3170
|
+
id: string;
|
|
3171
|
+
/** @example Pokémon */
|
|
3172
|
+
name: string;
|
|
3173
|
+
/** @example pokemon */
|
|
3174
|
+
technicalName: string;
|
|
3175
|
+
/**
|
|
3176
|
+
* Format: date-time
|
|
3177
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
3178
|
+
*/
|
|
3179
|
+
createdAt: string;
|
|
3180
|
+
/**
|
|
3181
|
+
* Format: date-time
|
|
3182
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
3183
|
+
*/
|
|
3184
|
+
updatedAt: string;
|
|
3185
|
+
};
|
|
3186
|
+
manufacturer: string;
|
|
3187
|
+
modelNumber: string | undefined;
|
|
3188
|
+
category: {
|
|
3189
|
+
/**
|
|
3190
|
+
* @description Resource identifier
|
|
3191
|
+
* @example 6a577711abc1ce71383d3e10
|
|
3192
|
+
*/
|
|
3193
|
+
id: string;
|
|
3194
|
+
/** @example Booster Box */
|
|
3195
|
+
name: string;
|
|
3196
|
+
/** @example booster-box */
|
|
3197
|
+
technicalName: string;
|
|
3198
|
+
} | undefined;
|
|
3199
|
+
expansion: {
|
|
3200
|
+
/**
|
|
3201
|
+
* @description Resource identifier
|
|
3202
|
+
* @example 6a577711abc1ce71383d3e10
|
|
3203
|
+
*/
|
|
3204
|
+
id: string;
|
|
3205
|
+
/** @example Mega Evolution 30th Celebration */
|
|
3206
|
+
name: string;
|
|
3207
|
+
/** @example 30th Celebration */
|
|
3208
|
+
shortName: string;
|
|
3209
|
+
/** @example jpn-mega-evolution-30th-celebration */
|
|
3210
|
+
technicalName: string;
|
|
3211
|
+
/**
|
|
3212
|
+
* @description Printing language of the item
|
|
3213
|
+
* @example JPN
|
|
3214
|
+
* @enum {string}
|
|
3215
|
+
*/
|
|
3216
|
+
language: "ENG" | "JPN" | "CHI";
|
|
3217
|
+
/** @example m6a */
|
|
3218
|
+
code: string | undefined;
|
|
3219
|
+
/** @example m6a */
|
|
3220
|
+
cardCode: string | undefined;
|
|
3221
|
+
/** @example Mega Evolution */
|
|
3222
|
+
seriesName: string | undefined;
|
|
3223
|
+
/**
|
|
3224
|
+
* Format: date-time
|
|
3225
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
3226
|
+
*/
|
|
3227
|
+
releaseDate: string | undefined;
|
|
3228
|
+
/**
|
|
3229
|
+
* @description Absolute asset URL, or null when absent
|
|
3230
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
3231
|
+
*/
|
|
3232
|
+
logoUrl: string | undefined;
|
|
3233
|
+
/**
|
|
3234
|
+
* @description Absolute asset URL, or null when absent
|
|
3235
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
3236
|
+
*/
|
|
3237
|
+
symbolUrl: string | undefined;
|
|
3238
|
+
/**
|
|
3239
|
+
* @description Absolute asset URL, or null when absent
|
|
3240
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
3241
|
+
*/
|
|
3242
|
+
imageUrl: string | undefined;
|
|
3243
|
+
} | undefined;
|
|
3244
|
+
/**
|
|
3245
|
+
* @description Printing language of the item
|
|
3246
|
+
* @example JPN
|
|
3247
|
+
* @enum {string|null}
|
|
3248
|
+
*/
|
|
3249
|
+
language: "ENG" | "JPN" | "CHI" | undefined;
|
|
3250
|
+
alternativeNames: {
|
|
3251
|
+
name: string;
|
|
3252
|
+
shortName: string | undefined;
|
|
3253
|
+
}[];
|
|
3254
|
+
supportsMultipackPricing: boolean;
|
|
3255
|
+
/**
|
|
3256
|
+
* @description Absolute asset URL, or null when absent
|
|
3257
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
3258
|
+
*/
|
|
3259
|
+
imageUrl: string | undefined;
|
|
3260
|
+
/**
|
|
3261
|
+
* @description Cheapest current shop price, in SEK
|
|
3262
|
+
* @example 149.5
|
|
3263
|
+
*/
|
|
3264
|
+
retailPrice: number | undefined;
|
|
3265
|
+
/**
|
|
3266
|
+
* @description Estimated market value, in SEK
|
|
3267
|
+
* @example 149.5
|
|
3268
|
+
*/
|
|
3269
|
+
estimatedValue: number | undefined;
|
|
3270
|
+
/** @description Active shops currently tracking this item */
|
|
3271
|
+
shopCount: number;
|
|
3272
|
+
/** @description Observations the estimate rests on */
|
|
3273
|
+
pricingDataPoints: number;
|
|
3274
|
+
/**
|
|
3275
|
+
* Format: date-time
|
|
3276
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
3277
|
+
*/
|
|
3278
|
+
pricingUpdatedAt: string | undefined;
|
|
3279
|
+
/**
|
|
3280
|
+
* Format: date-time
|
|
3281
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
3282
|
+
*/
|
|
3283
|
+
createdAt: string;
|
|
3284
|
+
/**
|
|
3285
|
+
* Format: date-time
|
|
3286
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
3287
|
+
*/
|
|
3288
|
+
updatedAt: string;
|
|
3289
|
+
/** @enum {string} */
|
|
3290
|
+
kind: "card";
|
|
3291
|
+
/** @example 4/102 */
|
|
3292
|
+
cardNumber: string;
|
|
3293
|
+
/** @example Rare Holo */
|
|
3294
|
+
rarity: string | undefined;
|
|
3295
|
+
artist: string | undefined;
|
|
3296
|
+
cardmarketId: string | undefined;
|
|
3297
|
+
tcgplayerId: string | undefined;
|
|
3298
|
+
variants: {
|
|
3299
|
+
normal: boolean;
|
|
3300
|
+
holo: boolean;
|
|
3301
|
+
reverse: boolean;
|
|
3302
|
+
firstEdition: boolean;
|
|
3303
|
+
wPromo: boolean;
|
|
3304
|
+
} | undefined;
|
|
3305
|
+
prisjaktId: string | undefined;
|
|
3306
|
+
lowestShopOffer: {
|
|
3307
|
+
shop: {
|
|
3308
|
+
/** @example cardlevels */
|
|
3309
|
+
technicalName: string;
|
|
3310
|
+
/** @example Cardlevels */
|
|
3311
|
+
name: string;
|
|
3312
|
+
};
|
|
3313
|
+
url: string;
|
|
3314
|
+
/** @example 149.5 */
|
|
3315
|
+
price: number;
|
|
3316
|
+
/**
|
|
3317
|
+
* @description ISO-4217 currency code
|
|
3318
|
+
* @example SEK
|
|
3319
|
+
*/
|
|
3320
|
+
currency: string;
|
|
3321
|
+
inStock: boolean;
|
|
3322
|
+
inPreorder: boolean;
|
|
3323
|
+
inMonitor: boolean;
|
|
3324
|
+
isFullyBooked: boolean;
|
|
3325
|
+
/**
|
|
3326
|
+
* Format: date-time
|
|
3327
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
3328
|
+
*/
|
|
3329
|
+
matchedAt: string;
|
|
3330
|
+
/**
|
|
3331
|
+
* Format: date-time
|
|
3332
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
3333
|
+
*/
|
|
3334
|
+
updatedAt: string;
|
|
3335
|
+
bargain: {
|
|
3336
|
+
discountPercent: number;
|
|
3337
|
+
/** @enum {string} */
|
|
3338
|
+
referenceSource: "retail" | "tradera" | "cardmarket";
|
|
3339
|
+
} | undefined;
|
|
3340
|
+
} | undefined;
|
|
3341
|
+
referencePriceSnapshotsByProvider: {
|
|
3342
|
+
[key: string]: {
|
|
3343
|
+
/** @enum {string} */
|
|
3344
|
+
provider: "cardmarket" | "tcgplayer" | "ebay" | "tradera";
|
|
3345
|
+
/** @example 149.5 */
|
|
3346
|
+
price: number;
|
|
3347
|
+
/**
|
|
3348
|
+
* @description ISO-4217 currency code
|
|
3349
|
+
* @example SEK
|
|
3350
|
+
*/
|
|
3351
|
+
currency: string;
|
|
3352
|
+
/**
|
|
3353
|
+
* @description price converted to SEK at the rate stored on the row
|
|
3354
|
+
* @example 149.5
|
|
3355
|
+
*/
|
|
3356
|
+
priceSek: number;
|
|
3357
|
+
/**
|
|
3358
|
+
* Format: date-time
|
|
3359
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
3360
|
+
*/
|
|
3361
|
+
snapshotDate: string;
|
|
3362
|
+
};
|
|
3363
|
+
};
|
|
3364
|
+
};
|
|
2807
3365
|
/** A sealed product (booster box, ETB, tin, ...), as returned by `client.products.get()` /
|
|
2808
3366
|
* `client.products.list()`. `kind: 'sealed'` is a literal on the generated type. */
|
|
2809
|
-
type SealedProduct =
|
|
3367
|
+
type SealedProduct = {
|
|
3368
|
+
/**
|
|
3369
|
+
* @description Resource identifier
|
|
3370
|
+
* @example 6a577711abc1ce71383d3e10
|
|
3371
|
+
*/
|
|
3372
|
+
id: string;
|
|
3373
|
+
name: string;
|
|
3374
|
+
shortName: string | undefined;
|
|
3375
|
+
technicalName: string;
|
|
3376
|
+
brand: {
|
|
3377
|
+
/**
|
|
3378
|
+
* @description Resource identifier
|
|
3379
|
+
* @example 6a577711abc1ce71383d3e10
|
|
3380
|
+
*/
|
|
3381
|
+
id: string;
|
|
3382
|
+
/** @example Pokémon */
|
|
3383
|
+
name: string;
|
|
3384
|
+
/** @example pokemon */
|
|
3385
|
+
technicalName: string;
|
|
3386
|
+
/**
|
|
3387
|
+
* Format: date-time
|
|
3388
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
3389
|
+
*/
|
|
3390
|
+
createdAt: string;
|
|
3391
|
+
/**
|
|
3392
|
+
* Format: date-time
|
|
3393
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
3394
|
+
*/
|
|
3395
|
+
updatedAt: string;
|
|
3396
|
+
};
|
|
3397
|
+
manufacturer: string;
|
|
3398
|
+
modelNumber: string | undefined;
|
|
3399
|
+
category: {
|
|
3400
|
+
/**
|
|
3401
|
+
* @description Resource identifier
|
|
3402
|
+
* @example 6a577711abc1ce71383d3e10
|
|
3403
|
+
*/
|
|
3404
|
+
id: string;
|
|
3405
|
+
/** @example Booster Box */
|
|
3406
|
+
name: string;
|
|
3407
|
+
/** @example booster-box */
|
|
3408
|
+
technicalName: string;
|
|
3409
|
+
} | undefined;
|
|
3410
|
+
expansion: {
|
|
3411
|
+
/**
|
|
3412
|
+
* @description Resource identifier
|
|
3413
|
+
* @example 6a577711abc1ce71383d3e10
|
|
3414
|
+
*/
|
|
3415
|
+
id: string;
|
|
3416
|
+
/** @example Mega Evolution 30th Celebration */
|
|
3417
|
+
name: string;
|
|
3418
|
+
/** @example 30th Celebration */
|
|
3419
|
+
shortName: string;
|
|
3420
|
+
/** @example jpn-mega-evolution-30th-celebration */
|
|
3421
|
+
technicalName: string;
|
|
3422
|
+
/**
|
|
3423
|
+
* @description Printing language of the item
|
|
3424
|
+
* @example JPN
|
|
3425
|
+
* @enum {string}
|
|
3426
|
+
*/
|
|
3427
|
+
language: "ENG" | "JPN" | "CHI";
|
|
3428
|
+
/** @example m6a */
|
|
3429
|
+
code: string | undefined;
|
|
3430
|
+
/** @example m6a */
|
|
3431
|
+
cardCode: string | undefined;
|
|
3432
|
+
/** @example Mega Evolution */
|
|
3433
|
+
seriesName: string | undefined;
|
|
3434
|
+
/**
|
|
3435
|
+
* Format: date-time
|
|
3436
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
3437
|
+
*/
|
|
3438
|
+
releaseDate: string | undefined;
|
|
3439
|
+
/**
|
|
3440
|
+
* @description Absolute asset URL, or null when absent
|
|
3441
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
3442
|
+
*/
|
|
3443
|
+
logoUrl: string | undefined;
|
|
3444
|
+
/**
|
|
3445
|
+
* @description Absolute asset URL, or null when absent
|
|
3446
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
3447
|
+
*/
|
|
3448
|
+
symbolUrl: string | undefined;
|
|
3449
|
+
/**
|
|
3450
|
+
* @description Absolute asset URL, or null when absent
|
|
3451
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
3452
|
+
*/
|
|
3453
|
+
imageUrl: string | undefined;
|
|
3454
|
+
} | undefined;
|
|
3455
|
+
/**
|
|
3456
|
+
* @description Printing language of the item
|
|
3457
|
+
* @example JPN
|
|
3458
|
+
* @enum {string|null}
|
|
3459
|
+
*/
|
|
3460
|
+
language: "ENG" | "JPN" | "CHI" | undefined;
|
|
3461
|
+
alternativeNames: {
|
|
3462
|
+
name: string;
|
|
3463
|
+
shortName: string | undefined;
|
|
3464
|
+
}[];
|
|
3465
|
+
supportsMultipackPricing: boolean;
|
|
3466
|
+
/**
|
|
3467
|
+
* @description Absolute asset URL, or null when absent
|
|
3468
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
3469
|
+
*/
|
|
3470
|
+
imageUrl: string | undefined;
|
|
3471
|
+
/**
|
|
3472
|
+
* @description Cheapest current shop price, in SEK
|
|
3473
|
+
* @example 149.5
|
|
3474
|
+
*/
|
|
3475
|
+
retailPrice: number | undefined;
|
|
3476
|
+
/**
|
|
3477
|
+
* @description Estimated market value, in SEK
|
|
3478
|
+
* @example 149.5
|
|
3479
|
+
*/
|
|
3480
|
+
estimatedValue: number | undefined;
|
|
3481
|
+
/** @description Active shops currently tracking this item */
|
|
3482
|
+
shopCount: number;
|
|
3483
|
+
/** @description Observations the estimate rests on */
|
|
3484
|
+
pricingDataPoints: number;
|
|
3485
|
+
/**
|
|
3486
|
+
* Format: date-time
|
|
3487
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
3488
|
+
*/
|
|
3489
|
+
pricingUpdatedAt: string | undefined;
|
|
3490
|
+
/**
|
|
3491
|
+
* Format: date-time
|
|
3492
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
3493
|
+
*/
|
|
3494
|
+
createdAt: string;
|
|
3495
|
+
/**
|
|
3496
|
+
* Format: date-time
|
|
3497
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
3498
|
+
*/
|
|
3499
|
+
updatedAt: string;
|
|
3500
|
+
/** @enum {string} */
|
|
3501
|
+
kind: "sealed";
|
|
3502
|
+
upc: string | undefined;
|
|
3503
|
+
asin: string | undefined;
|
|
3504
|
+
epid: string | undefined;
|
|
3505
|
+
priceChartingId: string | undefined;
|
|
3506
|
+
prisjaktId: string | undefined;
|
|
3507
|
+
lowestShopOffer: {
|
|
3508
|
+
shop: {
|
|
3509
|
+
/** @example cardlevels */
|
|
3510
|
+
technicalName: string;
|
|
3511
|
+
/** @example Cardlevels */
|
|
3512
|
+
name: string;
|
|
3513
|
+
};
|
|
3514
|
+
url: string;
|
|
3515
|
+
/** @example 149.5 */
|
|
3516
|
+
price: number;
|
|
3517
|
+
/**
|
|
3518
|
+
* @description ISO-4217 currency code
|
|
3519
|
+
* @example SEK
|
|
3520
|
+
*/
|
|
3521
|
+
currency: string;
|
|
3522
|
+
inStock: boolean;
|
|
3523
|
+
inPreorder: boolean;
|
|
3524
|
+
inMonitor: boolean;
|
|
3525
|
+
isFullyBooked: boolean;
|
|
3526
|
+
/**
|
|
3527
|
+
* Format: date-time
|
|
3528
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
3529
|
+
*/
|
|
3530
|
+
matchedAt: string;
|
|
3531
|
+
/**
|
|
3532
|
+
* Format: date-time
|
|
3533
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
3534
|
+
*/
|
|
3535
|
+
updatedAt: string;
|
|
3536
|
+
bargain: {
|
|
3537
|
+
discountPercent: number;
|
|
3538
|
+
/** @enum {string} */
|
|
3539
|
+
referenceSource: "retail" | "tradera" | "cardmarket";
|
|
3540
|
+
} | undefined;
|
|
3541
|
+
} | undefined;
|
|
3542
|
+
referencePriceSnapshotsByProvider: {
|
|
3543
|
+
[key: string]: {
|
|
3544
|
+
/** @enum {string} */
|
|
3545
|
+
provider: "cardmarket" | "tcgplayer" | "ebay" | "tradera";
|
|
3546
|
+
/** @example 149.5 */
|
|
3547
|
+
price: number;
|
|
3548
|
+
/**
|
|
3549
|
+
* @description ISO-4217 currency code
|
|
3550
|
+
* @example SEK
|
|
3551
|
+
*/
|
|
3552
|
+
currency: string;
|
|
3553
|
+
/**
|
|
3554
|
+
* @description price converted to SEK at the rate stored on the row
|
|
3555
|
+
* @example 149.5
|
|
3556
|
+
*/
|
|
3557
|
+
priceSek: number;
|
|
3558
|
+
/**
|
|
3559
|
+
* Format: date-time
|
|
3560
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
3561
|
+
*/
|
|
3562
|
+
snapshotDate: string;
|
|
3563
|
+
};
|
|
3564
|
+
};
|
|
3565
|
+
};
|
|
2810
3566
|
/** A card or sealed product, discriminated on `kind`. */
|
|
2811
3567
|
type CatalogItem = Card | SealedProduct;
|
|
2812
|
-
type CardVariants =
|
|
3568
|
+
type CardVariants = {
|
|
3569
|
+
normal: boolean;
|
|
3570
|
+
holo: boolean;
|
|
3571
|
+
reverse: boolean;
|
|
3572
|
+
firstEdition: boolean;
|
|
3573
|
+
wPromo: boolean;
|
|
3574
|
+
};
|
|
2813
3575
|
/** The compact item reference used inside flat shop-match rows (`client.shopMatches.list()` /
|
|
2814
3576
|
* `.forShop()`), enough to render a result list, not the full `CatalogItem`. */
|
|
2815
|
-
type MatchedItemRef =
|
|
3577
|
+
type MatchedItemRef = {
|
|
3578
|
+
/**
|
|
3579
|
+
* @description Resource identifier
|
|
3580
|
+
* @example 6a577711abc1ce71383d3e10
|
|
3581
|
+
*/
|
|
3582
|
+
id: string;
|
|
3583
|
+
/** @enum {string} */
|
|
3584
|
+
kind: "card" | "sealed";
|
|
3585
|
+
name: string;
|
|
3586
|
+
shortName: string | undefined;
|
|
3587
|
+
technicalName: string;
|
|
3588
|
+
cardNumber: string | undefined;
|
|
3589
|
+
imageUrl: string | undefined;
|
|
3590
|
+
language: string | undefined;
|
|
3591
|
+
priceChartingId: string | undefined;
|
|
3592
|
+
};
|
|
2816
3593
|
/** One shop listing currently discounted relative to a reference price (retail, Tradera, or
|
|
2817
3594
|
* Cardmarket). Returned by `client.bargains.list()` / `client.bargains.search()`. */
|
|
2818
|
-
type Bargain =
|
|
2819
|
-
|
|
2820
|
-
|
|
3595
|
+
type Bargain = {
|
|
3596
|
+
url: string;
|
|
3597
|
+
/** @example 149.5 */
|
|
3598
|
+
price: number | undefined;
|
|
3599
|
+
/**
|
|
3600
|
+
* @description ISO-4217 currency code
|
|
3601
|
+
* @example SEK
|
|
3602
|
+
*/
|
|
3603
|
+
currency: string | undefined;
|
|
3604
|
+
shop: {
|
|
3605
|
+
/** @example cardlevels */
|
|
3606
|
+
technicalName: string;
|
|
3607
|
+
/** @example Cardlevels */
|
|
3608
|
+
name: string;
|
|
3609
|
+
};
|
|
3610
|
+
inStock: boolean;
|
|
3611
|
+
/**
|
|
3612
|
+
* Format: date-time
|
|
3613
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
3614
|
+
*/
|
|
3615
|
+
matchedAt: string;
|
|
3616
|
+
product: {
|
|
3617
|
+
/**
|
|
3618
|
+
* @description Resource identifier
|
|
3619
|
+
* @example 6a577711abc1ce71383d3e10
|
|
3620
|
+
*/
|
|
3621
|
+
id: string;
|
|
3622
|
+
/** @enum {string} */
|
|
3623
|
+
kind: "sealed" | "card";
|
|
3624
|
+
name: string;
|
|
3625
|
+
technicalName: string;
|
|
3626
|
+
imageUrl: string | undefined;
|
|
3627
|
+
};
|
|
3628
|
+
bargain: {
|
|
3629
|
+
discountPercent: number;
|
|
3630
|
+
/** @enum {string} */
|
|
3631
|
+
referenceSource: "retail" | "tradera" | "cardmarket";
|
|
3632
|
+
};
|
|
3633
|
+
};
|
|
3634
|
+
type BargainProductRef = {
|
|
3635
|
+
/**
|
|
3636
|
+
* @description Resource identifier
|
|
3637
|
+
* @example 6a577711abc1ce71383d3e10
|
|
3638
|
+
*/
|
|
3639
|
+
id: string;
|
|
3640
|
+
/** @enum {string} */
|
|
3641
|
+
kind: "sealed" | "card";
|
|
3642
|
+
name: string;
|
|
3643
|
+
technicalName: string;
|
|
3644
|
+
imageUrl: string | undefined;
|
|
3645
|
+
};
|
|
2821
3646
|
/** A set/expansion, as returned by `client.expansions.list()`. This is the full record. The
|
|
2822
3647
|
* `expansion` field embedded on a card or product is the smaller `ExpansionRef` from
|
|
2823
3648
|
* `types/common.ts`. */
|
|
2824
|
-
type Expansion =
|
|
3649
|
+
type Expansion = {
|
|
3650
|
+
/**
|
|
3651
|
+
* @description Resource identifier
|
|
3652
|
+
* @example 6a577711abc1ce71383d3e10
|
|
3653
|
+
*/
|
|
3654
|
+
id: string;
|
|
3655
|
+
/** @example Mega Evolution 30th Celebration */
|
|
3656
|
+
name: string;
|
|
3657
|
+
/** @example 30th Celebration */
|
|
3658
|
+
shortName: string;
|
|
3659
|
+
/** @example jpn-mega-evolution-30th-celebration */
|
|
3660
|
+
technicalName: string;
|
|
3661
|
+
/**
|
|
3662
|
+
* @description Printing language of the item
|
|
3663
|
+
* @example JPN
|
|
3664
|
+
* @enum {string}
|
|
3665
|
+
*/
|
|
3666
|
+
language: "ENG" | "JPN" | "CHI";
|
|
3667
|
+
/** @example m6a */
|
|
3668
|
+
code: string | undefined;
|
|
3669
|
+
/** @example m6a */
|
|
3670
|
+
cardCode: string | undefined;
|
|
3671
|
+
/** @example Mega Evolution */
|
|
3672
|
+
seriesName: string | undefined;
|
|
3673
|
+
/**
|
|
3674
|
+
* Format: date-time
|
|
3675
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
3676
|
+
*/
|
|
3677
|
+
releaseDate: string | undefined;
|
|
3678
|
+
/**
|
|
3679
|
+
* @description Absolute asset URL, or null when absent
|
|
3680
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
3681
|
+
*/
|
|
3682
|
+
logoUrl: string | undefined;
|
|
3683
|
+
/**
|
|
3684
|
+
* @description Absolute asset URL, or null when absent
|
|
3685
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
3686
|
+
*/
|
|
3687
|
+
symbolUrl: string | undefined;
|
|
3688
|
+
/**
|
|
3689
|
+
* @description Absolute asset URL, or null when absent
|
|
3690
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
3691
|
+
*/
|
|
3692
|
+
imageUrl: string | undefined;
|
|
3693
|
+
year: number | undefined;
|
|
3694
|
+
brand: {
|
|
3695
|
+
/**
|
|
3696
|
+
* @description Resource identifier
|
|
3697
|
+
* @example 6a577711abc1ce71383d3e10
|
|
3698
|
+
*/
|
|
3699
|
+
id: string;
|
|
3700
|
+
/** @example Pokémon */
|
|
3701
|
+
name: string;
|
|
3702
|
+
/** @example pokemon */
|
|
3703
|
+
technicalName: string;
|
|
3704
|
+
/**
|
|
3705
|
+
* Format: date-time
|
|
3706
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
3707
|
+
*/
|
|
3708
|
+
createdAt: string;
|
|
3709
|
+
/**
|
|
3710
|
+
* Format: date-time
|
|
3711
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
3712
|
+
*/
|
|
3713
|
+
updatedAt: string;
|
|
3714
|
+
};
|
|
3715
|
+
alternativeNames: {
|
|
3716
|
+
name: string;
|
|
3717
|
+
shortName: string | undefined;
|
|
3718
|
+
}[];
|
|
3719
|
+
/** @description Sealed products in this expansion */
|
|
3720
|
+
sealedCount: number;
|
|
3721
|
+
/** @description Cards in this expansion */
|
|
3722
|
+
cardCount: number;
|
|
3723
|
+
/** @description Sealed products plus cards */
|
|
3724
|
+
productCount: number;
|
|
3725
|
+
/**
|
|
3726
|
+
* Format: date-time
|
|
3727
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
3728
|
+
*/
|
|
3729
|
+
createdAt: string;
|
|
3730
|
+
/**
|
|
3731
|
+
* Format: date-time
|
|
3732
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
3733
|
+
*/
|
|
3734
|
+
updatedAt: string;
|
|
3735
|
+
};
|
|
2825
3736
|
/** Response of `client.expansions.products()`: everything in one expansion, cards and sealed
|
|
2826
3737
|
* products kept as separate `cards`/`sealed` groups rather than merged into one mixed list. */
|
|
2827
|
-
type ExpansionContents =
|
|
2828
|
-
|
|
2829
|
-
|
|
2830
|
-
|
|
2831
|
-
|
|
2832
|
-
|
|
2833
|
-
|
|
2834
|
-
|
|
2835
|
-
|
|
2836
|
-
|
|
2837
|
-
|
|
2838
|
-
|
|
2839
|
-
|
|
2840
|
-
|
|
2841
|
-
|
|
2842
|
-
|
|
2843
|
-
|
|
2844
|
-
|
|
2845
|
-
|
|
2846
|
-
|
|
2847
|
-
|
|
2848
|
-
|
|
2849
|
-
|
|
2850
|
-
|
|
2851
|
-
|
|
2852
|
-
|
|
2853
|
-
|
|
2854
|
-
|
|
2855
|
-
|
|
2856
|
-
|
|
2857
|
-
|
|
2858
|
-
|
|
2859
|
-
|
|
2860
|
-
|
|
2861
|
-
|
|
2862
|
-
|
|
2863
|
-
|
|
2864
|
-
|
|
2865
|
-
|
|
2866
|
-
|
|
2867
|
-
|
|
2868
|
-
|
|
2869
|
-
|
|
2870
|
-
|
|
2871
|
-
|
|
2872
|
-
/** Pull-rate odds for one expansion's booster packs, as returned by `client.packRates.list()` /
|
|
2873
|
-
* `client.packRates.get()`. */
|
|
2874
|
-
type PackRate = components['schemas']['PackRate'];
|
|
2875
|
-
|
|
2876
|
-
/** Platform-wide overview counts, returned by `client.stats.platform()`. */
|
|
2877
|
-
type PlatformStats = components['schemas']['PlatformStats'];
|
|
2878
|
-
|
|
2879
|
-
/**
|
|
2880
|
-
* Types for the premium tier: endpoints that need a signed-in subscriber's JWT (see
|
|
2881
|
-
* `TcgPriserOptions.authToken`, or the `authToken` field on each premium method's params). Split
|
|
2882
|
-
* out from the public-tier types because none of these mean anything without a token: without one,
|
|
2883
|
-
* the API just answers `403 premiumRequired`.
|
|
2884
|
-
*
|
|
2885
|
-
* Derived from `src/generated/openapi.d.ts`, same as everything else in this directory.
|
|
2886
|
-
*/
|
|
2887
|
-
|
|
2888
|
-
type ReferencePriceSeries = components['schemas']['ItemReferencePrices']['series'][number];
|
|
2889
|
-
type ReferencePriceSeriesPoint = ReferencePriceSeries['points'][number];
|
|
2890
|
-
type ReferencePriceSource = ReferencePriceSeries['source'];
|
|
2891
|
-
type ReferencePriceCardVariant = NonNullable<ReferencePriceSeries['variant']>;
|
|
2892
|
-
type ReferencePriceMetric = components['schemas']['ItemReferencePrices']['metric'];
|
|
2893
|
-
type ReferencePriceCurrencyMode = components['schemas']['ItemReferencePrices']['currencyMode'];
|
|
2894
|
-
/** Response of `client.cards.referencePrices()` / `client.products.referencePrices()`.
|
|
2895
|
-
*
|
|
2896
|
-
* Non-graded card prices come from TCGdex and are variant-aware (normal / holo / reverse). Graded
|
|
2897
|
-
* prices and eBay medians come from cmapi. Tradera is tcgpriser's own data: realised Swedish
|
|
2898
|
-
* auction sales rather than asking prices, always SEK, no variant. In native mode each series
|
|
2899
|
-
* keeps its own `currency`; in `sek` mode everything is `SEK`, converted at the rate stored on
|
|
2900
|
-
* each point. */
|
|
2901
|
-
type ItemReferencePrices = components['schemas']['ItemReferencePrices'];
|
|
2902
|
-
type SoldPrice = components['schemas']['ItemSoldPrices']['data'][number];
|
|
2903
|
-
/** Response of `client.cards.prices()` / `client.products.prices()`. `premiumRequired` is always
|
|
2904
|
-
* `true` here. That field only exists because this envelope shape is shared with a free preview
|
|
2905
|
-
* elsewhere in the API; this response is never the preview. */
|
|
2906
|
-
type ItemSoldPrices = components['schemas']['ItemSoldPrices'];
|
|
2907
|
-
type LivePricingDetail = components['schemas']['LivePricingForItem']['pricing'];
|
|
2908
|
-
/** Response of `client.cards.livePricing()` / `client.products.livePricing()`. */
|
|
2909
|
-
type LivePricingForItem = components['schemas']['LivePricingForItem'];
|
|
2910
|
-
/** Response of `client.expansions.livePricing()`: live pricing for every item in one expansion. */
|
|
2911
|
-
type ExpansionLivePricing = components['schemas']['ExpansionLivePricing'];
|
|
2912
|
-
/** The catalog item as embedded in stats responses: a `Card`/`SealedProduct` minus
|
|
2913
|
-
* `lowestShopOffer` and `referencePriceSnapshotsByProvider`, which these endpoints already answer
|
|
2914
|
-
* more precisely on their own. */
|
|
2915
|
-
type StatsItemRef = components['schemas']['ItemStats']['item'];
|
|
2916
|
-
type VariantStatsSummary = components['schemas']['ItemStats']['variantStats'];
|
|
2917
|
-
/** Response of `client.priceStats.product()`. */
|
|
2918
|
-
type ItemStats = components['schemas']['ItemStats'];
|
|
2919
|
-
/** Response of `client.priceStats.productFull()`: everything `product()` has, plus the item's
|
|
2920
|
-
* current shop matches. */
|
|
2921
|
-
type ItemFullStats = components['schemas']['ItemFullStats'];
|
|
2922
|
-
type VariantPriceStat = components['schemas']['ItemVariantStats']['variants']['loose'][string];
|
|
2923
|
-
/** Response of `client.priceStats.productByVariant()`. The generated shape keys `loose`/`graded`
|
|
2924
|
-
* by a bare `string` (JSON Schema `additionalProperties` doesn't carry an enum), re-keyed here by
|
|
2925
|
-
* `ItemCondition`/`GradingCompany` for real autocomplete. Only hand-written wrapper in this file.
|
|
2926
|
-
* `graded` has a second string-keyed level for grade (`10`, `9.5` etc, straight from a JSON key). */
|
|
2927
|
-
interface ItemVariantStats {
|
|
2928
|
-
item: components['schemas']['ItemVariantStats']['item'];
|
|
2929
|
-
variants: {
|
|
2930
|
-
loose: Partial<Record<ItemCondition, VariantPriceStat>>;
|
|
2931
|
-
graded: Partial<Record<GradingCompany, Record<string, VariantPriceStat>>>;
|
|
3738
|
+
type ExpansionContents = {
|
|
3739
|
+
expansion: {
|
|
3740
|
+
/**
|
|
3741
|
+
* @description Resource identifier
|
|
3742
|
+
* @example 6a577711abc1ce71383d3e10
|
|
3743
|
+
*/
|
|
3744
|
+
id: string;
|
|
3745
|
+
/** @example Mega Evolution 30th Celebration */
|
|
3746
|
+
name: string;
|
|
3747
|
+
/** @example 30th Celebration */
|
|
3748
|
+
shortName: string;
|
|
3749
|
+
/** @example jpn-mega-evolution-30th-celebration */
|
|
3750
|
+
technicalName: string;
|
|
3751
|
+
/**
|
|
3752
|
+
* @description Printing language of the item
|
|
3753
|
+
* @example JPN
|
|
3754
|
+
* @enum {string}
|
|
3755
|
+
*/
|
|
3756
|
+
language: "ENG" | "JPN" | "CHI";
|
|
3757
|
+
/** @example m6a */
|
|
3758
|
+
code: string | undefined;
|
|
3759
|
+
/** @example m6a */
|
|
3760
|
+
cardCode: string | undefined;
|
|
3761
|
+
/** @example Mega Evolution */
|
|
3762
|
+
seriesName: string | undefined;
|
|
3763
|
+
/**
|
|
3764
|
+
* Format: date-time
|
|
3765
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
3766
|
+
*/
|
|
3767
|
+
releaseDate: string | undefined;
|
|
3768
|
+
/**
|
|
3769
|
+
* @description Absolute asset URL, or null when absent
|
|
3770
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
3771
|
+
*/
|
|
3772
|
+
logoUrl: string | undefined;
|
|
3773
|
+
/**
|
|
3774
|
+
* @description Absolute asset URL, or null when absent
|
|
3775
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
3776
|
+
*/
|
|
3777
|
+
symbolUrl: string | undefined;
|
|
3778
|
+
/**
|
|
3779
|
+
* @description Absolute asset URL, or null when absent
|
|
3780
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
3781
|
+
*/
|
|
3782
|
+
imageUrl: string | undefined;
|
|
2932
3783
|
};
|
|
2933
|
-
|
|
2934
|
-
|
|
2935
|
-
|
|
2936
|
-
|
|
2937
|
-
|
|
2938
|
-
|
|
2939
|
-
|
|
2940
|
-
|
|
2941
|
-
|
|
2942
|
-
|
|
2943
|
-
|
|
2944
|
-
|
|
2945
|
-
|
|
2946
|
-
|
|
2947
|
-
|
|
2948
|
-
|
|
2949
|
-
|
|
2950
|
-
|
|
2951
|
-
|
|
2952
|
-
|
|
2953
|
-
|
|
2954
|
-
|
|
2955
|
-
|
|
3784
|
+
cards: {
|
|
3785
|
+
count: number;
|
|
3786
|
+
items: {
|
|
3787
|
+
/**
|
|
3788
|
+
* @description Resource identifier
|
|
3789
|
+
* @example 6a577711abc1ce71383d3e10
|
|
3790
|
+
*/
|
|
3791
|
+
id: string;
|
|
3792
|
+
name: string;
|
|
3793
|
+
shortName: string | undefined;
|
|
3794
|
+
technicalName: string;
|
|
3795
|
+
brand: {
|
|
3796
|
+
/**
|
|
3797
|
+
* @description Resource identifier
|
|
3798
|
+
* @example 6a577711abc1ce71383d3e10
|
|
3799
|
+
*/
|
|
3800
|
+
id: string;
|
|
3801
|
+
/** @example Pokémon */
|
|
3802
|
+
name: string;
|
|
3803
|
+
/** @example pokemon */
|
|
3804
|
+
technicalName: string;
|
|
3805
|
+
/**
|
|
3806
|
+
* Format: date-time
|
|
3807
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
3808
|
+
*/
|
|
3809
|
+
createdAt: string;
|
|
3810
|
+
/**
|
|
3811
|
+
* Format: date-time
|
|
3812
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
3813
|
+
*/
|
|
3814
|
+
updatedAt: string;
|
|
3815
|
+
};
|
|
3816
|
+
manufacturer: string;
|
|
3817
|
+
modelNumber: string | undefined;
|
|
3818
|
+
category: {
|
|
3819
|
+
/**
|
|
3820
|
+
* @description Resource identifier
|
|
3821
|
+
* @example 6a577711abc1ce71383d3e10
|
|
3822
|
+
*/
|
|
3823
|
+
id: string;
|
|
3824
|
+
/** @example Booster Box */
|
|
3825
|
+
name: string;
|
|
3826
|
+
/** @example booster-box */
|
|
3827
|
+
technicalName: string;
|
|
3828
|
+
} | undefined;
|
|
3829
|
+
expansion: {
|
|
3830
|
+
/**
|
|
3831
|
+
* @description Resource identifier
|
|
3832
|
+
* @example 6a577711abc1ce71383d3e10
|
|
3833
|
+
*/
|
|
3834
|
+
id: string;
|
|
3835
|
+
/** @example Mega Evolution 30th Celebration */
|
|
3836
|
+
name: string;
|
|
3837
|
+
/** @example 30th Celebration */
|
|
3838
|
+
shortName: string;
|
|
3839
|
+
/** @example jpn-mega-evolution-30th-celebration */
|
|
3840
|
+
technicalName: string;
|
|
3841
|
+
/**
|
|
3842
|
+
* @description Printing language of the item
|
|
3843
|
+
* @example JPN
|
|
3844
|
+
* @enum {string}
|
|
3845
|
+
*/
|
|
3846
|
+
language: "ENG" | "JPN" | "CHI";
|
|
3847
|
+
/** @example m6a */
|
|
3848
|
+
code: string | undefined;
|
|
3849
|
+
/** @example m6a */
|
|
3850
|
+
cardCode: string | undefined;
|
|
3851
|
+
/** @example Mega Evolution */
|
|
3852
|
+
seriesName: string | undefined;
|
|
3853
|
+
/**
|
|
3854
|
+
* Format: date-time
|
|
3855
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
3856
|
+
*/
|
|
3857
|
+
releaseDate: string | undefined;
|
|
3858
|
+
/**
|
|
3859
|
+
* @description Absolute asset URL, or null when absent
|
|
3860
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
3861
|
+
*/
|
|
3862
|
+
logoUrl: string | undefined;
|
|
3863
|
+
/**
|
|
3864
|
+
* @description Absolute asset URL, or null when absent
|
|
3865
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
3866
|
+
*/
|
|
3867
|
+
symbolUrl: string | undefined;
|
|
3868
|
+
/**
|
|
3869
|
+
* @description Absolute asset URL, or null when absent
|
|
3870
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
3871
|
+
*/
|
|
3872
|
+
imageUrl: string | undefined;
|
|
3873
|
+
} | undefined;
|
|
3874
|
+
/**
|
|
3875
|
+
* @description Printing language of the item
|
|
3876
|
+
* @example JPN
|
|
3877
|
+
* @enum {string|null}
|
|
3878
|
+
*/
|
|
3879
|
+
language: "ENG" | "JPN" | "CHI" | undefined;
|
|
3880
|
+
alternativeNames: {
|
|
3881
|
+
name: string;
|
|
3882
|
+
shortName: string | undefined;
|
|
3883
|
+
}[];
|
|
3884
|
+
supportsMultipackPricing: boolean;
|
|
3885
|
+
/**
|
|
3886
|
+
* @description Absolute asset URL, or null when absent
|
|
3887
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
3888
|
+
*/
|
|
3889
|
+
imageUrl: string | undefined;
|
|
3890
|
+
/**
|
|
3891
|
+
* @description Cheapest current shop price, in SEK
|
|
3892
|
+
* @example 149.5
|
|
3893
|
+
*/
|
|
3894
|
+
retailPrice: number | undefined;
|
|
3895
|
+
/**
|
|
3896
|
+
* @description Estimated market value, in SEK
|
|
3897
|
+
* @example 149.5
|
|
3898
|
+
*/
|
|
3899
|
+
estimatedValue: number | undefined;
|
|
3900
|
+
/** @description Active shops currently tracking this item */
|
|
3901
|
+
shopCount: number;
|
|
3902
|
+
/** @description Observations the estimate rests on */
|
|
3903
|
+
pricingDataPoints: number;
|
|
3904
|
+
/**
|
|
3905
|
+
* Format: date-time
|
|
3906
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
3907
|
+
*/
|
|
3908
|
+
pricingUpdatedAt: string | undefined;
|
|
3909
|
+
/**
|
|
3910
|
+
* Format: date-time
|
|
3911
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
3912
|
+
*/
|
|
3913
|
+
createdAt: string;
|
|
3914
|
+
/**
|
|
3915
|
+
* Format: date-time
|
|
3916
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
3917
|
+
*/
|
|
3918
|
+
updatedAt: string;
|
|
3919
|
+
/** @enum {string} */
|
|
3920
|
+
kind: "card";
|
|
3921
|
+
/** @example 4/102 */
|
|
3922
|
+
cardNumber: string;
|
|
3923
|
+
/** @example Rare Holo */
|
|
3924
|
+
rarity: string | undefined;
|
|
3925
|
+
artist: string | undefined;
|
|
3926
|
+
cardmarketId: string | undefined;
|
|
3927
|
+
tcgplayerId: string | undefined;
|
|
3928
|
+
variants: {
|
|
3929
|
+
normal: boolean;
|
|
3930
|
+
holo: boolean;
|
|
3931
|
+
reverse: boolean;
|
|
3932
|
+
firstEdition: boolean;
|
|
3933
|
+
wPromo: boolean;
|
|
3934
|
+
} | undefined;
|
|
3935
|
+
prisjaktId: string | undefined;
|
|
3936
|
+
lowestShopOffer: {
|
|
3937
|
+
shop: {
|
|
3938
|
+
/** @example cardlevels */
|
|
3939
|
+
technicalName: string;
|
|
3940
|
+
/** @example Cardlevels */
|
|
3941
|
+
name: string;
|
|
3942
|
+
};
|
|
3943
|
+
url: string;
|
|
3944
|
+
/** @example 149.5 */
|
|
3945
|
+
price: number;
|
|
3946
|
+
/**
|
|
3947
|
+
* @description ISO-4217 currency code
|
|
3948
|
+
* @example SEK
|
|
3949
|
+
*/
|
|
3950
|
+
currency: string;
|
|
3951
|
+
inStock: boolean;
|
|
3952
|
+
inPreorder: boolean;
|
|
3953
|
+
inMonitor: boolean;
|
|
3954
|
+
isFullyBooked: boolean;
|
|
3955
|
+
/**
|
|
3956
|
+
* Format: date-time
|
|
3957
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
3958
|
+
*/
|
|
3959
|
+
matchedAt: string;
|
|
3960
|
+
/**
|
|
3961
|
+
* Format: date-time
|
|
3962
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
3963
|
+
*/
|
|
3964
|
+
updatedAt: string;
|
|
3965
|
+
bargain: {
|
|
3966
|
+
discountPercent: number;
|
|
3967
|
+
/** @enum {string} */
|
|
3968
|
+
referenceSource: "retail" | "tradera" | "cardmarket";
|
|
3969
|
+
} | undefined;
|
|
3970
|
+
} | undefined;
|
|
3971
|
+
referencePriceSnapshotsByProvider: {
|
|
3972
|
+
[key: string]: {
|
|
3973
|
+
/** @enum {string} */
|
|
3974
|
+
provider: "cardmarket" | "tcgplayer" | "ebay" | "tradera";
|
|
3975
|
+
/** @example 149.5 */
|
|
3976
|
+
price: number;
|
|
3977
|
+
/**
|
|
3978
|
+
* @description ISO-4217 currency code
|
|
3979
|
+
* @example SEK
|
|
3980
|
+
*/
|
|
3981
|
+
currency: string;
|
|
3982
|
+
/**
|
|
3983
|
+
* @description price converted to SEK at the rate stored on the row
|
|
3984
|
+
* @example 149.5
|
|
3985
|
+
*/
|
|
3986
|
+
priceSek: number;
|
|
3987
|
+
/**
|
|
3988
|
+
* Format: date-time
|
|
3989
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
3990
|
+
*/
|
|
3991
|
+
snapshotDate: string;
|
|
3992
|
+
};
|
|
3993
|
+
};
|
|
3994
|
+
}[];
|
|
3995
|
+
};
|
|
3996
|
+
sealed: {
|
|
3997
|
+
count: number;
|
|
3998
|
+
items: {
|
|
3999
|
+
/**
|
|
4000
|
+
* @description Resource identifier
|
|
4001
|
+
* @example 6a577711abc1ce71383d3e10
|
|
4002
|
+
*/
|
|
4003
|
+
id: string;
|
|
4004
|
+
name: string;
|
|
4005
|
+
shortName: string | undefined;
|
|
4006
|
+
technicalName: string;
|
|
4007
|
+
brand: {
|
|
4008
|
+
/**
|
|
4009
|
+
* @description Resource identifier
|
|
4010
|
+
* @example 6a577711abc1ce71383d3e10
|
|
4011
|
+
*/
|
|
4012
|
+
id: string;
|
|
4013
|
+
/** @example Pokémon */
|
|
4014
|
+
name: string;
|
|
4015
|
+
/** @example pokemon */
|
|
4016
|
+
technicalName: string;
|
|
4017
|
+
/**
|
|
4018
|
+
* Format: date-time
|
|
4019
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
4020
|
+
*/
|
|
4021
|
+
createdAt: string;
|
|
4022
|
+
/**
|
|
4023
|
+
* Format: date-time
|
|
4024
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
4025
|
+
*/
|
|
4026
|
+
updatedAt: string;
|
|
4027
|
+
};
|
|
4028
|
+
manufacturer: string;
|
|
4029
|
+
modelNumber: string | undefined;
|
|
4030
|
+
category: {
|
|
4031
|
+
/**
|
|
4032
|
+
* @description Resource identifier
|
|
4033
|
+
* @example 6a577711abc1ce71383d3e10
|
|
4034
|
+
*/
|
|
4035
|
+
id: string;
|
|
4036
|
+
/** @example Booster Box */
|
|
4037
|
+
name: string;
|
|
4038
|
+
/** @example booster-box */
|
|
4039
|
+
technicalName: string;
|
|
4040
|
+
} | undefined;
|
|
4041
|
+
expansion: {
|
|
4042
|
+
/**
|
|
4043
|
+
* @description Resource identifier
|
|
4044
|
+
* @example 6a577711abc1ce71383d3e10
|
|
4045
|
+
*/
|
|
4046
|
+
id: string;
|
|
4047
|
+
/** @example Mega Evolution 30th Celebration */
|
|
4048
|
+
name: string;
|
|
4049
|
+
/** @example 30th Celebration */
|
|
4050
|
+
shortName: string;
|
|
4051
|
+
/** @example jpn-mega-evolution-30th-celebration */
|
|
4052
|
+
technicalName: string;
|
|
4053
|
+
/**
|
|
4054
|
+
* @description Printing language of the item
|
|
4055
|
+
* @example JPN
|
|
4056
|
+
* @enum {string}
|
|
4057
|
+
*/
|
|
4058
|
+
language: "ENG" | "JPN" | "CHI";
|
|
4059
|
+
/** @example m6a */
|
|
4060
|
+
code: string | undefined;
|
|
4061
|
+
/** @example m6a */
|
|
4062
|
+
cardCode: string | undefined;
|
|
4063
|
+
/** @example Mega Evolution */
|
|
4064
|
+
seriesName: string | undefined;
|
|
4065
|
+
/**
|
|
4066
|
+
* Format: date-time
|
|
4067
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
4068
|
+
*/
|
|
4069
|
+
releaseDate: string | undefined;
|
|
4070
|
+
/**
|
|
4071
|
+
* @description Absolute asset URL, or null when absent
|
|
4072
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
4073
|
+
*/
|
|
4074
|
+
logoUrl: string | undefined;
|
|
4075
|
+
/**
|
|
4076
|
+
* @description Absolute asset URL, or null when absent
|
|
4077
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
4078
|
+
*/
|
|
4079
|
+
symbolUrl: string | undefined;
|
|
4080
|
+
/**
|
|
4081
|
+
* @description Absolute asset URL, or null when absent
|
|
4082
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
4083
|
+
*/
|
|
4084
|
+
imageUrl: string | undefined;
|
|
4085
|
+
} | undefined;
|
|
4086
|
+
/**
|
|
4087
|
+
* @description Printing language of the item
|
|
4088
|
+
* @example JPN
|
|
4089
|
+
* @enum {string|null}
|
|
4090
|
+
*/
|
|
4091
|
+
language: "ENG" | "JPN" | "CHI" | undefined;
|
|
4092
|
+
alternativeNames: {
|
|
4093
|
+
name: string;
|
|
4094
|
+
shortName: string | undefined;
|
|
4095
|
+
}[];
|
|
4096
|
+
supportsMultipackPricing: boolean;
|
|
4097
|
+
/**
|
|
4098
|
+
* @description Absolute asset URL, or null when absent
|
|
4099
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
4100
|
+
*/
|
|
4101
|
+
imageUrl: string | undefined;
|
|
4102
|
+
/**
|
|
4103
|
+
* @description Cheapest current shop price, in SEK
|
|
4104
|
+
* @example 149.5
|
|
4105
|
+
*/
|
|
4106
|
+
retailPrice: number | undefined;
|
|
4107
|
+
/**
|
|
4108
|
+
* @description Estimated market value, in SEK
|
|
4109
|
+
* @example 149.5
|
|
4110
|
+
*/
|
|
4111
|
+
estimatedValue: number | undefined;
|
|
4112
|
+
/** @description Active shops currently tracking this item */
|
|
4113
|
+
shopCount: number;
|
|
4114
|
+
/** @description Observations the estimate rests on */
|
|
4115
|
+
pricingDataPoints: number;
|
|
4116
|
+
/**
|
|
4117
|
+
* Format: date-time
|
|
4118
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
4119
|
+
*/
|
|
4120
|
+
pricingUpdatedAt: string | undefined;
|
|
4121
|
+
/**
|
|
4122
|
+
* Format: date-time
|
|
4123
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
4124
|
+
*/
|
|
4125
|
+
createdAt: string;
|
|
4126
|
+
/**
|
|
4127
|
+
* Format: date-time
|
|
4128
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
4129
|
+
*/
|
|
4130
|
+
updatedAt: string;
|
|
4131
|
+
/** @enum {string} */
|
|
4132
|
+
kind: "sealed";
|
|
4133
|
+
upc: string | undefined;
|
|
4134
|
+
asin: string | undefined;
|
|
4135
|
+
epid: string | undefined;
|
|
4136
|
+
priceChartingId: string | undefined;
|
|
4137
|
+
prisjaktId: string | undefined;
|
|
4138
|
+
lowestShopOffer: {
|
|
4139
|
+
shop: {
|
|
4140
|
+
/** @example cardlevels */
|
|
4141
|
+
technicalName: string;
|
|
4142
|
+
/** @example Cardlevels */
|
|
4143
|
+
name: string;
|
|
4144
|
+
};
|
|
4145
|
+
url: string;
|
|
4146
|
+
/** @example 149.5 */
|
|
4147
|
+
price: number;
|
|
4148
|
+
/**
|
|
4149
|
+
* @description ISO-4217 currency code
|
|
4150
|
+
* @example SEK
|
|
4151
|
+
*/
|
|
4152
|
+
currency: string;
|
|
4153
|
+
inStock: boolean;
|
|
4154
|
+
inPreorder: boolean;
|
|
4155
|
+
inMonitor: boolean;
|
|
4156
|
+
isFullyBooked: boolean;
|
|
4157
|
+
/**
|
|
4158
|
+
* Format: date-time
|
|
4159
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
4160
|
+
*/
|
|
4161
|
+
matchedAt: string;
|
|
4162
|
+
/**
|
|
4163
|
+
* Format: date-time
|
|
4164
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
4165
|
+
*/
|
|
4166
|
+
updatedAt: string;
|
|
4167
|
+
bargain: {
|
|
4168
|
+
discountPercent: number;
|
|
4169
|
+
/** @enum {string} */
|
|
4170
|
+
referenceSource: "retail" | "tradera" | "cardmarket";
|
|
4171
|
+
} | undefined;
|
|
4172
|
+
} | undefined;
|
|
4173
|
+
referencePriceSnapshotsByProvider: {
|
|
4174
|
+
[key: string]: {
|
|
4175
|
+
/** @enum {string} */
|
|
4176
|
+
provider: "cardmarket" | "tcgplayer" | "ebay" | "tradera";
|
|
4177
|
+
/** @example 149.5 */
|
|
4178
|
+
price: number;
|
|
4179
|
+
/**
|
|
4180
|
+
* @description ISO-4217 currency code
|
|
4181
|
+
* @example SEK
|
|
4182
|
+
*/
|
|
4183
|
+
currency: string;
|
|
4184
|
+
/**
|
|
4185
|
+
* @description price converted to SEK at the rate stored on the row
|
|
4186
|
+
* @example 149.5
|
|
4187
|
+
*/
|
|
4188
|
+
priceSek: number;
|
|
4189
|
+
/**
|
|
4190
|
+
* Format: date-time
|
|
4191
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
4192
|
+
*/
|
|
4193
|
+
snapshotDate: string;
|
|
4194
|
+
};
|
|
4195
|
+
};
|
|
4196
|
+
}[];
|
|
4197
|
+
};
|
|
4198
|
+
};
|
|
4199
|
+
/** One card as embedded in `client.expansions.products()`'s `cards` group. The API inlines this
|
|
4200
|
+
* rather than `$ref`-ing `CardWithPricing`, so it's a separately-named (if structurally identical)
|
|
4201
|
+
* shape rather than literally `Card`. */
|
|
4202
|
+
type ExpansionCard = {
|
|
4203
|
+
/**
|
|
4204
|
+
* @description Resource identifier
|
|
4205
|
+
* @example 6a577711abc1ce71383d3e10
|
|
4206
|
+
*/
|
|
4207
|
+
id: string;
|
|
4208
|
+
name: string;
|
|
4209
|
+
shortName: string | undefined;
|
|
4210
|
+
technicalName: string;
|
|
4211
|
+
brand: {
|
|
4212
|
+
/**
|
|
4213
|
+
* @description Resource identifier
|
|
4214
|
+
* @example 6a577711abc1ce71383d3e10
|
|
4215
|
+
*/
|
|
4216
|
+
id: string;
|
|
4217
|
+
/** @example Pokémon */
|
|
4218
|
+
name: string;
|
|
4219
|
+
/** @example pokemon */
|
|
4220
|
+
technicalName: string;
|
|
4221
|
+
/**
|
|
4222
|
+
* Format: date-time
|
|
4223
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
4224
|
+
*/
|
|
4225
|
+
createdAt: string;
|
|
4226
|
+
/**
|
|
4227
|
+
* Format: date-time
|
|
4228
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
4229
|
+
*/
|
|
4230
|
+
updatedAt: string;
|
|
4231
|
+
};
|
|
4232
|
+
manufacturer: string;
|
|
4233
|
+
modelNumber: string | undefined;
|
|
4234
|
+
category: {
|
|
4235
|
+
/**
|
|
4236
|
+
* @description Resource identifier
|
|
4237
|
+
* @example 6a577711abc1ce71383d3e10
|
|
4238
|
+
*/
|
|
4239
|
+
id: string;
|
|
4240
|
+
/** @example Booster Box */
|
|
4241
|
+
name: string;
|
|
4242
|
+
/** @example booster-box */
|
|
4243
|
+
technicalName: string;
|
|
4244
|
+
} | undefined;
|
|
4245
|
+
expansion: {
|
|
4246
|
+
/**
|
|
4247
|
+
* @description Resource identifier
|
|
4248
|
+
* @example 6a577711abc1ce71383d3e10
|
|
4249
|
+
*/
|
|
4250
|
+
id: string;
|
|
4251
|
+
/** @example Mega Evolution 30th Celebration */
|
|
4252
|
+
name: string;
|
|
4253
|
+
/** @example 30th Celebration */
|
|
4254
|
+
shortName: string;
|
|
4255
|
+
/** @example jpn-mega-evolution-30th-celebration */
|
|
4256
|
+
technicalName: string;
|
|
4257
|
+
/**
|
|
4258
|
+
* @description Printing language of the item
|
|
4259
|
+
* @example JPN
|
|
4260
|
+
* @enum {string}
|
|
4261
|
+
*/
|
|
4262
|
+
language: "ENG" | "JPN" | "CHI";
|
|
4263
|
+
/** @example m6a */
|
|
4264
|
+
code: string | undefined;
|
|
4265
|
+
/** @example m6a */
|
|
4266
|
+
cardCode: string | undefined;
|
|
4267
|
+
/** @example Mega Evolution */
|
|
4268
|
+
seriesName: string | undefined;
|
|
4269
|
+
/**
|
|
4270
|
+
* Format: date-time
|
|
4271
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
4272
|
+
*/
|
|
4273
|
+
releaseDate: string | undefined;
|
|
4274
|
+
/**
|
|
4275
|
+
* @description Absolute asset URL, or null when absent
|
|
4276
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
4277
|
+
*/
|
|
4278
|
+
logoUrl: string | undefined;
|
|
4279
|
+
/**
|
|
4280
|
+
* @description Absolute asset URL, or null when absent
|
|
4281
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
4282
|
+
*/
|
|
4283
|
+
symbolUrl: string | undefined;
|
|
4284
|
+
/**
|
|
4285
|
+
* @description Absolute asset URL, or null when absent
|
|
4286
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
4287
|
+
*/
|
|
4288
|
+
imageUrl: string | undefined;
|
|
4289
|
+
} | undefined;
|
|
4290
|
+
/**
|
|
4291
|
+
* @description Printing language of the item
|
|
4292
|
+
* @example JPN
|
|
4293
|
+
* @enum {string|null}
|
|
4294
|
+
*/
|
|
4295
|
+
language: "ENG" | "JPN" | "CHI" | undefined;
|
|
4296
|
+
alternativeNames: {
|
|
4297
|
+
name: string;
|
|
4298
|
+
shortName: string | undefined;
|
|
4299
|
+
}[];
|
|
4300
|
+
supportsMultipackPricing: boolean;
|
|
4301
|
+
/**
|
|
4302
|
+
* @description Absolute asset URL, or null when absent
|
|
4303
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
4304
|
+
*/
|
|
4305
|
+
imageUrl: string | undefined;
|
|
4306
|
+
/**
|
|
4307
|
+
* @description Cheapest current shop price, in SEK
|
|
4308
|
+
* @example 149.5
|
|
4309
|
+
*/
|
|
4310
|
+
retailPrice: number | undefined;
|
|
4311
|
+
/**
|
|
4312
|
+
* @description Estimated market value, in SEK
|
|
4313
|
+
* @example 149.5
|
|
4314
|
+
*/
|
|
4315
|
+
estimatedValue: number | undefined;
|
|
4316
|
+
/** @description Active shops currently tracking this item */
|
|
4317
|
+
shopCount: number;
|
|
4318
|
+
/** @description Observations the estimate rests on */
|
|
4319
|
+
pricingDataPoints: number;
|
|
4320
|
+
/**
|
|
4321
|
+
* Format: date-time
|
|
4322
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
4323
|
+
*/
|
|
4324
|
+
pricingUpdatedAt: string | undefined;
|
|
4325
|
+
/**
|
|
4326
|
+
* Format: date-time
|
|
4327
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
4328
|
+
*/
|
|
4329
|
+
createdAt: string;
|
|
4330
|
+
/**
|
|
4331
|
+
* Format: date-time
|
|
4332
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
4333
|
+
*/
|
|
4334
|
+
updatedAt: string;
|
|
4335
|
+
/** @enum {string} */
|
|
4336
|
+
kind: "card";
|
|
4337
|
+
/** @example 4/102 */
|
|
4338
|
+
cardNumber: string;
|
|
4339
|
+
/** @example Rare Holo */
|
|
4340
|
+
rarity: string | undefined;
|
|
4341
|
+
artist: string | undefined;
|
|
4342
|
+
cardmarketId: string | undefined;
|
|
4343
|
+
tcgplayerId: string | undefined;
|
|
4344
|
+
variants: {
|
|
4345
|
+
normal: boolean;
|
|
4346
|
+
holo: boolean;
|
|
4347
|
+
reverse: boolean;
|
|
4348
|
+
firstEdition: boolean;
|
|
4349
|
+
wPromo: boolean;
|
|
4350
|
+
} | undefined;
|
|
4351
|
+
prisjaktId: string | undefined;
|
|
4352
|
+
lowestShopOffer: {
|
|
4353
|
+
shop: {
|
|
4354
|
+
/** @example cardlevels */
|
|
4355
|
+
technicalName: string;
|
|
4356
|
+
/** @example Cardlevels */
|
|
4357
|
+
name: string;
|
|
4358
|
+
};
|
|
4359
|
+
url: string;
|
|
4360
|
+
/** @example 149.5 */
|
|
4361
|
+
price: number;
|
|
4362
|
+
/**
|
|
4363
|
+
* @description ISO-4217 currency code
|
|
4364
|
+
* @example SEK
|
|
4365
|
+
*/
|
|
4366
|
+
currency: string;
|
|
4367
|
+
inStock: boolean;
|
|
4368
|
+
inPreorder: boolean;
|
|
4369
|
+
inMonitor: boolean;
|
|
4370
|
+
isFullyBooked: boolean;
|
|
4371
|
+
/**
|
|
4372
|
+
* Format: date-time
|
|
4373
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
4374
|
+
*/
|
|
4375
|
+
matchedAt: string;
|
|
4376
|
+
/**
|
|
4377
|
+
* Format: date-time
|
|
4378
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
4379
|
+
*/
|
|
4380
|
+
updatedAt: string;
|
|
4381
|
+
bargain: {
|
|
4382
|
+
discountPercent: number;
|
|
4383
|
+
/** @enum {string} */
|
|
4384
|
+
referenceSource: "retail" | "tradera" | "cardmarket";
|
|
4385
|
+
} | undefined;
|
|
4386
|
+
} | undefined;
|
|
4387
|
+
referencePriceSnapshotsByProvider: {
|
|
4388
|
+
[key: string]: {
|
|
4389
|
+
/** @enum {string} */
|
|
4390
|
+
provider: "cardmarket" | "tcgplayer" | "ebay" | "tradera";
|
|
4391
|
+
/** @example 149.5 */
|
|
4392
|
+
price: number;
|
|
4393
|
+
/**
|
|
4394
|
+
* @description ISO-4217 currency code
|
|
4395
|
+
* @example SEK
|
|
4396
|
+
*/
|
|
4397
|
+
currency: string;
|
|
4398
|
+
/**
|
|
4399
|
+
* @description price converted to SEK at the rate stored on the row
|
|
4400
|
+
* @example 149.5
|
|
4401
|
+
*/
|
|
4402
|
+
priceSek: number;
|
|
4403
|
+
/**
|
|
4404
|
+
* Format: date-time
|
|
4405
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
4406
|
+
*/
|
|
4407
|
+
snapshotDate: string;
|
|
4408
|
+
};
|
|
4409
|
+
};
|
|
4410
|
+
};
|
|
4411
|
+
/** One sealed product as embedded in `client.expansions.products()`'s `sealed` group. Same caveat
|
|
4412
|
+
* as `ExpansionCard`: inlined by the API, not `$ref`-ing `ProductWithPricing`. */
|
|
4413
|
+
type ExpansionSealedProduct = {
|
|
4414
|
+
/**
|
|
4415
|
+
* @description Resource identifier
|
|
4416
|
+
* @example 6a577711abc1ce71383d3e10
|
|
4417
|
+
*/
|
|
4418
|
+
id: string;
|
|
4419
|
+
name: string;
|
|
4420
|
+
shortName: string | undefined;
|
|
4421
|
+
technicalName: string;
|
|
4422
|
+
brand: {
|
|
4423
|
+
/**
|
|
4424
|
+
* @description Resource identifier
|
|
4425
|
+
* @example 6a577711abc1ce71383d3e10
|
|
4426
|
+
*/
|
|
4427
|
+
id: string;
|
|
4428
|
+
/** @example Pokémon */
|
|
4429
|
+
name: string;
|
|
4430
|
+
/** @example pokemon */
|
|
4431
|
+
technicalName: string;
|
|
4432
|
+
/**
|
|
4433
|
+
* Format: date-time
|
|
4434
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
4435
|
+
*/
|
|
4436
|
+
createdAt: string;
|
|
4437
|
+
/**
|
|
4438
|
+
* Format: date-time
|
|
4439
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
4440
|
+
*/
|
|
4441
|
+
updatedAt: string;
|
|
4442
|
+
};
|
|
4443
|
+
manufacturer: string;
|
|
4444
|
+
modelNumber: string | undefined;
|
|
4445
|
+
category: {
|
|
4446
|
+
/**
|
|
4447
|
+
* @description Resource identifier
|
|
4448
|
+
* @example 6a577711abc1ce71383d3e10
|
|
4449
|
+
*/
|
|
4450
|
+
id: string;
|
|
4451
|
+
/** @example Booster Box */
|
|
4452
|
+
name: string;
|
|
4453
|
+
/** @example booster-box */
|
|
4454
|
+
technicalName: string;
|
|
4455
|
+
} | undefined;
|
|
4456
|
+
expansion: {
|
|
4457
|
+
/**
|
|
4458
|
+
* @description Resource identifier
|
|
4459
|
+
* @example 6a577711abc1ce71383d3e10
|
|
4460
|
+
*/
|
|
4461
|
+
id: string;
|
|
4462
|
+
/** @example Mega Evolution 30th Celebration */
|
|
4463
|
+
name: string;
|
|
4464
|
+
/** @example 30th Celebration */
|
|
4465
|
+
shortName: string;
|
|
4466
|
+
/** @example jpn-mega-evolution-30th-celebration */
|
|
4467
|
+
technicalName: string;
|
|
4468
|
+
/**
|
|
4469
|
+
* @description Printing language of the item
|
|
4470
|
+
* @example JPN
|
|
4471
|
+
* @enum {string}
|
|
4472
|
+
*/
|
|
4473
|
+
language: "ENG" | "JPN" | "CHI";
|
|
4474
|
+
/** @example m6a */
|
|
4475
|
+
code: string | undefined;
|
|
4476
|
+
/** @example m6a */
|
|
4477
|
+
cardCode: string | undefined;
|
|
4478
|
+
/** @example Mega Evolution */
|
|
4479
|
+
seriesName: string | undefined;
|
|
4480
|
+
/**
|
|
4481
|
+
* Format: date-time
|
|
4482
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
4483
|
+
*/
|
|
4484
|
+
releaseDate: string | undefined;
|
|
4485
|
+
/**
|
|
4486
|
+
* @description Absolute asset URL, or null when absent
|
|
4487
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
4488
|
+
*/
|
|
4489
|
+
logoUrl: string | undefined;
|
|
4490
|
+
/**
|
|
4491
|
+
* @description Absolute asset URL, or null when absent
|
|
4492
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
4493
|
+
*/
|
|
4494
|
+
symbolUrl: string | undefined;
|
|
4495
|
+
/**
|
|
4496
|
+
* @description Absolute asset URL, or null when absent
|
|
4497
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
4498
|
+
*/
|
|
4499
|
+
imageUrl: string | undefined;
|
|
4500
|
+
} | undefined;
|
|
4501
|
+
/**
|
|
4502
|
+
* @description Printing language of the item
|
|
4503
|
+
* @example JPN
|
|
4504
|
+
* @enum {string|null}
|
|
4505
|
+
*/
|
|
4506
|
+
language: "ENG" | "JPN" | "CHI" | undefined;
|
|
4507
|
+
alternativeNames: {
|
|
4508
|
+
name: string;
|
|
4509
|
+
shortName: string | undefined;
|
|
4510
|
+
}[];
|
|
4511
|
+
supportsMultipackPricing: boolean;
|
|
4512
|
+
/**
|
|
4513
|
+
* @description Absolute asset URL, or null when absent
|
|
4514
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
4515
|
+
*/
|
|
4516
|
+
imageUrl: string | undefined;
|
|
4517
|
+
/**
|
|
4518
|
+
* @description Cheapest current shop price, in SEK
|
|
4519
|
+
* @example 149.5
|
|
4520
|
+
*/
|
|
4521
|
+
retailPrice: number | undefined;
|
|
4522
|
+
/**
|
|
4523
|
+
* @description Estimated market value, in SEK
|
|
4524
|
+
* @example 149.5
|
|
4525
|
+
*/
|
|
4526
|
+
estimatedValue: number | undefined;
|
|
4527
|
+
/** @description Active shops currently tracking this item */
|
|
4528
|
+
shopCount: number;
|
|
4529
|
+
/** @description Observations the estimate rests on */
|
|
4530
|
+
pricingDataPoints: number;
|
|
4531
|
+
/**
|
|
4532
|
+
* Format: date-time
|
|
4533
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
4534
|
+
*/
|
|
4535
|
+
pricingUpdatedAt: string | undefined;
|
|
4536
|
+
/**
|
|
4537
|
+
* Format: date-time
|
|
4538
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
4539
|
+
*/
|
|
4540
|
+
createdAt: string;
|
|
4541
|
+
/**
|
|
4542
|
+
* Format: date-time
|
|
4543
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
4544
|
+
*/
|
|
4545
|
+
updatedAt: string;
|
|
4546
|
+
/** @enum {string} */
|
|
4547
|
+
kind: "sealed";
|
|
4548
|
+
upc: string | undefined;
|
|
4549
|
+
asin: string | undefined;
|
|
4550
|
+
epid: string | undefined;
|
|
4551
|
+
priceChartingId: string | undefined;
|
|
4552
|
+
prisjaktId: string | undefined;
|
|
4553
|
+
lowestShopOffer: {
|
|
4554
|
+
shop: {
|
|
4555
|
+
/** @example cardlevels */
|
|
4556
|
+
technicalName: string;
|
|
4557
|
+
/** @example Cardlevels */
|
|
4558
|
+
name: string;
|
|
4559
|
+
};
|
|
4560
|
+
url: string;
|
|
4561
|
+
/** @example 149.5 */
|
|
4562
|
+
price: number;
|
|
4563
|
+
/**
|
|
4564
|
+
* @description ISO-4217 currency code
|
|
4565
|
+
* @example SEK
|
|
4566
|
+
*/
|
|
4567
|
+
currency: string;
|
|
4568
|
+
inStock: boolean;
|
|
4569
|
+
inPreorder: boolean;
|
|
4570
|
+
inMonitor: boolean;
|
|
4571
|
+
isFullyBooked: boolean;
|
|
4572
|
+
/**
|
|
4573
|
+
* Format: date-time
|
|
4574
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
4575
|
+
*/
|
|
4576
|
+
matchedAt: string;
|
|
4577
|
+
/**
|
|
4578
|
+
* Format: date-time
|
|
4579
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
4580
|
+
*/
|
|
4581
|
+
updatedAt: string;
|
|
4582
|
+
bargain: {
|
|
4583
|
+
discountPercent: number;
|
|
4584
|
+
/** @enum {string} */
|
|
4585
|
+
referenceSource: "retail" | "tradera" | "cardmarket";
|
|
4586
|
+
} | undefined;
|
|
4587
|
+
} | undefined;
|
|
4588
|
+
referencePriceSnapshotsByProvider: {
|
|
4589
|
+
[key: string]: {
|
|
4590
|
+
/** @enum {string} */
|
|
4591
|
+
provider: "cardmarket" | "tcgplayer" | "ebay" | "tradera";
|
|
4592
|
+
/** @example 149.5 */
|
|
4593
|
+
price: number;
|
|
4594
|
+
/**
|
|
4595
|
+
* @description ISO-4217 currency code
|
|
4596
|
+
* @example SEK
|
|
4597
|
+
*/
|
|
4598
|
+
currency: string;
|
|
4599
|
+
/**
|
|
4600
|
+
* @description price converted to SEK at the rate stored on the row
|
|
4601
|
+
* @example 149.5
|
|
4602
|
+
*/
|
|
4603
|
+
priceSek: number;
|
|
4604
|
+
/**
|
|
4605
|
+
* Format: date-time
|
|
4606
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
4607
|
+
*/
|
|
4608
|
+
snapshotDate: string;
|
|
4609
|
+
};
|
|
4610
|
+
};
|
|
4611
|
+
};
|
|
4612
|
+
type ShopMatchWithItemSchema = {
|
|
4613
|
+
/**
|
|
4614
|
+
* @description Resource identifier
|
|
4615
|
+
* @example 6a577711abc1ce71383d3e10
|
|
4616
|
+
*/
|
|
4617
|
+
id: string;
|
|
4618
|
+
shop: {
|
|
4619
|
+
/** @example cardlevels */
|
|
4620
|
+
technicalName: string;
|
|
4621
|
+
/** @example Cardlevels */
|
|
4622
|
+
name: string;
|
|
4623
|
+
};
|
|
4624
|
+
url: string;
|
|
4625
|
+
/**
|
|
4626
|
+
* @description Resource identifier
|
|
4627
|
+
* @example 6a577711abc1ce71383d3e10
|
|
4628
|
+
*/
|
|
4629
|
+
shopUrlId: string | undefined;
|
|
4630
|
+
/** @example 149.5 */
|
|
4631
|
+
price: number | undefined;
|
|
4632
|
+
/**
|
|
4633
|
+
* @description ISO-4217 currency code
|
|
4634
|
+
* @example SEK
|
|
4635
|
+
*/
|
|
4636
|
+
currency: string | undefined;
|
|
4637
|
+
inStock: boolean;
|
|
4638
|
+
inPreorder: boolean;
|
|
4639
|
+
inMonitor: boolean;
|
|
4640
|
+
isFullyBooked: boolean;
|
|
4641
|
+
scrapedName: string | undefined;
|
|
4642
|
+
scrapedType: string | undefined;
|
|
4643
|
+
matchScore: number | undefined;
|
|
4644
|
+
hasCategoryMismatch: boolean;
|
|
4645
|
+
/** @enum {string|null} */
|
|
4646
|
+
cardType: "loose" | "graded" | undefined;
|
|
4647
|
+
/** @enum {string|null} */
|
|
4648
|
+
itemCondition: "NM" | "LP" | "MP" | "HP" | "DMG" | undefined;
|
|
4649
|
+
/** @enum {string|null} */
|
|
4650
|
+
gradingCompany: "PSA" | "BGS" | "CGC" | "SGC" | "ACE" | "RAUKCARD" | "TAG" | "GMA" | undefined;
|
|
4651
|
+
grade: number | undefined;
|
|
4652
|
+
item: {
|
|
4653
|
+
/**
|
|
4654
|
+
* @description Resource identifier
|
|
4655
|
+
* @example 6a577711abc1ce71383d3e10
|
|
4656
|
+
*/
|
|
4657
|
+
id: string;
|
|
4658
|
+
/** @enum {string} */
|
|
4659
|
+
kind: "card" | "sealed";
|
|
4660
|
+
name: string;
|
|
4661
|
+
shortName: string | undefined;
|
|
4662
|
+
technicalName: string;
|
|
4663
|
+
cardNumber: string | undefined;
|
|
4664
|
+
imageUrl: string | undefined;
|
|
4665
|
+
language: string | undefined;
|
|
4666
|
+
priceChartingId: string | undefined;
|
|
4667
|
+
} | undefined;
|
|
4668
|
+
expansion: {
|
|
4669
|
+
/**
|
|
4670
|
+
* @description Resource identifier
|
|
4671
|
+
* @example 6a577711abc1ce71383d3e10
|
|
4672
|
+
*/
|
|
4673
|
+
id: string;
|
|
4674
|
+
/** @example Mega Evolution 30th Celebration */
|
|
4675
|
+
name: string;
|
|
4676
|
+
/** @example 30th Celebration */
|
|
4677
|
+
shortName: string;
|
|
4678
|
+
/** @example jpn-mega-evolution-30th-celebration */
|
|
4679
|
+
technicalName: string;
|
|
4680
|
+
/**
|
|
4681
|
+
* @description Printing language of the item
|
|
4682
|
+
* @example JPN
|
|
4683
|
+
* @enum {string}
|
|
4684
|
+
*/
|
|
4685
|
+
language: "ENG" | "JPN" | "CHI";
|
|
4686
|
+
/** @example m6a */
|
|
4687
|
+
code: string | undefined;
|
|
4688
|
+
/** @example m6a */
|
|
4689
|
+
cardCode: string | undefined;
|
|
4690
|
+
/** @example Mega Evolution */
|
|
4691
|
+
seriesName: string | undefined;
|
|
4692
|
+
/**
|
|
4693
|
+
* Format: date-time
|
|
4694
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
4695
|
+
*/
|
|
4696
|
+
releaseDate: string | undefined;
|
|
4697
|
+
/**
|
|
4698
|
+
* @description Absolute asset URL, or null when absent
|
|
4699
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
4700
|
+
*/
|
|
4701
|
+
logoUrl: string | undefined;
|
|
4702
|
+
/**
|
|
4703
|
+
* @description Absolute asset URL, or null when absent
|
|
4704
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
4705
|
+
*/
|
|
4706
|
+
symbolUrl: string | undefined;
|
|
4707
|
+
/**
|
|
4708
|
+
* @description Absolute asset URL, or null when absent
|
|
4709
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
4710
|
+
*/
|
|
4711
|
+
imageUrl: string | undefined;
|
|
4712
|
+
} | undefined;
|
|
4713
|
+
category: {
|
|
4714
|
+
/**
|
|
4715
|
+
* @description Resource identifier
|
|
4716
|
+
* @example 6a577711abc1ce71383d3e10
|
|
4717
|
+
*/
|
|
4718
|
+
id: string;
|
|
4719
|
+
/** @example Booster Box */
|
|
4720
|
+
name: string;
|
|
4721
|
+
/** @example booster-box */
|
|
4722
|
+
technicalName: string;
|
|
4723
|
+
} | undefined;
|
|
4724
|
+
/**
|
|
4725
|
+
* Format: date-time
|
|
4726
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
4727
|
+
*/
|
|
4728
|
+
matchedAt: string;
|
|
4729
|
+
/**
|
|
4730
|
+
* Format: date-time
|
|
4731
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
4732
|
+
*/
|
|
4733
|
+
updatedAt: string;
|
|
4734
|
+
bargain: {
|
|
4735
|
+
discountPercent: number;
|
|
4736
|
+
/** @enum {string} */
|
|
4737
|
+
referenceSource: "retail" | "tradera" | "cardmarket";
|
|
4738
|
+
} | undefined;
|
|
4739
|
+
};
|
|
4740
|
+
type ItemShopMatchSchema = {
|
|
4741
|
+
/**
|
|
4742
|
+
* @description Resource identifier
|
|
4743
|
+
* @example 6a577711abc1ce71383d3e10
|
|
4744
|
+
*/
|
|
4745
|
+
id: string;
|
|
4746
|
+
shop: {
|
|
4747
|
+
/** @example cardlevels */
|
|
4748
|
+
technicalName: string;
|
|
4749
|
+
/** @example Cardlevels */
|
|
4750
|
+
name: string;
|
|
4751
|
+
delivery: {
|
|
4752
|
+
/** @example 149.5 */
|
|
4753
|
+
cost: number | undefined;
|
|
4754
|
+
currency: string | undefined;
|
|
4755
|
+
daysMin: number | undefined;
|
|
4756
|
+
daysMax: number | undefined;
|
|
4757
|
+
/** @example 149.5 */
|
|
4758
|
+
freeShippingThreshold: number | undefined;
|
|
4759
|
+
supportsLocalPickup: boolean | undefined;
|
|
4760
|
+
note: string | undefined;
|
|
4761
|
+
};
|
|
4762
|
+
};
|
|
4763
|
+
url: string;
|
|
4764
|
+
/**
|
|
4765
|
+
* @description Resource identifier
|
|
4766
|
+
* @example 6a577711abc1ce71383d3e10
|
|
4767
|
+
*/
|
|
4768
|
+
shopUrlId: string | undefined;
|
|
4769
|
+
/** @example 149.5 */
|
|
4770
|
+
price: number | undefined;
|
|
4771
|
+
/**
|
|
4772
|
+
* @description ISO-4217 currency code
|
|
4773
|
+
* @example SEK
|
|
4774
|
+
*/
|
|
4775
|
+
currency: string | undefined;
|
|
4776
|
+
inStock: boolean;
|
|
4777
|
+
inPreorder: boolean;
|
|
4778
|
+
inMonitor: boolean;
|
|
4779
|
+
isFullyBooked: boolean;
|
|
4780
|
+
scrapedName: string | undefined;
|
|
4781
|
+
scrapedType: string | undefined;
|
|
4782
|
+
matchScore: number | undefined;
|
|
4783
|
+
hasCategoryMismatch: boolean;
|
|
4784
|
+
/** @enum {string|null} */
|
|
4785
|
+
cardType: "loose" | "graded" | undefined;
|
|
4786
|
+
/** @enum {string|null} */
|
|
4787
|
+
itemCondition: "NM" | "LP" | "MP" | "HP" | "DMG" | undefined;
|
|
4788
|
+
/** @enum {string|null} */
|
|
4789
|
+
gradingCompany: "PSA" | "BGS" | "CGC" | "SGC" | "ACE" | "RAUKCARD" | "TAG" | "GMA" | undefined;
|
|
4790
|
+
grade: number | undefined;
|
|
4791
|
+
/**
|
|
4792
|
+
* Format: date-time
|
|
4793
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
4794
|
+
*/
|
|
4795
|
+
matchedAt: string;
|
|
4796
|
+
/**
|
|
4797
|
+
* Format: date-time
|
|
4798
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
4799
|
+
*/
|
|
4800
|
+
updatedAt: string;
|
|
4801
|
+
bargain: {
|
|
4802
|
+
discountPercent: number;
|
|
4803
|
+
/** @enum {string} */
|
|
4804
|
+
referenceSource: "retail" | "tradera" | "cardmarket";
|
|
4805
|
+
} | undefined;
|
|
4806
|
+
};
|
|
4807
|
+
/** A shop tracked by tcgpriser, as returned by `client.shops.list()` / `client.shops.get()`. The
|
|
4808
|
+
* `*Count` fields are `undefined` when the shop has never had a match computed (rather than `0`, which
|
|
4809
|
+
* would mean "matched, currently empty"). */
|
|
4810
|
+
type Shop = {
|
|
4811
|
+
/**
|
|
4812
|
+
* @description Resource identifier
|
|
4813
|
+
* @example 6a577711abc1ce71383d3e10
|
|
4814
|
+
*/
|
|
4815
|
+
id: string;
|
|
4816
|
+
/** @example Cardlevels */
|
|
4817
|
+
name: string;
|
|
4818
|
+
/** @example cardlevels */
|
|
4819
|
+
technicalName: string;
|
|
4820
|
+
websiteUrl: string | undefined;
|
|
4821
|
+
/**
|
|
4822
|
+
* @description Absolute asset URL, or null when absent
|
|
4823
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
4824
|
+
*/
|
|
4825
|
+
logoUrl: string | undefined;
|
|
4826
|
+
description: string | undefined;
|
|
4827
|
+
/** @example 149.5 */
|
|
4828
|
+
defaultDeliveryCost: number | undefined;
|
|
4829
|
+
/**
|
|
4830
|
+
* @description ISO-4217, or null
|
|
4831
|
+
* @example SEK
|
|
4832
|
+
*/
|
|
4833
|
+
deliveryCurrency: string | undefined;
|
|
4834
|
+
deliveryDaysMin: number | undefined;
|
|
4835
|
+
deliveryDaysMax: number | undefined;
|
|
4836
|
+
/** @example 149.5 */
|
|
4837
|
+
freeShippingThreshold: number | undefined;
|
|
4838
|
+
supportsLocalPickup: boolean;
|
|
4839
|
+
deliveryNote: string | undefined;
|
|
4840
|
+
isActive: boolean;
|
|
4841
|
+
isTemporarilyClosed: boolean;
|
|
4842
|
+
isOptedOut: boolean;
|
|
4843
|
+
matchCount: number | undefined;
|
|
4844
|
+
/** @description Matches resolved to a catalog item */
|
|
4845
|
+
linkedMatchCount: number | undefined;
|
|
4846
|
+
inStockCount: number | undefined;
|
|
4847
|
+
preorderCount: number | undefined;
|
|
4848
|
+
monitorCount: number | undefined;
|
|
4849
|
+
fullyBookedCount: number | undefined;
|
|
4850
|
+
/**
|
|
4851
|
+
* Format: date-time
|
|
4852
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
4853
|
+
*/
|
|
4854
|
+
lastMatchedAt: string | undefined;
|
|
4855
|
+
/**
|
|
4856
|
+
* Format: date-time
|
|
4857
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
4858
|
+
*/
|
|
4859
|
+
createdAt: string;
|
|
4860
|
+
/**
|
|
4861
|
+
* Format: date-time
|
|
4862
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
4863
|
+
*/
|
|
4864
|
+
updatedAt: string;
|
|
4865
|
+
};
|
|
4866
|
+
/** The lighter shop shape embedded in shop-match responses: a subset of `Shop`, no id or delivery
|
|
4867
|
+
* cost breakdown. */
|
|
4868
|
+
type ShopSummary = {
|
|
4869
|
+
technicalName: string;
|
|
4870
|
+
name: string;
|
|
4871
|
+
logoUrl: string | undefined;
|
|
4872
|
+
websiteUrl: string | undefined;
|
|
4873
|
+
description: string | undefined;
|
|
4874
|
+
isActive: boolean;
|
|
4875
|
+
isTemporarilyClosed: boolean;
|
|
4876
|
+
isOptedOut: boolean;
|
|
4877
|
+
deliveryNote: string | undefined;
|
|
4878
|
+
};
|
|
4879
|
+
type CardType = "loose" | "graded";
|
|
4880
|
+
type ItemCondition = "NM" | "LP" | "MP" | "HP" | "DMG";
|
|
4881
|
+
type GradingCompany = "PSA" | "BGS" | "CGC" | "SGC" | "ACE" | "RAUKCARD" | "TAG" | "GMA";
|
|
4882
|
+
/** A shop's listing matched (or not yet matched) to a catalog item. Returned by
|
|
4883
|
+
* `client.shopMatches.list()` and as the rows inside `client.shopMatches.forShop()`. */
|
|
4884
|
+
type ShopMatch = ShopMatchWithItemSchema;
|
|
4885
|
+
type ShopMatchDelivery = {
|
|
4886
|
+
/** @example 149.5 */
|
|
4887
|
+
cost: number | undefined;
|
|
4888
|
+
currency: string | undefined;
|
|
4889
|
+
daysMin: number | undefined;
|
|
4890
|
+
daysMax: number | undefined;
|
|
4891
|
+
/** @example 149.5 */
|
|
4892
|
+
freeShippingThreshold: number | undefined;
|
|
4893
|
+
supportsLocalPickup: boolean | undefined;
|
|
4894
|
+
note: string | undefined;
|
|
4895
|
+
};
|
|
4896
|
+
/** A shop-match row scoped to one already-known item. `client.cards.matches()` and
|
|
4897
|
+
* `client.products.matches()` drop `item`/`expansion`/`category` since the caller already has
|
|
4898
|
+
* them, but add delivery terms since you're looking at one listing's total cost here. */
|
|
4899
|
+
type ItemShopMatch = ItemShopMatchSchema;
|
|
4900
|
+
/** Response of `client.cards.matches()` / `client.products.matches()`. */
|
|
4901
|
+
type ItemShopMatches = {
|
|
4902
|
+
item: {
|
|
4903
|
+
/**
|
|
4904
|
+
* @description Resource identifier
|
|
4905
|
+
* @example 6a577711abc1ce71383d3e10
|
|
4906
|
+
*/
|
|
4907
|
+
id: string;
|
|
4908
|
+
name: string;
|
|
4909
|
+
};
|
|
4910
|
+
data: {
|
|
4911
|
+
/**
|
|
4912
|
+
* @description Resource identifier
|
|
4913
|
+
* @example 6a577711abc1ce71383d3e10
|
|
4914
|
+
*/
|
|
4915
|
+
id: string;
|
|
4916
|
+
shop: {
|
|
4917
|
+
/** @example cardlevels */
|
|
4918
|
+
technicalName: string;
|
|
4919
|
+
/** @example Cardlevels */
|
|
4920
|
+
name: string;
|
|
4921
|
+
delivery: {
|
|
4922
|
+
/** @example 149.5 */
|
|
4923
|
+
cost: number | undefined;
|
|
4924
|
+
currency: string | undefined;
|
|
4925
|
+
daysMin: number | undefined;
|
|
4926
|
+
daysMax: number | undefined;
|
|
4927
|
+
/** @example 149.5 */
|
|
4928
|
+
freeShippingThreshold: number | undefined;
|
|
4929
|
+
supportsLocalPickup: boolean | undefined;
|
|
4930
|
+
note: string | undefined;
|
|
4931
|
+
};
|
|
4932
|
+
};
|
|
4933
|
+
url: string;
|
|
4934
|
+
/**
|
|
4935
|
+
* @description Resource identifier
|
|
4936
|
+
* @example 6a577711abc1ce71383d3e10
|
|
4937
|
+
*/
|
|
4938
|
+
shopUrlId: string | undefined;
|
|
4939
|
+
/** @example 149.5 */
|
|
4940
|
+
price: number | undefined;
|
|
4941
|
+
/**
|
|
4942
|
+
* @description ISO-4217 currency code
|
|
4943
|
+
* @example SEK
|
|
4944
|
+
*/
|
|
4945
|
+
currency: string | undefined;
|
|
4946
|
+
inStock: boolean;
|
|
4947
|
+
inPreorder: boolean;
|
|
4948
|
+
inMonitor: boolean;
|
|
4949
|
+
isFullyBooked: boolean;
|
|
4950
|
+
scrapedName: string | undefined;
|
|
4951
|
+
scrapedType: string | undefined;
|
|
4952
|
+
matchScore: number | undefined;
|
|
4953
|
+
hasCategoryMismatch: boolean;
|
|
4954
|
+
/** @enum {string|null} */
|
|
4955
|
+
cardType: "loose" | "graded" | undefined;
|
|
4956
|
+
/** @enum {string|null} */
|
|
4957
|
+
itemCondition: "NM" | "LP" | "MP" | "HP" | "DMG" | undefined;
|
|
4958
|
+
/** @enum {string|null} */
|
|
4959
|
+
gradingCompany: "PSA" | "BGS" | "CGC" | "SGC" | "ACE" | "RAUKCARD" | "TAG" | "GMA" | undefined;
|
|
4960
|
+
grade: number | undefined;
|
|
4961
|
+
/**
|
|
4962
|
+
* Format: date-time
|
|
4963
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
4964
|
+
*/
|
|
4965
|
+
matchedAt: string;
|
|
4966
|
+
/**
|
|
4967
|
+
* Format: date-time
|
|
4968
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
4969
|
+
*/
|
|
4970
|
+
updatedAt: string;
|
|
4971
|
+
bargain: {
|
|
4972
|
+
discountPercent: number;
|
|
4973
|
+
/** @enum {string} */
|
|
4974
|
+
referenceSource: "retail" | "tradera" | "cardmarket";
|
|
4975
|
+
} | undefined;
|
|
4976
|
+
}[];
|
|
4977
|
+
pagination: {
|
|
4978
|
+
/** @description Total matching records, ignoring pagination */
|
|
4979
|
+
total: number;
|
|
4980
|
+
limit: number;
|
|
4981
|
+
skip: number;
|
|
4982
|
+
hasMore: boolean;
|
|
4983
|
+
};
|
|
4984
|
+
};
|
|
4985
|
+
/** Response of `client.shopMatches.forShop()`: every match, of any item, currently live at one shop. */
|
|
4986
|
+
type ShopMatchesForShop = {
|
|
4987
|
+
shop: {
|
|
4988
|
+
technicalName: string;
|
|
4989
|
+
name: string;
|
|
4990
|
+
logoUrl: string | undefined;
|
|
4991
|
+
websiteUrl: string | undefined;
|
|
4992
|
+
description: string | undefined;
|
|
4993
|
+
isActive: boolean;
|
|
4994
|
+
isTemporarilyClosed: boolean;
|
|
4995
|
+
isOptedOut: boolean;
|
|
4996
|
+
deliveryNote: string | undefined;
|
|
4997
|
+
} | undefined;
|
|
4998
|
+
data: {
|
|
4999
|
+
/**
|
|
5000
|
+
* @description Resource identifier
|
|
5001
|
+
* @example 6a577711abc1ce71383d3e10
|
|
5002
|
+
*/
|
|
5003
|
+
id: string;
|
|
5004
|
+
shop: {
|
|
5005
|
+
/** @example cardlevels */
|
|
5006
|
+
technicalName: string;
|
|
5007
|
+
/** @example Cardlevels */
|
|
5008
|
+
name: string;
|
|
5009
|
+
};
|
|
5010
|
+
url: string;
|
|
5011
|
+
/**
|
|
5012
|
+
* @description Resource identifier
|
|
5013
|
+
* @example 6a577711abc1ce71383d3e10
|
|
5014
|
+
*/
|
|
5015
|
+
shopUrlId: string | undefined;
|
|
5016
|
+
/** @example 149.5 */
|
|
5017
|
+
price: number | undefined;
|
|
5018
|
+
/**
|
|
5019
|
+
* @description ISO-4217 currency code
|
|
5020
|
+
* @example SEK
|
|
5021
|
+
*/
|
|
5022
|
+
currency: string | undefined;
|
|
5023
|
+
inStock: boolean;
|
|
5024
|
+
inPreorder: boolean;
|
|
5025
|
+
inMonitor: boolean;
|
|
5026
|
+
isFullyBooked: boolean;
|
|
5027
|
+
scrapedName: string | undefined;
|
|
5028
|
+
scrapedType: string | undefined;
|
|
5029
|
+
matchScore: number | undefined;
|
|
5030
|
+
hasCategoryMismatch: boolean;
|
|
5031
|
+
/** @enum {string|null} */
|
|
5032
|
+
cardType: "loose" | "graded" | undefined;
|
|
5033
|
+
/** @enum {string|null} */
|
|
5034
|
+
itemCondition: "NM" | "LP" | "MP" | "HP" | "DMG" | undefined;
|
|
5035
|
+
/** @enum {string|null} */
|
|
5036
|
+
gradingCompany: "PSA" | "BGS" | "CGC" | "SGC" | "ACE" | "RAUKCARD" | "TAG" | "GMA" | undefined;
|
|
5037
|
+
grade: number | undefined;
|
|
5038
|
+
item: {
|
|
5039
|
+
/**
|
|
5040
|
+
* @description Resource identifier
|
|
5041
|
+
* @example 6a577711abc1ce71383d3e10
|
|
5042
|
+
*/
|
|
5043
|
+
id: string;
|
|
5044
|
+
/** @enum {string} */
|
|
5045
|
+
kind: "card" | "sealed";
|
|
5046
|
+
name: string;
|
|
5047
|
+
shortName: string | undefined;
|
|
5048
|
+
technicalName: string;
|
|
5049
|
+
cardNumber: string | undefined;
|
|
5050
|
+
imageUrl: string | undefined;
|
|
5051
|
+
language: string | undefined;
|
|
5052
|
+
priceChartingId: string | undefined;
|
|
5053
|
+
} | undefined;
|
|
5054
|
+
expansion: {
|
|
5055
|
+
/**
|
|
5056
|
+
* @description Resource identifier
|
|
5057
|
+
* @example 6a577711abc1ce71383d3e10
|
|
5058
|
+
*/
|
|
5059
|
+
id: string;
|
|
5060
|
+
/** @example Mega Evolution 30th Celebration */
|
|
5061
|
+
name: string;
|
|
5062
|
+
/** @example 30th Celebration */
|
|
5063
|
+
shortName: string;
|
|
5064
|
+
/** @example jpn-mega-evolution-30th-celebration */
|
|
5065
|
+
technicalName: string;
|
|
5066
|
+
/**
|
|
5067
|
+
* @description Printing language of the item
|
|
5068
|
+
* @example JPN
|
|
5069
|
+
* @enum {string}
|
|
5070
|
+
*/
|
|
5071
|
+
language: "ENG" | "JPN" | "CHI";
|
|
5072
|
+
/** @example m6a */
|
|
5073
|
+
code: string | undefined;
|
|
5074
|
+
/** @example m6a */
|
|
5075
|
+
cardCode: string | undefined;
|
|
5076
|
+
/** @example Mega Evolution */
|
|
5077
|
+
seriesName: string | undefined;
|
|
5078
|
+
/**
|
|
5079
|
+
* Format: date-time
|
|
5080
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
5081
|
+
*/
|
|
5082
|
+
releaseDate: string | undefined;
|
|
5083
|
+
/**
|
|
5084
|
+
* @description Absolute asset URL, or null when absent
|
|
5085
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
5086
|
+
*/
|
|
5087
|
+
logoUrl: string | undefined;
|
|
5088
|
+
/**
|
|
5089
|
+
* @description Absolute asset URL, or null when absent
|
|
5090
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
5091
|
+
*/
|
|
5092
|
+
symbolUrl: string | undefined;
|
|
5093
|
+
/**
|
|
5094
|
+
* @description Absolute asset URL, or null when absent
|
|
5095
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
5096
|
+
*/
|
|
5097
|
+
imageUrl: string | undefined;
|
|
5098
|
+
} | undefined;
|
|
5099
|
+
category: {
|
|
5100
|
+
/**
|
|
5101
|
+
* @description Resource identifier
|
|
5102
|
+
* @example 6a577711abc1ce71383d3e10
|
|
5103
|
+
*/
|
|
5104
|
+
id: string;
|
|
5105
|
+
/** @example Booster Box */
|
|
5106
|
+
name: string;
|
|
5107
|
+
/** @example booster-box */
|
|
5108
|
+
technicalName: string;
|
|
5109
|
+
} | undefined;
|
|
5110
|
+
/**
|
|
5111
|
+
* Format: date-time
|
|
5112
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
5113
|
+
*/
|
|
5114
|
+
matchedAt: string;
|
|
5115
|
+
/**
|
|
5116
|
+
* Format: date-time
|
|
5117
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
5118
|
+
*/
|
|
5119
|
+
updatedAt: string;
|
|
5120
|
+
bargain: {
|
|
5121
|
+
discountPercent: number;
|
|
5122
|
+
/** @enum {string} */
|
|
5123
|
+
referenceSource: "retail" | "tradera" | "cardmarket";
|
|
5124
|
+
} | undefined;
|
|
5125
|
+
}[];
|
|
5126
|
+
pagination: {
|
|
5127
|
+
/** @description Total matching records, ignoring pagination */
|
|
5128
|
+
total: number;
|
|
5129
|
+
limit: number;
|
|
5130
|
+
skip: number;
|
|
5131
|
+
hasMore: boolean;
|
|
5132
|
+
};
|
|
5133
|
+
};
|
|
5134
|
+
/** One row of `client.shopMatches.shopStats()`: match counts per shop, not the matches themselves. */
|
|
5135
|
+
type ShopMatchStats = {
|
|
5136
|
+
shop: {
|
|
5137
|
+
technicalName: string;
|
|
5138
|
+
name: string;
|
|
5139
|
+
logoUrl: string | undefined;
|
|
5140
|
+
websiteUrl: string | undefined;
|
|
5141
|
+
description: string | undefined;
|
|
5142
|
+
isActive: boolean;
|
|
5143
|
+
isTemporarilyClosed: boolean;
|
|
5144
|
+
isOptedOut: boolean;
|
|
5145
|
+
deliveryNote: string | undefined;
|
|
5146
|
+
};
|
|
5147
|
+
matchCount: number;
|
|
5148
|
+
/** @description Matches resolved to a catalog item */
|
|
5149
|
+
linkedMatchCount: number;
|
|
5150
|
+
inStockCount: number;
|
|
5151
|
+
preorderCount: number;
|
|
5152
|
+
monitorCount: number;
|
|
5153
|
+
fullyBookedCount: number;
|
|
5154
|
+
/**
|
|
5155
|
+
* Format: date-time
|
|
5156
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
5157
|
+
*/
|
|
5158
|
+
lastMatchedAt: string | undefined;
|
|
5159
|
+
};
|
|
5160
|
+
/** A named `{ id, name }` reference to a card or product: the compact identity used by every
|
|
5161
|
+
* `price-stats` response, which is keyed by item rather than embedding the full catalog record. */
|
|
5162
|
+
type ItemRef = {
|
|
5163
|
+
/**
|
|
5164
|
+
* @description Resource identifier
|
|
5165
|
+
* @example 6a577711abc1ce71383d3e10
|
|
5166
|
+
*/
|
|
5167
|
+
id: string;
|
|
5168
|
+
name: string;
|
|
5169
|
+
};
|
|
5170
|
+
/** One day's average price for one item. */
|
|
5171
|
+
type DailyPricePoint = {
|
|
5172
|
+
/**
|
|
5173
|
+
* Format: date-time
|
|
5174
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
5175
|
+
*/
|
|
5176
|
+
statDate: string;
|
|
5177
|
+
/** @example 149.5 */
|
|
5178
|
+
averagePrice: number;
|
|
5179
|
+
};
|
|
5180
|
+
/** Response row of `client.priceStats.daily()`. */
|
|
5181
|
+
type ItemDailyStats = {
|
|
5182
|
+
item: {
|
|
5183
|
+
/**
|
|
5184
|
+
* @description Resource identifier
|
|
5185
|
+
* @example 6a577711abc1ce71383d3e10
|
|
5186
|
+
*/
|
|
5187
|
+
id: string;
|
|
5188
|
+
name: string;
|
|
5189
|
+
};
|
|
5190
|
+
dailyStats: {
|
|
5191
|
+
/**
|
|
5192
|
+
* Format: date-time
|
|
5193
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
5194
|
+
*/
|
|
5195
|
+
statDate: string;
|
|
5196
|
+
/** @example 149.5 */
|
|
5197
|
+
averagePrice: number;
|
|
5198
|
+
}[];
|
|
5199
|
+
};
|
|
5200
|
+
type EstimatedValue = {
|
|
5201
|
+
/** @example 149.5 */
|
|
5202
|
+
estimatedValue: number | undefined;
|
|
5203
|
+
/**
|
|
5204
|
+
* Format: date-time
|
|
5205
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
5206
|
+
*/
|
|
5207
|
+
estimateUpdatedAt: string | undefined;
|
|
5208
|
+
dataPointCount: number;
|
|
5209
|
+
};
|
|
5210
|
+
/** Response row of `client.priceStats.estimatedValues()`. */
|
|
5211
|
+
type ItemEstimatedValue = {
|
|
5212
|
+
item: {
|
|
5213
|
+
/**
|
|
5214
|
+
* @description Resource identifier
|
|
5215
|
+
* @example 6a577711abc1ce71383d3e10
|
|
5216
|
+
*/
|
|
5217
|
+
id: string;
|
|
5218
|
+
name: string;
|
|
5219
|
+
};
|
|
5220
|
+
estimate: {
|
|
5221
|
+
/** @example 149.5 */
|
|
5222
|
+
estimatedValue: number | undefined;
|
|
5223
|
+
/**
|
|
5224
|
+
* Format: date-time
|
|
5225
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
5226
|
+
*/
|
|
5227
|
+
estimateUpdatedAt: string | undefined;
|
|
5228
|
+
dataPointCount: number;
|
|
5229
|
+
};
|
|
5230
|
+
};
|
|
5231
|
+
/** Response row of `client.priceStats.topProducts()`: items ranked by shop availability, not price. */
|
|
5232
|
+
type TopItem = {
|
|
5233
|
+
/**
|
|
5234
|
+
* @description Resource identifier
|
|
5235
|
+
* @example 6a577711abc1ce71383d3e10
|
|
5236
|
+
*/
|
|
5237
|
+
id: string;
|
|
5238
|
+
slug: string | undefined;
|
|
5239
|
+
shopMatchCount: number;
|
|
5240
|
+
};
|
|
5241
|
+
/** One rarity's share of a booster pack's pulls. `weight` is relative to the other buckets in the
|
|
5242
|
+
* same pack rate, not a percentage. Normalise across `buckets` yourself if you need one. */
|
|
5243
|
+
type PackRateBucket = {
|
|
5244
|
+
/** @example Double rare */
|
|
5245
|
+
rarity: string;
|
|
5246
|
+
/**
|
|
5247
|
+
* @description Relative draw weight (normalised across buckets)
|
|
5248
|
+
* @example 24
|
|
5249
|
+
*/
|
|
5250
|
+
weight: number;
|
|
5251
|
+
};
|
|
5252
|
+
/** Pull-rate odds for one expansion's booster packs, as returned by `client.packRates.list()` /
|
|
5253
|
+
* `client.packRates.get()`. */
|
|
5254
|
+
type PackRate = {
|
|
5255
|
+
/**
|
|
5256
|
+
* @description Resource identifier
|
|
5257
|
+
* @example 6a577711abc1ce71383d3e10
|
|
5258
|
+
*/
|
|
5259
|
+
id: string;
|
|
5260
|
+
expansion: {
|
|
5261
|
+
/**
|
|
5262
|
+
* @description Resource identifier
|
|
5263
|
+
* @example 6a577711abc1ce71383d3e10
|
|
5264
|
+
*/
|
|
5265
|
+
id: string;
|
|
5266
|
+
/** @example Mega Evolution 30th Celebration */
|
|
5267
|
+
name: string;
|
|
5268
|
+
/** @example 30th Celebration */
|
|
5269
|
+
shortName: string;
|
|
5270
|
+
/** @example jpn-mega-evolution-30th-celebration */
|
|
5271
|
+
technicalName: string;
|
|
5272
|
+
/**
|
|
5273
|
+
* @description Printing language of the item
|
|
5274
|
+
* @example JPN
|
|
5275
|
+
* @enum {string}
|
|
5276
|
+
*/
|
|
5277
|
+
language: "ENG" | "JPN" | "CHI";
|
|
5278
|
+
/** @example m6a */
|
|
5279
|
+
code: string | undefined;
|
|
5280
|
+
/** @example m6a */
|
|
5281
|
+
cardCode: string | undefined;
|
|
5282
|
+
/** @example Mega Evolution */
|
|
5283
|
+
seriesName: string | undefined;
|
|
5284
|
+
/**
|
|
5285
|
+
* Format: date-time
|
|
5286
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
5287
|
+
*/
|
|
5288
|
+
releaseDate: string | undefined;
|
|
5289
|
+
/**
|
|
5290
|
+
* @description Absolute asset URL, or null when absent
|
|
5291
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
5292
|
+
*/
|
|
5293
|
+
logoUrl: string | undefined;
|
|
5294
|
+
/**
|
|
5295
|
+
* @description Absolute asset URL, or null when absent
|
|
5296
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
5297
|
+
*/
|
|
5298
|
+
symbolUrl: string | undefined;
|
|
5299
|
+
/**
|
|
5300
|
+
* @description Absolute asset URL, or null when absent
|
|
5301
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
5302
|
+
*/
|
|
5303
|
+
imageUrl: string | undefined;
|
|
5304
|
+
};
|
|
5305
|
+
buckets: {
|
|
5306
|
+
/** @example Double rare */
|
|
5307
|
+
rarity: string;
|
|
5308
|
+
/**
|
|
5309
|
+
* @description Relative draw weight (normalised across buckets)
|
|
5310
|
+
* @example 24
|
|
5311
|
+
*/
|
|
5312
|
+
weight: number;
|
|
5313
|
+
}[];
|
|
5314
|
+
/**
|
|
5315
|
+
* Format: date-time
|
|
5316
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
5317
|
+
*/
|
|
5318
|
+
createdAt: string;
|
|
5319
|
+
/**
|
|
5320
|
+
* Format: date-time
|
|
5321
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
5322
|
+
*/
|
|
5323
|
+
updatedAt: string;
|
|
5324
|
+
};
|
|
5325
|
+
/** Platform-wide overview counts, returned by `client.stats.platform()`. */
|
|
5326
|
+
type PlatformStats = {
|
|
5327
|
+
shopCount: number;
|
|
5328
|
+
categoryCount: number;
|
|
5329
|
+
expansionCount: number;
|
|
5330
|
+
productCount: number;
|
|
5331
|
+
priceCount: number;
|
|
5332
|
+
};
|
|
5333
|
+
/**
|
|
5334
|
+
* Types for the premium tier: endpoints that need a signed-in subscriber's JWT (see
|
|
5335
|
+
* `TcgPriserOptions.authToken`, or the `authToken` field on each premium method's params). Split
|
|
5336
|
+
* out from the public-tier types because none of these mean anything without a token: without one,
|
|
5337
|
+
* the API just answers `403 premiumRequired`.
|
|
5338
|
+
*
|
|
5339
|
+
* Derived from `src/generated/openapi.d.ts`, same as everything else in this directory.
|
|
5340
|
+
*/
|
|
5341
|
+
type ReferencePriceSeries = {
|
|
5342
|
+
/** @enum {string} */
|
|
5343
|
+
source: "tcgdex" | "cmapi" | "tradera";
|
|
5344
|
+
/** @enum {string} */
|
|
5345
|
+
provider: "cardmarket" | "tcgplayer" | "ebay" | "tradera";
|
|
5346
|
+
/** @enum {string|null} */
|
|
5347
|
+
variant: "normal" | "holo" | "reverse" | undefined;
|
|
5348
|
+
/** @enum {string|null} */
|
|
5349
|
+
cardType: "loose" | "graded" | undefined;
|
|
5350
|
+
/** @enum {string|null} */
|
|
5351
|
+
gradingCompany: "PSA" | "BGS" | "CGC" | "SGC" | "ACE" | "RAUKCARD" | "TAG" | "GMA" | undefined;
|
|
5352
|
+
grade: number | undefined;
|
|
5353
|
+
currency: string;
|
|
5354
|
+
sampleSize: number | undefined;
|
|
5355
|
+
points: {
|
|
5356
|
+
/**
|
|
5357
|
+
* Format: date-time
|
|
5358
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
5359
|
+
*/
|
|
5360
|
+
snapshotDate: string;
|
|
5361
|
+
price: number;
|
|
5362
|
+
}[];
|
|
5363
|
+
};
|
|
5364
|
+
type ReferencePriceSeriesPoint = {
|
|
5365
|
+
/**
|
|
5366
|
+
* Format: date-time
|
|
5367
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
5368
|
+
*/
|
|
5369
|
+
snapshotDate: string;
|
|
5370
|
+
price: number;
|
|
5371
|
+
};
|
|
5372
|
+
type ReferencePriceSource = "tradera" | "tcgdex" | "cmapi";
|
|
5373
|
+
type ReferencePriceCardVariant = "normal" | "holo" | "reverse";
|
|
5374
|
+
type ReferencePriceMetric = "price" | "low" | "mid" | "high" | "avg" | "avg1" | "avg7" | "avg30" | "directLow";
|
|
5375
|
+
type ReferencePriceCurrencyMode = "native" | "sek";
|
|
5376
|
+
/** Response of `client.cards.referencePrices()` / `client.products.referencePrices()`.
|
|
5377
|
+
*
|
|
5378
|
+
* Non-graded card prices come from TCGdex and are variant-aware (normal / holo / reverse). Graded
|
|
5379
|
+
* prices and eBay medians come from cmapi. Tradera is tcgpriser's own data: realised Swedish
|
|
5380
|
+
* auction sales rather than asking prices, always SEK, no variant. In native mode each series
|
|
5381
|
+
* keeps its own `currency`; in `sek` mode everything is `SEK`, converted at the rate stored on
|
|
5382
|
+
* each point. */
|
|
5383
|
+
type ItemReferencePrices = {
|
|
5384
|
+
item: {
|
|
5385
|
+
/**
|
|
5386
|
+
* @description Resource identifier
|
|
5387
|
+
* @example 6a577711abc1ce71383d3e10
|
|
5388
|
+
*/
|
|
5389
|
+
id: string;
|
|
5390
|
+
name: string;
|
|
5391
|
+
};
|
|
5392
|
+
/**
|
|
5393
|
+
* Format: date-time
|
|
5394
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
5395
|
+
*/
|
|
5396
|
+
fromDate: string;
|
|
5397
|
+
/**
|
|
5398
|
+
* Format: date-time
|
|
5399
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
5400
|
+
*/
|
|
5401
|
+
toDate: string;
|
|
5402
|
+
/** @enum {string} */
|
|
5403
|
+
metric: "price" | "low" | "mid" | "high" | "avg" | "avg1" | "avg7" | "avg30" | "directLow";
|
|
5404
|
+
/** @enum {string} */
|
|
5405
|
+
currencyMode: "native" | "sek";
|
|
5406
|
+
series: {
|
|
5407
|
+
/** @enum {string} */
|
|
5408
|
+
source: "tcgdex" | "cmapi" | "tradera";
|
|
5409
|
+
/** @enum {string} */
|
|
5410
|
+
provider: "cardmarket" | "tcgplayer" | "ebay" | "tradera";
|
|
5411
|
+
/** @enum {string|null} */
|
|
5412
|
+
variant: "normal" | "holo" | "reverse" | undefined;
|
|
5413
|
+
/** @enum {string|null} */
|
|
5414
|
+
cardType: "loose" | "graded" | undefined;
|
|
5415
|
+
/** @enum {string|null} */
|
|
5416
|
+
gradingCompany: "PSA" | "BGS" | "CGC" | "SGC" | "ACE" | "RAUKCARD" | "TAG" | "GMA" | undefined;
|
|
5417
|
+
grade: number | undefined;
|
|
5418
|
+
currency: string;
|
|
5419
|
+
sampleSize: number | undefined;
|
|
5420
|
+
points: {
|
|
5421
|
+
/**
|
|
5422
|
+
* Format: date-time
|
|
5423
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
5424
|
+
*/
|
|
5425
|
+
snapshotDate: string;
|
|
5426
|
+
price: number;
|
|
5427
|
+
}[];
|
|
5428
|
+
}[];
|
|
5429
|
+
};
|
|
5430
|
+
type SoldPrice = {
|
|
5431
|
+
/**
|
|
5432
|
+
* @description Resource identifier
|
|
5433
|
+
* @example 6a577711abc1ce71383d3e10
|
|
5434
|
+
*/
|
|
5435
|
+
id: string;
|
|
5436
|
+
url: string;
|
|
5437
|
+
/** @example 149.5 */
|
|
5438
|
+
price: number;
|
|
5439
|
+
/**
|
|
5440
|
+
* @description ISO-4217 currency code
|
|
5441
|
+
* @example SEK
|
|
5442
|
+
*/
|
|
5443
|
+
currency: string;
|
|
5444
|
+
/**
|
|
5445
|
+
* Format: date-time
|
|
5446
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
5447
|
+
*/
|
|
5448
|
+
soldAt: string | undefined;
|
|
5449
|
+
itemId: string | undefined;
|
|
5450
|
+
/** @example tradera */
|
|
5451
|
+
source: string | undefined;
|
|
5452
|
+
};
|
|
5453
|
+
/** Response of `client.cards.prices()` / `client.products.prices()`. `premiumRequired` is always
|
|
5454
|
+
* `true` here. That field only exists because this envelope shape is shared with a free preview
|
|
5455
|
+
* elsewhere in the API; this response is never the preview. */
|
|
5456
|
+
type ItemSoldPrices = {
|
|
5457
|
+
item: {
|
|
5458
|
+
/**
|
|
5459
|
+
* @description Resource identifier
|
|
5460
|
+
* @example 6a577711abc1ce71383d3e10
|
|
5461
|
+
*/
|
|
5462
|
+
id: string;
|
|
5463
|
+
name: string;
|
|
5464
|
+
};
|
|
5465
|
+
data: {
|
|
5466
|
+
/**
|
|
5467
|
+
* @description Resource identifier
|
|
5468
|
+
* @example 6a577711abc1ce71383d3e10
|
|
5469
|
+
*/
|
|
5470
|
+
id: string;
|
|
5471
|
+
url: string;
|
|
5472
|
+
/** @example 149.5 */
|
|
5473
|
+
price: number;
|
|
5474
|
+
/**
|
|
5475
|
+
* @description ISO-4217 currency code
|
|
5476
|
+
* @example SEK
|
|
5477
|
+
*/
|
|
5478
|
+
currency: string;
|
|
5479
|
+
/**
|
|
5480
|
+
* Format: date-time
|
|
5481
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
5482
|
+
*/
|
|
5483
|
+
soldAt: string | undefined;
|
|
5484
|
+
itemId: string | undefined;
|
|
5485
|
+
/** @example tradera */
|
|
5486
|
+
source: string | undefined;
|
|
5487
|
+
}[];
|
|
5488
|
+
pagination: {
|
|
5489
|
+
/** @description Total matching records, ignoring pagination */
|
|
5490
|
+
total: number;
|
|
5491
|
+
limit: number;
|
|
5492
|
+
skip: number;
|
|
5493
|
+
hasMore: boolean;
|
|
5494
|
+
};
|
|
5495
|
+
/** @enum {boolean} */
|
|
5496
|
+
premiumRequired: true;
|
|
5497
|
+
};
|
|
5498
|
+
type LivePricingDetail = {
|
|
5499
|
+
/** @example 149.5 */
|
|
5500
|
+
retailPrice: number | undefined;
|
|
5501
|
+
/** @example 149.5 */
|
|
5502
|
+
estimatedValue: number | undefined;
|
|
5503
|
+
shopCount: number;
|
|
5504
|
+
pricingDataPoints: number;
|
|
5505
|
+
/**
|
|
5506
|
+
* Format: date-time
|
|
5507
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
5508
|
+
*/
|
|
5509
|
+
calculatedAt: string;
|
|
5510
|
+
};
|
|
5511
|
+
/** Response of `client.cards.livePricing()` / `client.products.livePricing()`. */
|
|
5512
|
+
type LivePricingForItem = {
|
|
5513
|
+
/**
|
|
5514
|
+
* @description Resource identifier
|
|
5515
|
+
* @example 6a577711abc1ce71383d3e10
|
|
5516
|
+
*/
|
|
5517
|
+
id: string;
|
|
5518
|
+
name: string;
|
|
5519
|
+
technicalName: string;
|
|
5520
|
+
pricing: {
|
|
5521
|
+
/** @example 149.5 */
|
|
5522
|
+
retailPrice: number | undefined;
|
|
5523
|
+
/** @example 149.5 */
|
|
5524
|
+
estimatedValue: number | undefined;
|
|
5525
|
+
shopCount: number;
|
|
5526
|
+
pricingDataPoints: number;
|
|
5527
|
+
/**
|
|
5528
|
+
* Format: date-time
|
|
5529
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
5530
|
+
*/
|
|
5531
|
+
calculatedAt: string;
|
|
5532
|
+
};
|
|
5533
|
+
};
|
|
5534
|
+
/** Response of `client.expansions.livePricing()`: live pricing for every item in one expansion. */
|
|
5535
|
+
type ExpansionLivePricing = {
|
|
5536
|
+
expansion: {
|
|
5537
|
+
technicalName: string;
|
|
5538
|
+
};
|
|
5539
|
+
items: {
|
|
5540
|
+
/**
|
|
5541
|
+
* @description Resource identifier
|
|
5542
|
+
* @example 6a577711abc1ce71383d3e10
|
|
5543
|
+
*/
|
|
5544
|
+
id: string;
|
|
5545
|
+
name: string;
|
|
5546
|
+
technicalName: string;
|
|
5547
|
+
pricing: {
|
|
5548
|
+
/** @example 149.5 */
|
|
5549
|
+
retailPrice: number | undefined;
|
|
5550
|
+
/** @example 149.5 */
|
|
5551
|
+
estimatedValue: number | undefined;
|
|
5552
|
+
shopCount: number;
|
|
5553
|
+
pricingDataPoints: number;
|
|
5554
|
+
/**
|
|
5555
|
+
* Format: date-time
|
|
5556
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
5557
|
+
*/
|
|
5558
|
+
calculatedAt: string;
|
|
5559
|
+
};
|
|
5560
|
+
}[];
|
|
5561
|
+
};
|
|
5562
|
+
/** The catalog item as embedded in stats responses: a `Card`/`SealedProduct` minus
|
|
5563
|
+
* `lowestShopOffer` and `referencePriceSnapshotsByProvider`, which these endpoints already answer
|
|
5564
|
+
* more precisely on their own. */
|
|
5565
|
+
type StatsItemRef = {
|
|
5566
|
+
/**
|
|
5567
|
+
* @description Resource identifier
|
|
5568
|
+
* @example 6a577711abc1ce71383d3e10
|
|
5569
|
+
*/
|
|
5570
|
+
id: string;
|
|
5571
|
+
name: string;
|
|
5572
|
+
shortName: string | undefined;
|
|
5573
|
+
technicalName: string;
|
|
5574
|
+
brand: {
|
|
5575
|
+
/**
|
|
5576
|
+
* @description Resource identifier
|
|
5577
|
+
* @example 6a577711abc1ce71383d3e10
|
|
5578
|
+
*/
|
|
5579
|
+
id: string;
|
|
5580
|
+
/** @example Pokémon */
|
|
5581
|
+
name: string;
|
|
5582
|
+
/** @example pokemon */
|
|
5583
|
+
technicalName: string;
|
|
5584
|
+
/**
|
|
5585
|
+
* Format: date-time
|
|
5586
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
5587
|
+
*/
|
|
5588
|
+
createdAt: string;
|
|
5589
|
+
/**
|
|
5590
|
+
* Format: date-time
|
|
5591
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
5592
|
+
*/
|
|
5593
|
+
updatedAt: string;
|
|
5594
|
+
};
|
|
5595
|
+
manufacturer: string;
|
|
5596
|
+
modelNumber: string | undefined;
|
|
5597
|
+
category: {
|
|
5598
|
+
/**
|
|
5599
|
+
* @description Resource identifier
|
|
5600
|
+
* @example 6a577711abc1ce71383d3e10
|
|
5601
|
+
*/
|
|
5602
|
+
id: string;
|
|
5603
|
+
/** @example Booster Box */
|
|
5604
|
+
name: string;
|
|
5605
|
+
/** @example booster-box */
|
|
5606
|
+
technicalName: string;
|
|
5607
|
+
} | undefined;
|
|
5608
|
+
expansion: {
|
|
5609
|
+
/**
|
|
5610
|
+
* @description Resource identifier
|
|
5611
|
+
* @example 6a577711abc1ce71383d3e10
|
|
5612
|
+
*/
|
|
5613
|
+
id: string;
|
|
5614
|
+
/** @example Mega Evolution 30th Celebration */
|
|
5615
|
+
name: string;
|
|
5616
|
+
/** @example 30th Celebration */
|
|
5617
|
+
shortName: string;
|
|
5618
|
+
/** @example jpn-mega-evolution-30th-celebration */
|
|
5619
|
+
technicalName: string;
|
|
5620
|
+
/**
|
|
5621
|
+
* @description Printing language of the item
|
|
5622
|
+
* @example JPN
|
|
5623
|
+
* @enum {string}
|
|
5624
|
+
*/
|
|
5625
|
+
language: "ENG" | "JPN" | "CHI";
|
|
5626
|
+
/** @example m6a */
|
|
5627
|
+
code: string | undefined;
|
|
5628
|
+
/** @example m6a */
|
|
5629
|
+
cardCode: string | undefined;
|
|
5630
|
+
/** @example Mega Evolution */
|
|
5631
|
+
seriesName: string | undefined;
|
|
5632
|
+
/**
|
|
5633
|
+
* Format: date-time
|
|
5634
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
5635
|
+
*/
|
|
5636
|
+
releaseDate: string | undefined;
|
|
5637
|
+
/**
|
|
5638
|
+
* @description Absolute asset URL, or null when absent
|
|
5639
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
5640
|
+
*/
|
|
5641
|
+
logoUrl: string | undefined;
|
|
5642
|
+
/**
|
|
5643
|
+
* @description Absolute asset URL, or null when absent
|
|
5644
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
5645
|
+
*/
|
|
5646
|
+
symbolUrl: string | undefined;
|
|
5647
|
+
/**
|
|
5648
|
+
* @description Absolute asset URL, or null when absent
|
|
5649
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
5650
|
+
*/
|
|
5651
|
+
imageUrl: string | undefined;
|
|
5652
|
+
} | undefined;
|
|
5653
|
+
/**
|
|
5654
|
+
* @description Printing language of the item
|
|
5655
|
+
* @example JPN
|
|
5656
|
+
* @enum {string|null}
|
|
5657
|
+
*/
|
|
5658
|
+
language: "ENG" | "JPN" | "CHI" | undefined;
|
|
5659
|
+
alternativeNames: {
|
|
5660
|
+
name: string;
|
|
5661
|
+
shortName: string | undefined;
|
|
5662
|
+
}[];
|
|
5663
|
+
supportsMultipackPricing: boolean;
|
|
5664
|
+
/**
|
|
5665
|
+
* @description Absolute asset URL, or null when absent
|
|
5666
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
5667
|
+
*/
|
|
5668
|
+
imageUrl: string | undefined;
|
|
5669
|
+
/**
|
|
5670
|
+
* @description Cheapest current shop price, in SEK
|
|
5671
|
+
* @example 149.5
|
|
5672
|
+
*/
|
|
5673
|
+
retailPrice: number | undefined;
|
|
5674
|
+
/**
|
|
5675
|
+
* @description Estimated market value, in SEK
|
|
5676
|
+
* @example 149.5
|
|
5677
|
+
*/
|
|
5678
|
+
estimatedValue: number | undefined;
|
|
5679
|
+
/** @description Active shops currently tracking this item */
|
|
5680
|
+
shopCount: number;
|
|
5681
|
+
/** @description Observations the estimate rests on */
|
|
5682
|
+
pricingDataPoints: number;
|
|
5683
|
+
/**
|
|
5684
|
+
* Format: date-time
|
|
5685
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
5686
|
+
*/
|
|
5687
|
+
pricingUpdatedAt: string | undefined;
|
|
5688
|
+
/**
|
|
5689
|
+
* Format: date-time
|
|
5690
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
5691
|
+
*/
|
|
5692
|
+
createdAt: string;
|
|
5693
|
+
/**
|
|
5694
|
+
* Format: date-time
|
|
5695
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
5696
|
+
*/
|
|
5697
|
+
updatedAt: string;
|
|
5698
|
+
/** @enum {string} */
|
|
5699
|
+
kind: "card";
|
|
5700
|
+
/** @example 4/102 */
|
|
5701
|
+
cardNumber: string;
|
|
5702
|
+
/** @example Rare Holo */
|
|
5703
|
+
rarity: string | undefined;
|
|
5704
|
+
artist: string | undefined;
|
|
5705
|
+
cardmarketId: string | undefined;
|
|
5706
|
+
tcgplayerId: string | undefined;
|
|
5707
|
+
variants: {
|
|
5708
|
+
normal: boolean;
|
|
5709
|
+
holo: boolean;
|
|
5710
|
+
reverse: boolean;
|
|
5711
|
+
firstEdition: boolean;
|
|
5712
|
+
wPromo: boolean;
|
|
5713
|
+
} | undefined;
|
|
5714
|
+
prisjaktId: string | undefined;
|
|
5715
|
+
} | {
|
|
5716
|
+
/**
|
|
5717
|
+
* @description Resource identifier
|
|
5718
|
+
* @example 6a577711abc1ce71383d3e10
|
|
5719
|
+
*/
|
|
5720
|
+
id: string;
|
|
5721
|
+
name: string;
|
|
5722
|
+
shortName: string | undefined;
|
|
5723
|
+
technicalName: string;
|
|
5724
|
+
brand: {
|
|
5725
|
+
/**
|
|
5726
|
+
* @description Resource identifier
|
|
5727
|
+
* @example 6a577711abc1ce71383d3e10
|
|
5728
|
+
*/
|
|
5729
|
+
id: string;
|
|
5730
|
+
/** @example Pokémon */
|
|
5731
|
+
name: string;
|
|
5732
|
+
/** @example pokemon */
|
|
5733
|
+
technicalName: string;
|
|
5734
|
+
/**
|
|
5735
|
+
* Format: date-time
|
|
5736
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
5737
|
+
*/
|
|
5738
|
+
createdAt: string;
|
|
5739
|
+
/**
|
|
5740
|
+
* Format: date-time
|
|
5741
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
5742
|
+
*/
|
|
5743
|
+
updatedAt: string;
|
|
5744
|
+
};
|
|
5745
|
+
manufacturer: string;
|
|
5746
|
+
modelNumber: string | undefined;
|
|
5747
|
+
category: {
|
|
5748
|
+
/**
|
|
5749
|
+
* @description Resource identifier
|
|
5750
|
+
* @example 6a577711abc1ce71383d3e10
|
|
5751
|
+
*/
|
|
5752
|
+
id: string;
|
|
5753
|
+
/** @example Booster Box */
|
|
5754
|
+
name: string;
|
|
5755
|
+
/** @example booster-box */
|
|
5756
|
+
technicalName: string;
|
|
5757
|
+
} | undefined;
|
|
5758
|
+
expansion: {
|
|
5759
|
+
/**
|
|
5760
|
+
* @description Resource identifier
|
|
5761
|
+
* @example 6a577711abc1ce71383d3e10
|
|
5762
|
+
*/
|
|
5763
|
+
id: string;
|
|
5764
|
+
/** @example Mega Evolution 30th Celebration */
|
|
5765
|
+
name: string;
|
|
5766
|
+
/** @example 30th Celebration */
|
|
5767
|
+
shortName: string;
|
|
5768
|
+
/** @example jpn-mega-evolution-30th-celebration */
|
|
5769
|
+
technicalName: string;
|
|
5770
|
+
/**
|
|
5771
|
+
* @description Printing language of the item
|
|
5772
|
+
* @example JPN
|
|
5773
|
+
* @enum {string}
|
|
5774
|
+
*/
|
|
5775
|
+
language: "ENG" | "JPN" | "CHI";
|
|
5776
|
+
/** @example m6a */
|
|
5777
|
+
code: string | undefined;
|
|
5778
|
+
/** @example m6a */
|
|
5779
|
+
cardCode: string | undefined;
|
|
5780
|
+
/** @example Mega Evolution */
|
|
5781
|
+
seriesName: string | undefined;
|
|
5782
|
+
/**
|
|
5783
|
+
* Format: date-time
|
|
5784
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
5785
|
+
*/
|
|
5786
|
+
releaseDate: string | undefined;
|
|
5787
|
+
/**
|
|
5788
|
+
* @description Absolute asset URL, or null when absent
|
|
5789
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
5790
|
+
*/
|
|
5791
|
+
logoUrl: string | undefined;
|
|
5792
|
+
/**
|
|
5793
|
+
* @description Absolute asset URL, or null when absent
|
|
5794
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
5795
|
+
*/
|
|
5796
|
+
symbolUrl: string | undefined;
|
|
5797
|
+
/**
|
|
5798
|
+
* @description Absolute asset URL, or null when absent
|
|
5799
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
5800
|
+
*/
|
|
5801
|
+
imageUrl: string | undefined;
|
|
5802
|
+
} | undefined;
|
|
5803
|
+
/**
|
|
5804
|
+
* @description Printing language of the item
|
|
5805
|
+
* @example JPN
|
|
5806
|
+
* @enum {string|null}
|
|
5807
|
+
*/
|
|
5808
|
+
language: "ENG" | "JPN" | "CHI" | undefined;
|
|
5809
|
+
alternativeNames: {
|
|
5810
|
+
name: string;
|
|
5811
|
+
shortName: string | undefined;
|
|
5812
|
+
}[];
|
|
5813
|
+
supportsMultipackPricing: boolean;
|
|
5814
|
+
/**
|
|
5815
|
+
* @description Absolute asset URL, or null when absent
|
|
5816
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
5817
|
+
*/
|
|
5818
|
+
imageUrl: string | undefined;
|
|
5819
|
+
/**
|
|
5820
|
+
* @description Cheapest current shop price, in SEK
|
|
5821
|
+
* @example 149.5
|
|
5822
|
+
*/
|
|
5823
|
+
retailPrice: number | undefined;
|
|
5824
|
+
/**
|
|
5825
|
+
* @description Estimated market value, in SEK
|
|
5826
|
+
* @example 149.5
|
|
5827
|
+
*/
|
|
5828
|
+
estimatedValue: number | undefined;
|
|
5829
|
+
/** @description Active shops currently tracking this item */
|
|
5830
|
+
shopCount: number;
|
|
5831
|
+
/** @description Observations the estimate rests on */
|
|
5832
|
+
pricingDataPoints: number;
|
|
5833
|
+
/**
|
|
5834
|
+
* Format: date-time
|
|
5835
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
5836
|
+
*/
|
|
5837
|
+
pricingUpdatedAt: string | undefined;
|
|
5838
|
+
/**
|
|
5839
|
+
* Format: date-time
|
|
5840
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
5841
|
+
*/
|
|
5842
|
+
createdAt: string;
|
|
5843
|
+
/**
|
|
5844
|
+
* Format: date-time
|
|
5845
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
5846
|
+
*/
|
|
5847
|
+
updatedAt: string;
|
|
5848
|
+
/** @enum {string} */
|
|
5849
|
+
kind: "sealed";
|
|
5850
|
+
upc: string | undefined;
|
|
5851
|
+
asin: string | undefined;
|
|
5852
|
+
epid: string | undefined;
|
|
5853
|
+
priceChartingId: string | undefined;
|
|
5854
|
+
prisjaktId: string | undefined;
|
|
5855
|
+
};
|
|
5856
|
+
type VariantStatsSummary = {
|
|
5857
|
+
/** @description Distinct cardType/condition/company/grade combinations */
|
|
5858
|
+
variantCount: number;
|
|
5859
|
+
looseCount: number;
|
|
5860
|
+
gradedCount: number;
|
|
5861
|
+
};
|
|
5862
|
+
/** Response of `client.priceStats.product()`. */
|
|
5863
|
+
type ItemStats = {
|
|
5864
|
+
item: {
|
|
5865
|
+
/**
|
|
5866
|
+
* @description Resource identifier
|
|
5867
|
+
* @example 6a577711abc1ce71383d3e10
|
|
5868
|
+
*/
|
|
5869
|
+
id: string;
|
|
5870
|
+
name: string;
|
|
5871
|
+
shortName: string | undefined;
|
|
5872
|
+
technicalName: string;
|
|
5873
|
+
brand: {
|
|
5874
|
+
/**
|
|
5875
|
+
* @description Resource identifier
|
|
5876
|
+
* @example 6a577711abc1ce71383d3e10
|
|
5877
|
+
*/
|
|
5878
|
+
id: string;
|
|
5879
|
+
/** @example Pokémon */
|
|
5880
|
+
name: string;
|
|
5881
|
+
/** @example pokemon */
|
|
5882
|
+
technicalName: string;
|
|
5883
|
+
/**
|
|
5884
|
+
* Format: date-time
|
|
5885
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
5886
|
+
*/
|
|
5887
|
+
createdAt: string;
|
|
5888
|
+
/**
|
|
5889
|
+
* Format: date-time
|
|
5890
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
5891
|
+
*/
|
|
5892
|
+
updatedAt: string;
|
|
5893
|
+
};
|
|
5894
|
+
manufacturer: string;
|
|
5895
|
+
modelNumber: string | undefined;
|
|
5896
|
+
category: {
|
|
5897
|
+
/**
|
|
5898
|
+
* @description Resource identifier
|
|
5899
|
+
* @example 6a577711abc1ce71383d3e10
|
|
5900
|
+
*/
|
|
5901
|
+
id: string;
|
|
5902
|
+
/** @example Booster Box */
|
|
5903
|
+
name: string;
|
|
5904
|
+
/** @example booster-box */
|
|
5905
|
+
technicalName: string;
|
|
5906
|
+
} | undefined;
|
|
5907
|
+
expansion: {
|
|
5908
|
+
/**
|
|
5909
|
+
* @description Resource identifier
|
|
5910
|
+
* @example 6a577711abc1ce71383d3e10
|
|
5911
|
+
*/
|
|
5912
|
+
id: string;
|
|
5913
|
+
/** @example Mega Evolution 30th Celebration */
|
|
5914
|
+
name: string;
|
|
5915
|
+
/** @example 30th Celebration */
|
|
5916
|
+
shortName: string;
|
|
5917
|
+
/** @example jpn-mega-evolution-30th-celebration */
|
|
5918
|
+
technicalName: string;
|
|
5919
|
+
/**
|
|
5920
|
+
* @description Printing language of the item
|
|
5921
|
+
* @example JPN
|
|
5922
|
+
* @enum {string}
|
|
5923
|
+
*/
|
|
5924
|
+
language: "ENG" | "JPN" | "CHI";
|
|
5925
|
+
/** @example m6a */
|
|
5926
|
+
code: string | undefined;
|
|
5927
|
+
/** @example m6a */
|
|
5928
|
+
cardCode: string | undefined;
|
|
5929
|
+
/** @example Mega Evolution */
|
|
5930
|
+
seriesName: string | undefined;
|
|
5931
|
+
/**
|
|
5932
|
+
* Format: date-time
|
|
5933
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
5934
|
+
*/
|
|
5935
|
+
releaseDate: string | undefined;
|
|
5936
|
+
/**
|
|
5937
|
+
* @description Absolute asset URL, or null when absent
|
|
5938
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
5939
|
+
*/
|
|
5940
|
+
logoUrl: string | undefined;
|
|
5941
|
+
/**
|
|
5942
|
+
* @description Absolute asset URL, or null when absent
|
|
5943
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
5944
|
+
*/
|
|
5945
|
+
symbolUrl: string | undefined;
|
|
5946
|
+
/**
|
|
5947
|
+
* @description Absolute asset URL, or null when absent
|
|
5948
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
5949
|
+
*/
|
|
5950
|
+
imageUrl: string | undefined;
|
|
5951
|
+
} | undefined;
|
|
5952
|
+
/**
|
|
5953
|
+
* @description Printing language of the item
|
|
5954
|
+
* @example JPN
|
|
5955
|
+
* @enum {string|null}
|
|
5956
|
+
*/
|
|
5957
|
+
language: "ENG" | "JPN" | "CHI" | undefined;
|
|
5958
|
+
alternativeNames: {
|
|
5959
|
+
name: string;
|
|
5960
|
+
shortName: string | undefined;
|
|
5961
|
+
}[];
|
|
5962
|
+
supportsMultipackPricing: boolean;
|
|
5963
|
+
/**
|
|
5964
|
+
* @description Absolute asset URL, or null when absent
|
|
5965
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
5966
|
+
*/
|
|
5967
|
+
imageUrl: string | undefined;
|
|
5968
|
+
/**
|
|
5969
|
+
* @description Cheapest current shop price, in SEK
|
|
5970
|
+
* @example 149.5
|
|
5971
|
+
*/
|
|
5972
|
+
retailPrice: number | undefined;
|
|
5973
|
+
/**
|
|
5974
|
+
* @description Estimated market value, in SEK
|
|
5975
|
+
* @example 149.5
|
|
5976
|
+
*/
|
|
5977
|
+
estimatedValue: number | undefined;
|
|
5978
|
+
/** @description Active shops currently tracking this item */
|
|
5979
|
+
shopCount: number;
|
|
5980
|
+
/** @description Observations the estimate rests on */
|
|
5981
|
+
pricingDataPoints: number;
|
|
5982
|
+
/**
|
|
5983
|
+
* Format: date-time
|
|
5984
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
5985
|
+
*/
|
|
5986
|
+
pricingUpdatedAt: string | undefined;
|
|
5987
|
+
/**
|
|
5988
|
+
* Format: date-time
|
|
5989
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
5990
|
+
*/
|
|
5991
|
+
createdAt: string;
|
|
5992
|
+
/**
|
|
5993
|
+
* Format: date-time
|
|
5994
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
5995
|
+
*/
|
|
5996
|
+
updatedAt: string;
|
|
5997
|
+
/** @enum {string} */
|
|
5998
|
+
kind: "card";
|
|
5999
|
+
/** @example 4/102 */
|
|
6000
|
+
cardNumber: string;
|
|
6001
|
+
/** @example Rare Holo */
|
|
6002
|
+
rarity: string | undefined;
|
|
6003
|
+
artist: string | undefined;
|
|
6004
|
+
cardmarketId: string | undefined;
|
|
6005
|
+
tcgplayerId: string | undefined;
|
|
6006
|
+
variants: {
|
|
6007
|
+
normal: boolean;
|
|
6008
|
+
holo: boolean;
|
|
6009
|
+
reverse: boolean;
|
|
6010
|
+
firstEdition: boolean;
|
|
6011
|
+
wPromo: boolean;
|
|
6012
|
+
} | undefined;
|
|
6013
|
+
prisjaktId: string | undefined;
|
|
6014
|
+
} | {
|
|
6015
|
+
/**
|
|
6016
|
+
* @description Resource identifier
|
|
6017
|
+
* @example 6a577711abc1ce71383d3e10
|
|
6018
|
+
*/
|
|
6019
|
+
id: string;
|
|
6020
|
+
name: string;
|
|
6021
|
+
shortName: string | undefined;
|
|
6022
|
+
technicalName: string;
|
|
6023
|
+
brand: {
|
|
6024
|
+
/**
|
|
6025
|
+
* @description Resource identifier
|
|
6026
|
+
* @example 6a577711abc1ce71383d3e10
|
|
6027
|
+
*/
|
|
6028
|
+
id: string;
|
|
6029
|
+
/** @example Pokémon */
|
|
6030
|
+
name: string;
|
|
6031
|
+
/** @example pokemon */
|
|
6032
|
+
technicalName: string;
|
|
6033
|
+
/**
|
|
6034
|
+
* Format: date-time
|
|
6035
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
6036
|
+
*/
|
|
6037
|
+
createdAt: string;
|
|
6038
|
+
/**
|
|
6039
|
+
* Format: date-time
|
|
6040
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
6041
|
+
*/
|
|
6042
|
+
updatedAt: string;
|
|
6043
|
+
};
|
|
6044
|
+
manufacturer: string;
|
|
6045
|
+
modelNumber: string | undefined;
|
|
6046
|
+
category: {
|
|
6047
|
+
/**
|
|
6048
|
+
* @description Resource identifier
|
|
6049
|
+
* @example 6a577711abc1ce71383d3e10
|
|
6050
|
+
*/
|
|
6051
|
+
id: string;
|
|
6052
|
+
/** @example Booster Box */
|
|
6053
|
+
name: string;
|
|
6054
|
+
/** @example booster-box */
|
|
6055
|
+
technicalName: string;
|
|
6056
|
+
} | undefined;
|
|
6057
|
+
expansion: {
|
|
6058
|
+
/**
|
|
6059
|
+
* @description Resource identifier
|
|
6060
|
+
* @example 6a577711abc1ce71383d3e10
|
|
6061
|
+
*/
|
|
6062
|
+
id: string;
|
|
6063
|
+
/** @example Mega Evolution 30th Celebration */
|
|
6064
|
+
name: string;
|
|
6065
|
+
/** @example 30th Celebration */
|
|
6066
|
+
shortName: string;
|
|
6067
|
+
/** @example jpn-mega-evolution-30th-celebration */
|
|
6068
|
+
technicalName: string;
|
|
6069
|
+
/**
|
|
6070
|
+
* @description Printing language of the item
|
|
6071
|
+
* @example JPN
|
|
6072
|
+
* @enum {string}
|
|
6073
|
+
*/
|
|
6074
|
+
language: "ENG" | "JPN" | "CHI";
|
|
6075
|
+
/** @example m6a */
|
|
6076
|
+
code: string | undefined;
|
|
6077
|
+
/** @example m6a */
|
|
6078
|
+
cardCode: string | undefined;
|
|
6079
|
+
/** @example Mega Evolution */
|
|
6080
|
+
seriesName: string | undefined;
|
|
6081
|
+
/**
|
|
6082
|
+
* Format: date-time
|
|
6083
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
6084
|
+
*/
|
|
6085
|
+
releaseDate: string | undefined;
|
|
6086
|
+
/**
|
|
6087
|
+
* @description Absolute asset URL, or null when absent
|
|
6088
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
6089
|
+
*/
|
|
6090
|
+
logoUrl: string | undefined;
|
|
6091
|
+
/**
|
|
6092
|
+
* @description Absolute asset URL, or null when absent
|
|
6093
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
6094
|
+
*/
|
|
6095
|
+
symbolUrl: string | undefined;
|
|
6096
|
+
/**
|
|
6097
|
+
* @description Absolute asset URL, or null when absent
|
|
6098
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
6099
|
+
*/
|
|
6100
|
+
imageUrl: string | undefined;
|
|
6101
|
+
} | undefined;
|
|
6102
|
+
/**
|
|
6103
|
+
* @description Printing language of the item
|
|
6104
|
+
* @example JPN
|
|
6105
|
+
* @enum {string|null}
|
|
6106
|
+
*/
|
|
6107
|
+
language: "ENG" | "JPN" | "CHI" | undefined;
|
|
6108
|
+
alternativeNames: {
|
|
6109
|
+
name: string;
|
|
6110
|
+
shortName: string | undefined;
|
|
6111
|
+
}[];
|
|
6112
|
+
supportsMultipackPricing: boolean;
|
|
6113
|
+
/**
|
|
6114
|
+
* @description Absolute asset URL, or null when absent
|
|
6115
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
6116
|
+
*/
|
|
6117
|
+
imageUrl: string | undefined;
|
|
6118
|
+
/**
|
|
6119
|
+
* @description Cheapest current shop price, in SEK
|
|
6120
|
+
* @example 149.5
|
|
6121
|
+
*/
|
|
6122
|
+
retailPrice: number | undefined;
|
|
6123
|
+
/**
|
|
6124
|
+
* @description Estimated market value, in SEK
|
|
6125
|
+
* @example 149.5
|
|
6126
|
+
*/
|
|
6127
|
+
estimatedValue: number | undefined;
|
|
6128
|
+
/** @description Active shops currently tracking this item */
|
|
6129
|
+
shopCount: number;
|
|
6130
|
+
/** @description Observations the estimate rests on */
|
|
6131
|
+
pricingDataPoints: number;
|
|
6132
|
+
/**
|
|
6133
|
+
* Format: date-time
|
|
6134
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
6135
|
+
*/
|
|
6136
|
+
pricingUpdatedAt: string | undefined;
|
|
6137
|
+
/**
|
|
6138
|
+
* Format: date-time
|
|
6139
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
6140
|
+
*/
|
|
6141
|
+
createdAt: string;
|
|
6142
|
+
/**
|
|
6143
|
+
* Format: date-time
|
|
6144
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
6145
|
+
*/
|
|
6146
|
+
updatedAt: string;
|
|
6147
|
+
/** @enum {string} */
|
|
6148
|
+
kind: "sealed";
|
|
6149
|
+
upc: string | undefined;
|
|
6150
|
+
asin: string | undefined;
|
|
6151
|
+
epid: string | undefined;
|
|
6152
|
+
priceChartingId: string | undefined;
|
|
6153
|
+
prisjaktId: string | undefined;
|
|
6154
|
+
};
|
|
6155
|
+
dailyStats: {
|
|
6156
|
+
/**
|
|
6157
|
+
* Format: date-time
|
|
6158
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
6159
|
+
*/
|
|
6160
|
+
statDate: string;
|
|
6161
|
+
/** @example 149.5 */
|
|
6162
|
+
averagePrice: number;
|
|
6163
|
+
}[];
|
|
6164
|
+
estimate: {
|
|
6165
|
+
/** @example 149.5 */
|
|
6166
|
+
estimatedValue: number | undefined;
|
|
6167
|
+
/**
|
|
6168
|
+
* Format: date-time
|
|
6169
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
6170
|
+
*/
|
|
6171
|
+
estimateUpdatedAt: string | undefined;
|
|
6172
|
+
dataPointCount: number;
|
|
6173
|
+
};
|
|
6174
|
+
variantStats: {
|
|
6175
|
+
/** @description Distinct cardType/condition/company/grade combinations */
|
|
6176
|
+
variantCount: number;
|
|
6177
|
+
looseCount: number;
|
|
6178
|
+
gradedCount: number;
|
|
6179
|
+
};
|
|
6180
|
+
};
|
|
6181
|
+
/** Response of `client.priceStats.productFull()`: everything `product()` has, plus the item's
|
|
6182
|
+
* current shop matches. */
|
|
6183
|
+
type ItemFullStats = {
|
|
6184
|
+
item: {
|
|
6185
|
+
/**
|
|
6186
|
+
* @description Resource identifier
|
|
6187
|
+
* @example 6a577711abc1ce71383d3e10
|
|
6188
|
+
*/
|
|
6189
|
+
id: string;
|
|
6190
|
+
name: string;
|
|
6191
|
+
shortName: string | undefined;
|
|
6192
|
+
technicalName: string;
|
|
6193
|
+
brand: {
|
|
6194
|
+
/**
|
|
6195
|
+
* @description Resource identifier
|
|
6196
|
+
* @example 6a577711abc1ce71383d3e10
|
|
6197
|
+
*/
|
|
6198
|
+
id: string;
|
|
6199
|
+
/** @example Pokémon */
|
|
6200
|
+
name: string;
|
|
6201
|
+
/** @example pokemon */
|
|
6202
|
+
technicalName: string;
|
|
6203
|
+
/**
|
|
6204
|
+
* Format: date-time
|
|
6205
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
6206
|
+
*/
|
|
6207
|
+
createdAt: string;
|
|
6208
|
+
/**
|
|
6209
|
+
* Format: date-time
|
|
6210
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
6211
|
+
*/
|
|
6212
|
+
updatedAt: string;
|
|
6213
|
+
};
|
|
6214
|
+
manufacturer: string;
|
|
6215
|
+
modelNumber: string | undefined;
|
|
6216
|
+
category: {
|
|
6217
|
+
/**
|
|
6218
|
+
* @description Resource identifier
|
|
6219
|
+
* @example 6a577711abc1ce71383d3e10
|
|
6220
|
+
*/
|
|
6221
|
+
id: string;
|
|
6222
|
+
/** @example Booster Box */
|
|
6223
|
+
name: string;
|
|
6224
|
+
/** @example booster-box */
|
|
6225
|
+
technicalName: string;
|
|
6226
|
+
} | undefined;
|
|
6227
|
+
expansion: {
|
|
6228
|
+
/**
|
|
6229
|
+
* @description Resource identifier
|
|
6230
|
+
* @example 6a577711abc1ce71383d3e10
|
|
6231
|
+
*/
|
|
6232
|
+
id: string;
|
|
6233
|
+
/** @example Mega Evolution 30th Celebration */
|
|
6234
|
+
name: string;
|
|
6235
|
+
/** @example 30th Celebration */
|
|
6236
|
+
shortName: string;
|
|
6237
|
+
/** @example jpn-mega-evolution-30th-celebration */
|
|
6238
|
+
technicalName: string;
|
|
6239
|
+
/**
|
|
6240
|
+
* @description Printing language of the item
|
|
6241
|
+
* @example JPN
|
|
6242
|
+
* @enum {string}
|
|
6243
|
+
*/
|
|
6244
|
+
language: "ENG" | "JPN" | "CHI";
|
|
6245
|
+
/** @example m6a */
|
|
6246
|
+
code: string | undefined;
|
|
6247
|
+
/** @example m6a */
|
|
6248
|
+
cardCode: string | undefined;
|
|
6249
|
+
/** @example Mega Evolution */
|
|
6250
|
+
seriesName: string | undefined;
|
|
6251
|
+
/**
|
|
6252
|
+
* Format: date-time
|
|
6253
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
6254
|
+
*/
|
|
6255
|
+
releaseDate: string | undefined;
|
|
6256
|
+
/**
|
|
6257
|
+
* @description Absolute asset URL, or null when absent
|
|
6258
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
6259
|
+
*/
|
|
6260
|
+
logoUrl: string | undefined;
|
|
6261
|
+
/**
|
|
6262
|
+
* @description Absolute asset URL, or null when absent
|
|
6263
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
6264
|
+
*/
|
|
6265
|
+
symbolUrl: string | undefined;
|
|
6266
|
+
/**
|
|
6267
|
+
* @description Absolute asset URL, or null when absent
|
|
6268
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
6269
|
+
*/
|
|
6270
|
+
imageUrl: string | undefined;
|
|
6271
|
+
} | undefined;
|
|
6272
|
+
/**
|
|
6273
|
+
* @description Printing language of the item
|
|
6274
|
+
* @example JPN
|
|
6275
|
+
* @enum {string|null}
|
|
6276
|
+
*/
|
|
6277
|
+
language: "ENG" | "JPN" | "CHI" | undefined;
|
|
6278
|
+
alternativeNames: {
|
|
6279
|
+
name: string;
|
|
6280
|
+
shortName: string | undefined;
|
|
6281
|
+
}[];
|
|
6282
|
+
supportsMultipackPricing: boolean;
|
|
6283
|
+
/**
|
|
6284
|
+
* @description Absolute asset URL, or null when absent
|
|
6285
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
6286
|
+
*/
|
|
6287
|
+
imageUrl: string | undefined;
|
|
6288
|
+
/**
|
|
6289
|
+
* @description Cheapest current shop price, in SEK
|
|
6290
|
+
* @example 149.5
|
|
6291
|
+
*/
|
|
6292
|
+
retailPrice: number | undefined;
|
|
6293
|
+
/**
|
|
6294
|
+
* @description Estimated market value, in SEK
|
|
6295
|
+
* @example 149.5
|
|
6296
|
+
*/
|
|
6297
|
+
estimatedValue: number | undefined;
|
|
6298
|
+
/** @description Active shops currently tracking this item */
|
|
6299
|
+
shopCount: number;
|
|
6300
|
+
/** @description Observations the estimate rests on */
|
|
6301
|
+
pricingDataPoints: number;
|
|
6302
|
+
/**
|
|
6303
|
+
* Format: date-time
|
|
6304
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
6305
|
+
*/
|
|
6306
|
+
pricingUpdatedAt: string | undefined;
|
|
6307
|
+
/**
|
|
6308
|
+
* Format: date-time
|
|
6309
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
6310
|
+
*/
|
|
6311
|
+
createdAt: string;
|
|
6312
|
+
/**
|
|
6313
|
+
* Format: date-time
|
|
6314
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
6315
|
+
*/
|
|
6316
|
+
updatedAt: string;
|
|
6317
|
+
/** @enum {string} */
|
|
6318
|
+
kind: "card";
|
|
6319
|
+
/** @example 4/102 */
|
|
6320
|
+
cardNumber: string;
|
|
6321
|
+
/** @example Rare Holo */
|
|
6322
|
+
rarity: string | undefined;
|
|
6323
|
+
artist: string | undefined;
|
|
6324
|
+
cardmarketId: string | undefined;
|
|
6325
|
+
tcgplayerId: string | undefined;
|
|
6326
|
+
variants: {
|
|
6327
|
+
normal: boolean;
|
|
6328
|
+
holo: boolean;
|
|
6329
|
+
reverse: boolean;
|
|
6330
|
+
firstEdition: boolean;
|
|
6331
|
+
wPromo: boolean;
|
|
6332
|
+
} | undefined;
|
|
6333
|
+
prisjaktId: string | undefined;
|
|
6334
|
+
} | {
|
|
6335
|
+
/**
|
|
6336
|
+
* @description Resource identifier
|
|
6337
|
+
* @example 6a577711abc1ce71383d3e10
|
|
6338
|
+
*/
|
|
6339
|
+
id: string;
|
|
6340
|
+
name: string;
|
|
6341
|
+
shortName: string | undefined;
|
|
6342
|
+
technicalName: string;
|
|
6343
|
+
brand: {
|
|
6344
|
+
/**
|
|
6345
|
+
* @description Resource identifier
|
|
6346
|
+
* @example 6a577711abc1ce71383d3e10
|
|
6347
|
+
*/
|
|
6348
|
+
id: string;
|
|
6349
|
+
/** @example Pokémon */
|
|
6350
|
+
name: string;
|
|
6351
|
+
/** @example pokemon */
|
|
6352
|
+
technicalName: string;
|
|
6353
|
+
/**
|
|
6354
|
+
* Format: date-time
|
|
6355
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
6356
|
+
*/
|
|
6357
|
+
createdAt: string;
|
|
6358
|
+
/**
|
|
6359
|
+
* Format: date-time
|
|
6360
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
6361
|
+
*/
|
|
6362
|
+
updatedAt: string;
|
|
6363
|
+
};
|
|
6364
|
+
manufacturer: string;
|
|
6365
|
+
modelNumber: string | undefined;
|
|
6366
|
+
category: {
|
|
6367
|
+
/**
|
|
6368
|
+
* @description Resource identifier
|
|
6369
|
+
* @example 6a577711abc1ce71383d3e10
|
|
6370
|
+
*/
|
|
6371
|
+
id: string;
|
|
6372
|
+
/** @example Booster Box */
|
|
6373
|
+
name: string;
|
|
6374
|
+
/** @example booster-box */
|
|
6375
|
+
technicalName: string;
|
|
6376
|
+
} | undefined;
|
|
6377
|
+
expansion: {
|
|
6378
|
+
/**
|
|
6379
|
+
* @description Resource identifier
|
|
6380
|
+
* @example 6a577711abc1ce71383d3e10
|
|
6381
|
+
*/
|
|
6382
|
+
id: string;
|
|
6383
|
+
/** @example Mega Evolution 30th Celebration */
|
|
6384
|
+
name: string;
|
|
6385
|
+
/** @example 30th Celebration */
|
|
6386
|
+
shortName: string;
|
|
6387
|
+
/** @example jpn-mega-evolution-30th-celebration */
|
|
6388
|
+
technicalName: string;
|
|
6389
|
+
/**
|
|
6390
|
+
* @description Printing language of the item
|
|
6391
|
+
* @example JPN
|
|
6392
|
+
* @enum {string}
|
|
6393
|
+
*/
|
|
6394
|
+
language: "ENG" | "JPN" | "CHI";
|
|
6395
|
+
/** @example m6a */
|
|
6396
|
+
code: string | undefined;
|
|
6397
|
+
/** @example m6a */
|
|
6398
|
+
cardCode: string | undefined;
|
|
6399
|
+
/** @example Mega Evolution */
|
|
6400
|
+
seriesName: string | undefined;
|
|
6401
|
+
/**
|
|
6402
|
+
* Format: date-time
|
|
6403
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
6404
|
+
*/
|
|
6405
|
+
releaseDate: string | undefined;
|
|
6406
|
+
/**
|
|
6407
|
+
* @description Absolute asset URL, or null when absent
|
|
6408
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
6409
|
+
*/
|
|
6410
|
+
logoUrl: string | undefined;
|
|
6411
|
+
/**
|
|
6412
|
+
* @description Absolute asset URL, or null when absent
|
|
6413
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
6414
|
+
*/
|
|
6415
|
+
symbolUrl: string | undefined;
|
|
6416
|
+
/**
|
|
6417
|
+
* @description Absolute asset URL, or null when absent
|
|
6418
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
6419
|
+
*/
|
|
6420
|
+
imageUrl: string | undefined;
|
|
6421
|
+
} | undefined;
|
|
6422
|
+
/**
|
|
6423
|
+
* @description Printing language of the item
|
|
6424
|
+
* @example JPN
|
|
6425
|
+
* @enum {string|null}
|
|
6426
|
+
*/
|
|
6427
|
+
language: "ENG" | "JPN" | "CHI" | undefined;
|
|
6428
|
+
alternativeNames: {
|
|
6429
|
+
name: string;
|
|
6430
|
+
shortName: string | undefined;
|
|
6431
|
+
}[];
|
|
6432
|
+
supportsMultipackPricing: boolean;
|
|
6433
|
+
/**
|
|
6434
|
+
* @description Absolute asset URL, or null when absent
|
|
6435
|
+
* @example https://ik.imagekit.io/xgtytqdnv/expansions/example-image.webp
|
|
6436
|
+
*/
|
|
6437
|
+
imageUrl: string | undefined;
|
|
6438
|
+
/**
|
|
6439
|
+
* @description Cheapest current shop price, in SEK
|
|
6440
|
+
* @example 149.5
|
|
6441
|
+
*/
|
|
6442
|
+
retailPrice: number | undefined;
|
|
6443
|
+
/**
|
|
6444
|
+
* @description Estimated market value, in SEK
|
|
6445
|
+
* @example 149.5
|
|
6446
|
+
*/
|
|
6447
|
+
estimatedValue: number | undefined;
|
|
6448
|
+
/** @description Active shops currently tracking this item */
|
|
6449
|
+
shopCount: number;
|
|
6450
|
+
/** @description Observations the estimate rests on */
|
|
6451
|
+
pricingDataPoints: number;
|
|
6452
|
+
/**
|
|
6453
|
+
* Format: date-time
|
|
6454
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
6455
|
+
*/
|
|
6456
|
+
pricingUpdatedAt: string | undefined;
|
|
6457
|
+
/**
|
|
6458
|
+
* Format: date-time
|
|
6459
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
6460
|
+
*/
|
|
6461
|
+
createdAt: string;
|
|
6462
|
+
/**
|
|
6463
|
+
* Format: date-time
|
|
6464
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
6465
|
+
*/
|
|
6466
|
+
updatedAt: string;
|
|
6467
|
+
/** @enum {string} */
|
|
6468
|
+
kind: "sealed";
|
|
6469
|
+
upc: string | undefined;
|
|
6470
|
+
asin: string | undefined;
|
|
6471
|
+
epid: string | undefined;
|
|
6472
|
+
priceChartingId: string | undefined;
|
|
6473
|
+
prisjaktId: string | undefined;
|
|
6474
|
+
};
|
|
6475
|
+
stats: {
|
|
6476
|
+
dailyStats: {
|
|
6477
|
+
/**
|
|
6478
|
+
* Format: date-time
|
|
6479
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
6480
|
+
*/
|
|
6481
|
+
statDate: string;
|
|
6482
|
+
/** @example 149.5 */
|
|
6483
|
+
averagePrice: number;
|
|
6484
|
+
}[];
|
|
6485
|
+
variantStats: {
|
|
6486
|
+
/** @description Distinct cardType/condition/company/grade combinations */
|
|
6487
|
+
variantCount: number;
|
|
6488
|
+
looseCount: number;
|
|
6489
|
+
gradedCount: number;
|
|
6490
|
+
};
|
|
6491
|
+
};
|
|
6492
|
+
estimate: {
|
|
6493
|
+
/** @example 149.5 */
|
|
6494
|
+
estimatedValue: number | undefined;
|
|
6495
|
+
/**
|
|
6496
|
+
* Format: date-time
|
|
6497
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
6498
|
+
*/
|
|
6499
|
+
estimateUpdatedAt: string | undefined;
|
|
6500
|
+
dataPointCount: number;
|
|
6501
|
+
};
|
|
6502
|
+
shopMatches: {
|
|
6503
|
+
data: {
|
|
6504
|
+
/**
|
|
6505
|
+
* @description Resource identifier
|
|
6506
|
+
* @example 6a577711abc1ce71383d3e10
|
|
6507
|
+
*/
|
|
6508
|
+
id: string;
|
|
6509
|
+
shop: {
|
|
6510
|
+
/** @example cardlevels */
|
|
6511
|
+
technicalName: string;
|
|
6512
|
+
/** @example Cardlevels */
|
|
6513
|
+
name: string;
|
|
6514
|
+
delivery: {
|
|
6515
|
+
/** @example 149.5 */
|
|
6516
|
+
cost: number | undefined;
|
|
6517
|
+
currency: string | undefined;
|
|
6518
|
+
daysMin: number | undefined;
|
|
6519
|
+
daysMax: number | undefined;
|
|
6520
|
+
/** @example 149.5 */
|
|
6521
|
+
freeShippingThreshold: number | undefined;
|
|
6522
|
+
supportsLocalPickup: boolean | undefined;
|
|
6523
|
+
note: string | undefined;
|
|
6524
|
+
};
|
|
6525
|
+
};
|
|
6526
|
+
url: string;
|
|
6527
|
+
/**
|
|
6528
|
+
* @description Resource identifier
|
|
6529
|
+
* @example 6a577711abc1ce71383d3e10
|
|
6530
|
+
*/
|
|
6531
|
+
shopUrlId: string | undefined;
|
|
6532
|
+
/** @example 149.5 */
|
|
6533
|
+
price: number | undefined;
|
|
6534
|
+
/**
|
|
6535
|
+
* @description ISO-4217 currency code
|
|
6536
|
+
* @example SEK
|
|
6537
|
+
*/
|
|
6538
|
+
currency: string | undefined;
|
|
6539
|
+
inStock: boolean;
|
|
6540
|
+
inPreorder: boolean;
|
|
6541
|
+
inMonitor: boolean;
|
|
6542
|
+
isFullyBooked: boolean;
|
|
6543
|
+
scrapedName: string | undefined;
|
|
6544
|
+
scrapedType: string | undefined;
|
|
6545
|
+
matchScore: number | undefined;
|
|
6546
|
+
hasCategoryMismatch: boolean;
|
|
6547
|
+
/** @enum {string|null} */
|
|
6548
|
+
cardType: "loose" | "graded" | undefined;
|
|
6549
|
+
/** @enum {string|null} */
|
|
6550
|
+
itemCondition: "NM" | "LP" | "MP" | "HP" | "DMG" | undefined;
|
|
6551
|
+
/** @enum {string|null} */
|
|
6552
|
+
gradingCompany: "PSA" | "BGS" | "CGC" | "SGC" | "ACE" | "RAUKCARD" | "TAG" | "GMA" | undefined;
|
|
6553
|
+
grade: number | undefined;
|
|
6554
|
+
/**
|
|
6555
|
+
* Format: date-time
|
|
6556
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
6557
|
+
*/
|
|
6558
|
+
matchedAt: string;
|
|
6559
|
+
/**
|
|
6560
|
+
* Format: date-time
|
|
6561
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
6562
|
+
*/
|
|
6563
|
+
updatedAt: string;
|
|
6564
|
+
bargain: {
|
|
6565
|
+
discountPercent: number;
|
|
6566
|
+
/** @enum {string} */
|
|
6567
|
+
referenceSource: "retail" | "tradera" | "cardmarket";
|
|
6568
|
+
} | undefined;
|
|
6569
|
+
}[];
|
|
6570
|
+
pagination: {
|
|
6571
|
+
/** @description Total matching records, ignoring pagination */
|
|
6572
|
+
total: number;
|
|
6573
|
+
limit: number;
|
|
6574
|
+
skip: number;
|
|
6575
|
+
hasMore: boolean;
|
|
6576
|
+
};
|
|
6577
|
+
};
|
|
6578
|
+
};
|
|
6579
|
+
type VariantPriceStat = {
|
|
6580
|
+
/** @example 149.5 */
|
|
6581
|
+
averagePrice: number;
|
|
6582
|
+
dataPointCount: number;
|
|
6583
|
+
/**
|
|
6584
|
+
* Format: date-time
|
|
6585
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
6586
|
+
*/
|
|
6587
|
+
lastSaleDate: string;
|
|
6588
|
+
};
|
|
6589
|
+
/** Response of `client.priceStats.productByVariant()`. The generated shape keys `loose`/`graded`
|
|
6590
|
+
* by a bare `string` (JSON Schema `additionalProperties` doesn't carry an enum), re-keyed here by
|
|
6591
|
+
* `ItemCondition`/`GradingCompany` for real autocomplete. Only hand-written wrapper in this file.
|
|
6592
|
+
* `graded` has a second string-keyed level for grade (`10`, `9.5` etc, straight from a JSON key). */
|
|
6593
|
+
interface ItemVariantStats {
|
|
6594
|
+
item: {
|
|
6595
|
+
/**
|
|
6596
|
+
* @description Resource identifier
|
|
6597
|
+
* @example 6a577711abc1ce71383d3e10
|
|
6598
|
+
*/
|
|
6599
|
+
id: string;
|
|
6600
|
+
name: string;
|
|
6601
|
+
};
|
|
6602
|
+
variants: {
|
|
6603
|
+
loose: Partial<Record<ItemCondition, VariantPriceStat>>;
|
|
6604
|
+
graded: Partial<Record<GradingCompany, Record<string, VariantPriceStat>>>;
|
|
6605
|
+
};
|
|
6606
|
+
}
|
|
6607
|
+
type VariantSelector = {
|
|
6608
|
+
/** @enum {string|null} */
|
|
6609
|
+
cardType: "loose" | "graded" | undefined;
|
|
6610
|
+
/** @enum {string|null} */
|
|
6611
|
+
condition: "NM" | "LP" | "MP" | "HP" | "DMG" | undefined;
|
|
6612
|
+
/** @enum {string|null} */
|
|
6613
|
+
gradingCompany: "PSA" | "BGS" | "CGC" | "SGC" | "ACE" | "RAUKCARD" | "TAG" | "GMA" | undefined;
|
|
6614
|
+
grade: number | undefined;
|
|
6615
|
+
};
|
|
6616
|
+
/** Response of `client.priceStats.productDailyByVariant()`. */
|
|
6617
|
+
type ItemVariantDailyStats = {
|
|
6618
|
+
item: {
|
|
6619
|
+
/**
|
|
6620
|
+
* @description Resource identifier
|
|
6621
|
+
* @example 6a577711abc1ce71383d3e10
|
|
6622
|
+
*/
|
|
6623
|
+
id: string;
|
|
6624
|
+
name: string;
|
|
6625
|
+
};
|
|
6626
|
+
variant: {
|
|
6627
|
+
/** @enum {string|null} */
|
|
6628
|
+
cardType: "loose" | "graded" | undefined;
|
|
6629
|
+
/** @enum {string|null} */
|
|
6630
|
+
condition: "NM" | "LP" | "MP" | "HP" | "DMG" | undefined;
|
|
6631
|
+
/** @enum {string|null} */
|
|
6632
|
+
gradingCompany: "PSA" | "BGS" | "CGC" | "SGC" | "ACE" | "RAUKCARD" | "TAG" | "GMA" | undefined;
|
|
6633
|
+
grade: number | undefined;
|
|
6634
|
+
};
|
|
6635
|
+
dailyStats: {
|
|
6636
|
+
/**
|
|
6637
|
+
* Format: date-time
|
|
6638
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
6639
|
+
*/
|
|
6640
|
+
statDate: string;
|
|
6641
|
+
/** @example 149.5 */
|
|
6642
|
+
averagePrice: number;
|
|
6643
|
+
}[];
|
|
6644
|
+
};
|
|
6645
|
+
type ShopPricePoint = {
|
|
6646
|
+
/**
|
|
6647
|
+
* Format: date-time
|
|
6648
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
6649
|
+
*/
|
|
6650
|
+
snapshotDate: string;
|
|
6651
|
+
/** @example 149.5 */
|
|
6652
|
+
price: number;
|
|
6653
|
+
/**
|
|
6654
|
+
* @description ISO-4217 currency code
|
|
6655
|
+
* @example SEK
|
|
6656
|
+
*/
|
|
6657
|
+
currency: string;
|
|
6658
|
+
inStock: boolean;
|
|
6659
|
+
url: string;
|
|
6660
|
+
};
|
|
6661
|
+
/** Response of `client.shopMatchStats.forProduct()`: one product's price history, broken out per
|
|
6662
|
+
* shop. */
|
|
6663
|
+
type ItemShopPriceHistory = {
|
|
6664
|
+
item: {
|
|
6665
|
+
/**
|
|
6666
|
+
* @description Resource identifier
|
|
6667
|
+
* @example 6a577711abc1ce71383d3e10
|
|
6668
|
+
*/
|
|
6669
|
+
id: string;
|
|
6670
|
+
name: string;
|
|
6671
|
+
};
|
|
6672
|
+
shops: {
|
|
6673
|
+
/** @description The shop's technicalName */
|
|
6674
|
+
shop: string;
|
|
6675
|
+
history: {
|
|
6676
|
+
/**
|
|
6677
|
+
* Format: date-time
|
|
6678
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
6679
|
+
*/
|
|
6680
|
+
snapshotDate: string;
|
|
6681
|
+
/** @example 149.5 */
|
|
6682
|
+
price: number;
|
|
6683
|
+
/**
|
|
6684
|
+
* @description ISO-4217 currency code
|
|
6685
|
+
* @example SEK
|
|
6686
|
+
*/
|
|
6687
|
+
currency: string;
|
|
6688
|
+
inStock: boolean;
|
|
6689
|
+
url: string;
|
|
6690
|
+
}[];
|
|
6691
|
+
}[];
|
|
6692
|
+
recordCount: number;
|
|
6693
|
+
};
|
|
6694
|
+
/** Response of `client.shopMatchStats.forShop()`: one shop's price history, broken out per
|
|
6695
|
+
* product. */
|
|
6696
|
+
type ShopPriceHistoryList = {
|
|
6697
|
+
shop: string;
|
|
6698
|
+
items: {
|
|
6699
|
+
item: {
|
|
6700
|
+
/**
|
|
6701
|
+
* @description Resource identifier
|
|
6702
|
+
* @example 6a577711abc1ce71383d3e10
|
|
6703
|
+
*/
|
|
6704
|
+
id: string;
|
|
6705
|
+
name: string;
|
|
6706
|
+
};
|
|
6707
|
+
history: {
|
|
6708
|
+
/**
|
|
6709
|
+
* Format: date-time
|
|
6710
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
6711
|
+
*/
|
|
6712
|
+
snapshotDate: string;
|
|
6713
|
+
/** @example 149.5 */
|
|
6714
|
+
price: number;
|
|
6715
|
+
/**
|
|
6716
|
+
* @description ISO-4217 currency code
|
|
6717
|
+
* @example SEK
|
|
6718
|
+
*/
|
|
6719
|
+
currency: string;
|
|
6720
|
+
inStock: boolean;
|
|
6721
|
+
url: string;
|
|
6722
|
+
}[];
|
|
6723
|
+
/** @example 149.5 */
|
|
6724
|
+
latestPrice: number | undefined;
|
|
6725
|
+
/**
|
|
6726
|
+
* Format: date-time
|
|
6727
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
6728
|
+
*/
|
|
6729
|
+
latestDate: string | undefined;
|
|
6730
|
+
}[];
|
|
6731
|
+
itemCount: number;
|
|
6732
|
+
};
|
|
6733
|
+
type ShopPriceComparisonRow = {
|
|
6734
|
+
shop: string;
|
|
6735
|
+
/** @example 149.5 */
|
|
6736
|
+
price: number;
|
|
6737
|
+
/**
|
|
6738
|
+
* @description ISO-4217 currency code
|
|
6739
|
+
* @example SEK
|
|
6740
|
+
*/
|
|
6741
|
+
currency: string;
|
|
6742
|
+
inStock: boolean;
|
|
6743
|
+
url: string;
|
|
6744
|
+
/**
|
|
6745
|
+
* Format: date-time
|
|
6746
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
6747
|
+
*/
|
|
6748
|
+
snapshotDate: string;
|
|
6749
|
+
};
|
|
6750
|
+
type ShopPriceComparisonStats = {
|
|
6751
|
+
/** @example 149.5 */
|
|
6752
|
+
lowestPrice: number;
|
|
6753
|
+
/** @example 149.5 */
|
|
6754
|
+
highestPrice: number;
|
|
6755
|
+
/** @example 149.5 */
|
|
6756
|
+
averagePrice: number;
|
|
6757
|
+
inStockCount: number;
|
|
6758
|
+
};
|
|
6759
|
+
/** Response of `client.shopMatchStats.compare()`: one product's price at every shop that carries
|
|
6760
|
+
* it, as of one date. `stats` is `undefined` when no shop had a price on that date. */
|
|
6761
|
+
type ItemPriceComparison = {
|
|
6762
|
+
item: {
|
|
6763
|
+
/**
|
|
6764
|
+
* @description Resource identifier
|
|
6765
|
+
* @example 6a577711abc1ce71383d3e10
|
|
6766
|
+
*/
|
|
6767
|
+
id: string;
|
|
6768
|
+
name: string;
|
|
6769
|
+
};
|
|
6770
|
+
items: {
|
|
6771
|
+
shop: string;
|
|
6772
|
+
/** @example 149.5 */
|
|
6773
|
+
price: number;
|
|
6774
|
+
/**
|
|
6775
|
+
* @description ISO-4217 currency code
|
|
6776
|
+
* @example SEK
|
|
6777
|
+
*/
|
|
6778
|
+
currency: string;
|
|
6779
|
+
inStock: boolean;
|
|
6780
|
+
url: string;
|
|
6781
|
+
/**
|
|
6782
|
+
* Format: date-time
|
|
6783
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
6784
|
+
*/
|
|
6785
|
+
snapshotDate: string;
|
|
6786
|
+
}[];
|
|
6787
|
+
stats: {
|
|
6788
|
+
/** @example 149.5 */
|
|
6789
|
+
lowestPrice: number;
|
|
6790
|
+
/** @example 149.5 */
|
|
6791
|
+
highestPrice: number;
|
|
6792
|
+
/** @example 149.5 */
|
|
6793
|
+
averagePrice: number;
|
|
6794
|
+
inStockCount: number;
|
|
6795
|
+
} | undefined;
|
|
6796
|
+
};
|
|
6797
|
+
type ShopUrlStatus = "pending" | "active" | "invalid" | "rejected" | "sanityRejected";
|
|
6798
|
+
type ShopUrlDiscoveredBy = "scraper" | "user";
|
|
6799
|
+
/** A URL at a shop that tcgpriser scrapes, and what it has been matched to. */
|
|
6800
|
+
type ShopUrl = {
|
|
6801
|
+
/**
|
|
6802
|
+
* @description Resource identifier
|
|
6803
|
+
* @example 6a577711abc1ce71383d3e10
|
|
6804
|
+
*/
|
|
6805
|
+
id: string;
|
|
6806
|
+
url: string;
|
|
6807
|
+
shop: string | undefined;
|
|
6808
|
+
/** @enum {string} */
|
|
6809
|
+
status: "pending" | "active" | "invalid" | "rejected" | "sanityRejected";
|
|
6810
|
+
/** @enum {string} */
|
|
6811
|
+
discoveredBy: "scraper" | "user";
|
|
6812
|
+
/**
|
|
6813
|
+
* @description Resource identifier
|
|
6814
|
+
* @example 6a577711abc1ce71383d3e10
|
|
6815
|
+
*/
|
|
6816
|
+
itemId: string | undefined;
|
|
6817
|
+
/** @enum {string|null} */
|
|
6818
|
+
itemKind: "card" | "sealed" | undefined;
|
|
6819
|
+
lockedItem: boolean;
|
|
6820
|
+
priceChartingId: string | undefined;
|
|
6821
|
+
scrapedName: string | undefined;
|
|
6822
|
+
matchScore: number | undefined;
|
|
6823
|
+
/**
|
|
6824
|
+
* Format: date-time
|
|
6825
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
6826
|
+
*/
|
|
6827
|
+
lastMatchedAt: string | undefined;
|
|
6828
|
+
/**
|
|
6829
|
+
* @description Resource identifier
|
|
6830
|
+
* @example 6a577711abc1ce71383d3e10
|
|
6831
|
+
*/
|
|
6832
|
+
expansionId: string | undefined;
|
|
6833
|
+
/**
|
|
6834
|
+
* @description Resource identifier
|
|
6835
|
+
* @example 6a577711abc1ce71383d3e10
|
|
6836
|
+
*/
|
|
6837
|
+
categoryId: string | undefined;
|
|
6838
|
+
submittedByUserId: string | undefined;
|
|
6839
|
+
/**
|
|
6840
|
+
* Format: date-time
|
|
6841
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
6842
|
+
*/
|
|
6843
|
+
createdAt: string;
|
|
6844
|
+
/**
|
|
6845
|
+
* Format: date-time
|
|
6846
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
6847
|
+
*/
|
|
6848
|
+
updatedAt: string;
|
|
6849
|
+
};
|
|
6850
|
+
/** Response of `client.shopUrls.submit()` / `client.shopUrls.assignProduct()`. */
|
|
6851
|
+
type ShopUrlMutationResult = {
|
|
6852
|
+
message: string;
|
|
6853
|
+
shopUrl: {
|
|
6854
|
+
/**
|
|
6855
|
+
* @description Resource identifier
|
|
6856
|
+
* @example 6a577711abc1ce71383d3e10
|
|
6857
|
+
*/
|
|
6858
|
+
id: string;
|
|
6859
|
+
url: string;
|
|
6860
|
+
shop: string | undefined;
|
|
6861
|
+
/** @enum {string} */
|
|
6862
|
+
status: "pending" | "active" | "invalid" | "rejected" | "sanityRejected";
|
|
6863
|
+
/** @enum {string} */
|
|
6864
|
+
discoveredBy: "scraper" | "user";
|
|
6865
|
+
/**
|
|
6866
|
+
* @description Resource identifier
|
|
6867
|
+
* @example 6a577711abc1ce71383d3e10
|
|
6868
|
+
*/
|
|
6869
|
+
itemId: string | undefined;
|
|
6870
|
+
/** @enum {string|null} */
|
|
6871
|
+
itemKind: "card" | "sealed" | undefined;
|
|
6872
|
+
lockedItem: boolean;
|
|
6873
|
+
priceChartingId: string | undefined;
|
|
6874
|
+
scrapedName: string | undefined;
|
|
6875
|
+
matchScore: number | undefined;
|
|
6876
|
+
/**
|
|
6877
|
+
* Format: date-time
|
|
6878
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
6879
|
+
*/
|
|
6880
|
+
lastMatchedAt: string | undefined;
|
|
6881
|
+
/**
|
|
6882
|
+
* @description Resource identifier
|
|
6883
|
+
* @example 6a577711abc1ce71383d3e10
|
|
6884
|
+
*/
|
|
6885
|
+
expansionId: string | undefined;
|
|
6886
|
+
/**
|
|
6887
|
+
* @description Resource identifier
|
|
6888
|
+
* @example 6a577711abc1ce71383d3e10
|
|
6889
|
+
*/
|
|
6890
|
+
categoryId: string | undefined;
|
|
6891
|
+
submittedByUserId: string | undefined;
|
|
6892
|
+
/**
|
|
6893
|
+
* Format: date-time
|
|
6894
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
6895
|
+
*/
|
|
6896
|
+
createdAt: string;
|
|
6897
|
+
/**
|
|
6898
|
+
* Format: date-time
|
|
6899
|
+
* @example 2026-07-15T12:03:29.322Z
|
|
6900
|
+
*/
|
|
6901
|
+
updatedAt: string;
|
|
6902
|
+
};
|
|
6903
|
+
};
|
|
2956
6904
|
interface ListBargainsParams {
|
|
2957
6905
|
type?: 'sealed' | 'card' | 'all';
|
|
2958
6906
|
}
|
|
@@ -2985,7 +6933,6 @@ declare class BargainsResource {
|
|
|
2985
6933
|
* threshold, card condition/grade, free-text search). Premium. */
|
|
2986
6934
|
search(params?: SearchBargainsParams): Promise<ListResponse<Bargain>>;
|
|
2987
6935
|
}
|
|
2988
|
-
|
|
2989
6936
|
interface ListCardsParams extends PaginationParams {
|
|
2990
6937
|
/** Free-text search over card and set names. */
|
|
2991
6938
|
search?: string;
|
|
@@ -3027,7 +6974,6 @@ declare class CardsResource {
|
|
|
3027
6974
|
* stats job. Premium. */
|
|
3028
6975
|
livePricing(idOrTechnicalName: string, options?: PremiumOptions): Promise<LivePricingForItem>;
|
|
3029
6976
|
}
|
|
3030
|
-
|
|
3031
6977
|
declare class ExpansionsResource {
|
|
3032
6978
|
private readonly http;
|
|
3033
6979
|
constructor(http: HttpClient);
|
|
@@ -3040,7 +6986,6 @@ declare class ExpansionsResource {
|
|
|
3040
6986
|
* this expansion, not read from the last stats job. Premium. */
|
|
3041
6987
|
livePricing(technicalName: string, options?: PremiumOptions): Promise<ExpansionLivePricing>;
|
|
3042
6988
|
}
|
|
3043
|
-
|
|
3044
6989
|
declare class PackRatesResource {
|
|
3045
6990
|
private readonly http;
|
|
3046
6991
|
constructor(http: HttpClient);
|
|
@@ -3050,7 +6995,6 @@ declare class PackRatesResource {
|
|
|
3050
6995
|
/** `GET /pack-rates/{expansionId}`: pull-rate odds for one expansion. */
|
|
3051
6996
|
get(expansionId: string): Promise<PackRate>;
|
|
3052
6997
|
}
|
|
3053
|
-
|
|
3054
6998
|
/** Filters shared by `daily()` and `estimatedValues()`: all narrow which product(s) the stats
|
|
3055
6999
|
* cover; combine as many as you like. */
|
|
3056
7000
|
interface ProductFilterParams {
|
|
@@ -3135,7 +7079,6 @@ declare class PriceStatsResource {
|
|
|
3135
7079
|
* are required for `cardType: 'graded'`. Premium. */
|
|
3136
7080
|
productDailyByVariant(idOrTechnicalName: string, params: ProductDailyByVariantParams): Promise<ItemVariantDailyStats>;
|
|
3137
7081
|
}
|
|
3138
|
-
|
|
3139
7082
|
interface ListProductsParams extends PaginationParams {
|
|
3140
7083
|
/** Whitespace-separated tokens, each matched against the start of a word. */
|
|
3141
7084
|
search?: string;
|
|
@@ -3180,7 +7123,6 @@ declare class ProductsResource {
|
|
|
3180
7123
|
* stats job. Premium. */
|
|
3181
7124
|
livePricing(idOrTechnicalName: string, options?: PremiumOptions): Promise<LivePricingForItem>;
|
|
3182
7125
|
}
|
|
3183
|
-
|
|
3184
7126
|
interface ShopMatchStatsForProductParams {
|
|
3185
7127
|
authToken?: string;
|
|
3186
7128
|
/** `YYYY-MM-DD` */
|
|
@@ -3219,7 +7161,6 @@ declare class ShopMatchStatsResource {
|
|
|
3219
7161
|
* one date (defaults to the latest). */
|
|
3220
7162
|
compare(params: CompareShopPricesParams): Promise<ItemPriceComparison>;
|
|
3221
7163
|
}
|
|
3222
|
-
|
|
3223
7164
|
interface ListShopMatchesParams extends PaginationParams {
|
|
3224
7165
|
/** Filter to one shop's technicalName. */
|
|
3225
7166
|
shop?: string;
|
|
@@ -3244,7 +7185,6 @@ declare class ShopMatchesResource {
|
|
|
3244
7185
|
/** `GET /shop-matches/shops`: match counts per shop (based on latest records only). */
|
|
3245
7186
|
shopStats(params?: PaginationParams): Promise<ListResponse<ShopMatchStats>>;
|
|
3246
7187
|
}
|
|
3247
|
-
|
|
3248
7188
|
interface SubmitShopUrlParams extends PremiumOptions {
|
|
3249
7189
|
url: string;
|
|
3250
7190
|
/** Shop technicalName. Auto-created if it doesn't exist yet. */
|
|
@@ -3264,7 +7204,6 @@ declare class ShopUrlsResource {
|
|
|
3264
7204
|
/** `PATCH /shop-urls/{id}/product`: manually assign (or clear) the product a shop URL resolves to. */
|
|
3265
7205
|
assignProduct(shopUrlId: string, params: AssignShopUrlProductParams): Promise<ShopUrlMutationResult>;
|
|
3266
7206
|
}
|
|
3267
|
-
|
|
3268
7207
|
interface ListShopsParams {
|
|
3269
7208
|
active?: boolean;
|
|
3270
7209
|
}
|
|
@@ -3276,14 +7215,12 @@ declare class ShopsResource {
|
|
|
3276
7215
|
/** `GET /shops/{id}`: fetch one shop by its id or technicalName. */
|
|
3277
7216
|
get(idOrTechnicalName: string): Promise<Shop>;
|
|
3278
7217
|
}
|
|
3279
|
-
|
|
3280
7218
|
declare class StatsResource {
|
|
3281
7219
|
private readonly http;
|
|
3282
7220
|
constructor(http: HttpClient);
|
|
3283
7221
|
/** `GET /stats`: platform-wide overview counts (shops, expansions, products, prices tracked). */
|
|
3284
7222
|
platform(): Promise<PlatformStats>;
|
|
3285
7223
|
}
|
|
3286
|
-
|
|
3287
7224
|
declare const DEFAULT_BASE_URL = "https://api.tcgpriser.se";
|
|
3288
7225
|
/** Local dev, self-hosting and testing overrides. Most integrations never touch these. */
|
|
3289
7226
|
interface TcgPriserAdvancedOptions {
|
|
@@ -3346,12 +7283,11 @@ declare class TcgPriser {
|
|
|
3346
7283
|
*/
|
|
3347
7284
|
constructor(optionsOrAuthToken?: string | TcgPriserOptions);
|
|
3348
7285
|
}
|
|
3349
|
-
|
|
3350
7286
|
/** The stable error codes the API's `error.code` field can hold. */
|
|
3351
7287
|
type TcgPriserErrorCode = 'validationFailed' | 'unauthorized' | 'forbidden' | 'notFound' | 'conflict' | 'readOnlyField' | 'rateLimited' | 'premiumRequired' | 'internalError'
|
|
3352
|
-
/** Response body wasn't the `{ error: { code, message } }` shape. Probably a proxy or gateway
|
|
3353
|
-
|
|
3354
|
-
|
|
7288
|
+
/** Response body wasn't the `{ error: { code, message } }` shape. Probably a proxy or gateway
|
|
7289
|
+
* error in front of the API. */
|
|
7290
|
+
| 'unknown';
|
|
3355
7291
|
/** Thrown for any non-2xx response. Carries the parsed `{ code, message }` when the body matched
|
|
3356
7292
|
* the API's error envelope, plus the raw status/body regardless so nothing gets lost. */
|
|
3357
7293
|
declare class TcgPriserError extends Error {
|
|
@@ -3372,5 +7308,4 @@ declare class TcgPriserError extends Error {
|
|
|
3372
7308
|
body: string;
|
|
3373
7309
|
});
|
|
3374
7310
|
}
|
|
3375
|
-
|
|
3376
|
-
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 ExpansionContents, 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 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 };
|
|
7311
|
+
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 };
|