@usequeek/app-sdk 0.5.1 → 0.6.1

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.
Files changed (76) hide show
  1. package/README.md +179 -12
  2. package/dist/app-auth.d.ts +9 -1
  3. package/dist/app-auth.d.ts.map +1 -1
  4. package/dist/app-auth.js +11 -1
  5. package/dist/app-auth.js.map +1 -1
  6. package/dist/auth-fetch.d.ts +91 -0
  7. package/dist/auth-fetch.d.ts.map +1 -0
  8. package/dist/auth-fetch.js +263 -0
  9. package/dist/auth-fetch.js.map +1 -0
  10. package/dist/browser.d.ts +25 -0
  11. package/dist/browser.d.ts.map +1 -0
  12. package/dist/browser.js +27 -0
  13. package/dist/browser.js.map +1 -0
  14. package/dist/client.d.ts +32 -10
  15. package/dist/client.d.ts.map +1 -1
  16. package/dist/client.js +6 -2
  17. package/dist/client.js.map +1 -1
  18. package/dist/frame.d.ts +233 -4
  19. package/dist/frame.d.ts.map +1 -1
  20. package/dist/frame.js +694 -19
  21. package/dist/frame.js.map +1 -1
  22. package/dist/handoff.d.ts +32 -2
  23. package/dist/handoff.d.ts.map +1 -1
  24. package/dist/handoff.js +2 -1
  25. package/dist/handoff.js.map +1 -1
  26. package/dist/hono.d.ts +13 -0
  27. package/dist/hono.d.ts.map +1 -1
  28. package/dist/hono.js +15 -0
  29. package/dist/hono.js.map +1 -1
  30. package/dist/index.d.ts +11 -7
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +10 -6
  33. package/dist/index.js.map +1 -1
  34. package/dist/install-handlers.d.ts +33 -8
  35. package/dist/install-handlers.d.ts.map +1 -1
  36. package/dist/install-handlers.js +133 -15
  37. package/dist/install-handlers.js.map +1 -1
  38. package/dist/merchant-schema.d.ts +1550 -68
  39. package/dist/merchant-schema.d.ts.map +1 -1
  40. package/dist/merchant-schema.js +1 -1
  41. package/dist/proxy.d.ts +122 -0
  42. package/dist/proxy.d.ts.map +1 -0
  43. package/dist/proxy.js +204 -0
  44. package/dist/proxy.js.map +1 -0
  45. package/dist/react.d.ts +78 -0
  46. package/dist/react.d.ts.map +1 -0
  47. package/dist/react.js +262 -0
  48. package/dist/react.js.map +1 -0
  49. package/dist/scopes.d.ts +174 -0
  50. package/dist/scopes.d.ts.map +1 -0
  51. package/dist/scopes.js +297 -0
  52. package/dist/scopes.js.map +1 -0
  53. package/dist/server.d.ts +1 -1
  54. package/dist/server.js +1 -1
  55. package/dist/session.d.ts +17 -5
  56. package/dist/session.d.ts.map +1 -1
  57. package/dist/session.js +35 -16
  58. package/dist/session.js.map +1 -1
  59. package/dist/store.d.ts +33 -0
  60. package/dist/store.d.ts.map +1 -1
  61. package/dist/store.js +114 -4
  62. package/dist/store.js.map +1 -1
  63. package/dist/theme.d.ts +100 -0
  64. package/dist/theme.d.ts.map +1 -0
  65. package/dist/theme.js +162 -0
  66. package/dist/theme.js.map +1 -0
  67. package/dist/tokens.d.ts +30 -15
  68. package/dist/tokens.d.ts.map +1 -1
  69. package/dist/tokens.js +57 -19
  70. package/dist/tokens.js.map +1 -1
  71. package/dist/webhooks.d.ts.map +1 -1
  72. package/dist/webhooks.js +1 -1
  73. package/dist/webhooks.js.map +1 -1
  74. package/package.json +21 -5
  75. package/CHANGELOG.md +0 -162
  76. package/openapi/merchant.json +0 -21452
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * GENERATED from openapi/merchant.json — do not edit by hand.
3
- * Refresh with: pnpm --filter @usequeek/app-sdk gen:merchant [url-or-path]
3
+ * Refresh with: npm run gen:merchant [url-or-path]
4
4
  * See scripts/gen-merchant-types.mjs for source precedence.
5
5
  */
6
6
  /**
@@ -486,7 +486,7 @@ export interface paths {
486
486
  * Delete a product image
487
487
  * @description Requires scope `merchant-items-update`.
488
488
  *
489
- * Deletes a product image by media id, or `primary` for the primary image.
489
+ * Deletes a product image by media id, or `primary` for the primary image. Deleting the primary image makes the next image primary; the product is left without one only when it has no other images.
490
490
  */
491
491
  delete: operations["images.delete"];
492
492
  options?: never;
@@ -950,6 +950,134 @@ export interface paths {
950
950
  patch?: never;
951
951
  trace?: never;
952
952
  };
953
+ "/locales": {
954
+ parameters: {
955
+ query?: never;
956
+ header?: never;
957
+ path?: never;
958
+ cookie?: never;
959
+ };
960
+ /**
961
+ * List locales
962
+ * @description Requires scope `merchant-locales-read`.
963
+ *
964
+ * Lists the store’s enabled locales with catalogue names, publish state and the primary flag.
965
+ */
966
+ get: operations["locales.list"];
967
+ put?: never;
968
+ /**
969
+ * Add a locale
970
+ * @description Requires scope `merchant-locales-write`.
971
+ *
972
+ * Enables a catalogue locale on the store; answers the added locale, unpublished until published.
973
+ */
974
+ post: operations["locales.create"];
975
+ delete?: never;
976
+ options?: never;
977
+ head?: never;
978
+ patch?: never;
979
+ trace?: never;
980
+ };
981
+ "/locales/{locale}": {
982
+ parameters: {
983
+ query?: never;
984
+ header?: never;
985
+ path?: never;
986
+ cookie?: never;
987
+ };
988
+ get?: never;
989
+ put?: never;
990
+ post?: never;
991
+ /**
992
+ * Remove a locale
993
+ * @description Requires scope `merchant-locales-write`.
994
+ *
995
+ * Removes a locale with all of its translations. {locale} is a catalogue code of this store.
996
+ */
997
+ delete: operations["locales.delete"];
998
+ options?: never;
999
+ head?: never;
1000
+ /**
1001
+ * Publish a locale
1002
+ * @description Requires scope `merchant-locales-write`.
1003
+ *
1004
+ * Publishes or unpublishes an enabled locale. {locale} is a catalogue code of this store.
1005
+ */
1006
+ patch: operations["locales.update"];
1007
+ trace?: never;
1008
+ };
1009
+ "/translatable-resources": {
1010
+ parameters: {
1011
+ query?: never;
1012
+ header?: never;
1013
+ path?: never;
1014
+ cookie?: never;
1015
+ };
1016
+ /**
1017
+ * List translatable resources
1018
+ * @description Requires scope `merchant-translations-read`.
1019
+ *
1020
+ * Lists one resource type’s translatable content — the current source value, digest and kind per key — with cursor pagination (`limit` + `starting_after`, `has_more`/`next_cursor`).
1021
+ */
1022
+ get: operations["translatable_resources.list"];
1023
+ put?: never;
1024
+ post?: never;
1025
+ delete?: never;
1026
+ options?: never;
1027
+ head?: never;
1028
+ patch?: never;
1029
+ trace?: never;
1030
+ };
1031
+ "/translatable-resources/{type}/{id}": {
1032
+ parameters: {
1033
+ query?: never;
1034
+ header?: never;
1035
+ path?: never;
1036
+ cookie?: never;
1037
+ };
1038
+ /**
1039
+ * Retrieve translatable content
1040
+ * @description Requires scope `merchant-translations-read`.
1041
+ *
1042
+ * Retrieves one resource’s translatable content with its stored translations, each flagged outdated when the source changed since. {id} is a p_id or UUID of this store.
1043
+ */
1044
+ get: operations["translatable_resources.retrieve"];
1045
+ put?: never;
1046
+ post?: never;
1047
+ delete?: never;
1048
+ options?: never;
1049
+ head?: never;
1050
+ patch?: never;
1051
+ trace?: never;
1052
+ };
1053
+ "/translations/{type}/{id}": {
1054
+ parameters: {
1055
+ query?: never;
1056
+ header?: never;
1057
+ path?: never;
1058
+ cookie?: never;
1059
+ };
1060
+ get?: never;
1061
+ /**
1062
+ * Register translations
1063
+ * @description Requires scope `merchant-translations-write`.
1064
+ *
1065
+ * Registers up to 100 translations on one resource against the current source digests — all or nothing. A stale digest, unknown locale or unknown key answers a per-item `translation_*` code and writes nothing. {id} is a p_id or UUID of this store.
1066
+ */
1067
+ put: operations["translations.update"];
1068
+ post?: never;
1069
+ /**
1070
+ * Remove translations
1071
+ * @description Requires scope `merchant-translations-write`.
1072
+ *
1073
+ * Removes one resource’s translations, optionally narrowed to `locales` and/or `keys`. {id} is a p_id or UUID of this store.
1074
+ */
1075
+ delete: operations["translations.delete"];
1076
+ options?: never;
1077
+ head?: never;
1078
+ patch?: never;
1079
+ trace?: never;
1080
+ };
953
1081
  "/products/{product}/variants": {
954
1082
  parameters: {
955
1083
  query?: never;
@@ -1059,10 +1187,10 @@ export interface components {
1059
1187
  shop_id: string;
1060
1188
  id: string;
1061
1189
  p_id: string;
1062
- title: string;
1190
+ title: string | null;
1063
1191
  slug: string;
1064
1192
  excerpt: string | null;
1065
- description: string;
1193
+ description: string | null;
1066
1194
  image: string | null;
1067
1195
  thumbnail_image: string | null;
1068
1196
  video_url: string | null;
@@ -1572,7 +1700,7 @@ export interface components {
1572
1700
  id: string;
1573
1701
  name: string;
1574
1702
  slug: string;
1575
- description: string;
1703
+ description: string | null;
1576
1704
  image: string;
1577
1705
  /**
1578
1706
  * @description Pre-sized copies of the image, resolved from its URL (categories
@@ -1583,7 +1711,7 @@ export interface components {
1583
1711
  parent_id: string | null;
1584
1712
  mode: string | null;
1585
1713
  products_count: number;
1586
- children: unknown[];
1714
+ children: string[];
1587
1715
  };
1588
1716
  /** CustomerAddressResource */
1589
1717
  CustomerAddressResource: {
@@ -2147,7 +2275,7 @@ export interface components {
2147
2275
  image_media_id?: string;
2148
2276
  }[];
2149
2277
  };
2150
- /** @description Gallery images via Mediable */
2278
+ /** @description The product's other photos, after the main one, in order (media ids of the store's files) */
2151
2279
  gallery_media_ids?: number[] | null;
2152
2280
  };
2153
2281
  /** ProductResource */
@@ -2264,7 +2392,7 @@ export interface components {
2264
2392
  * @description Stable identifier a client switches on. A new failure mode gets a new code; an existing code never changes meaning.
2265
2393
  * @enum {string}
2266
2394
  */
2267
- code: "ai_unavailable_in_test_mode" | "api_key_expired" | "api_key_mode_mismatch" | "api_key_revoked" | "app_embed_not_ready" | "app_grant_insufficient" | "app_handoff_failed" | "app_installation_gone" | "app_installation_pending" | "app_ip_not_allowed" | "app_proxy_failed" | "app_proxy_gone" | "app_token_revoked" | "bad_request" | "client_key_required" | "conflict" | "custom_gateway_forbidden" | "custom_gateway_kyc_required" | "custom_gateway_not_configured" | "custom_gateway_not_verified" | "custom_gateway_plan_required" | "custom_gateway_store_ineligible" | "custom_gateway_verification_failed" | "forbidden" | "gone" | "idempotency_key_in_progress" | "idempotency_key_reuse" | "insufficient_scope" | "invalid_client" | "invalid_client_key" | "metafield_definition_missing" | "metafield_filter_unsupported_type" | "metafield_namespace_reserved" | "metafield_value_invalid" | "metaobject_definition_missing" | "metaobject_field_invalid" | "metaobject_reference_invalid" | "metaobject_type_reserved" | "method_not_allowed" | "not_found" | "origin_not_allowed" | "origin_required" | "payload_too_large" | "payment_amount_mismatch" | "plan_inactive" | "private_key_required" | "requires_slot" | "resync_cooldown" | "route_not_available" | "server_error" | "service_unavailable" | "subscription_feature_locked" | "too_many_requests" | "unauthenticated" | "unknown_product_ref" | "unknown_service" | "unknown_variant_ref" | "unsupported_media_type" | "validation_failed" | "vendor_access_denied" | "vendor_mail_sender_forbidden" | "vendor_mail_sender_not_configured" | "vendor_mail_sender_plan_required" | "vendor_mail_sender_verification_failed";
2395
+ code: "ai_unavailable_in_test_mode" | "api_key_expired" | "api_key_mode_mismatch" | "api_key_revoked" | "app_embed_not_ready" | "app_grant_insufficient" | "app_handoff_failed" | "app_installation_gone" | "app_installation_pending" | "app_ip_not_allowed" | "app_proxy_failed" | "app_proxy_gone" | "app_token_revoked" | "bad_request" | "channel_gateway_unreachable" | "client_key_required" | "conflict" | "custom_domain_provisioning_failed" | "custom_gateway_forbidden" | "custom_gateway_kyc_required" | "custom_gateway_not_configured" | "custom_gateway_not_verified" | "custom_gateway_plan_required" | "custom_gateway_store_ineligible" | "custom_gateway_verification_failed" | "forbidden" | "gone" | "idempotency_key_in_progress" | "idempotency_key_reuse" | "insufficient_scope" | "invalid_client" | "invalid_client_key" | "metafield_definition_missing" | "metafield_filter_unsupported_type" | "metafield_namespace_reserved" | "metafield_value_invalid" | "metaobject_definition_missing" | "metaobject_field_invalid" | "metaobject_reference_invalid" | "metaobject_type_reserved" | "method_not_allowed" | "not_found" | "origin_not_allowed" | "origin_required" | "payload_too_large" | "payment_amount_mismatch" | "plan_inactive" | "private_key_required" | "requires_slot" | "resync_cooldown" | "route_not_available" | "server_error" | "service_unavailable" | "subscription_feature_locked" | "too_many_requests" | "translation_digest_stale" | "translation_locale_is_primary" | "translation_max_published_locales" | "translation_unknown_key" | "translation_unknown_locale" | "unauthenticated" | "unknown_product_ref" | "unknown_service" | "unknown_variant_ref" | "unsupported_media_type" | "validation_failed" | "vendor_access_denied" | "vendor_mail_sender_forbidden" | "vendor_mail_sender_not_configured" | "vendor_mail_sender_plan_required" | "vendor_mail_sender_verification_failed";
2268
2396
  /** @description Human-readable explanation. Not stable — never switch on it. */
2269
2397
  message: string;
2270
2398
  /** @description First offending field, on validation failures only. */
@@ -2401,9 +2529,32 @@ export interface components {
2401
2529
  * `customers/create` — A customer record was created for the store.
2402
2530
  * `customers/update` — A customer profile field changed.
2403
2531
  * `inventory_levels/update` — A product or variant stock level changed, with the reason.
2532
+ * `locales/create` — A locale was added to the store.
2533
+ * `locales/update` — A locale was published or unpublished on the store.
2534
+ * `locales/destroy` — A locale was removed from the store, with its translations.
2535
+ * `translations/update` — Translations were registered on one resource, for the locales and keys in the payload.
2536
+ * `translations/delete` — Translations were removed from one resource, for the locales and keys in the payload.
2404
2537
  * @enum {string}
2405
2538
  */
2406
- QueekWebhookTopic: "orders/create" | "orders/paid" | "orders/updated" | "orders/fulfilled" | "orders/cancelled" | "products/create" | "products/update" | "products/delete" | "customers/create" | "customers/update" | "inventory_levels/update";
2539
+ QueekWebhookTopic: "orders/create" | "orders/paid" | "orders/updated" | "orders/fulfilled" | "orders/cancelled" | "products/create" | "products/update" | "products/delete" | "customers/create" | "customers/update" | "inventory_levels/update" | "locales/create" | "locales/update" | "locales/destroy" | "translations/update" | "translations/delete";
2540
+ /**
2541
+ * RegisterTranslationsRequest
2542
+ * @description PUT translations/{type}/{id} — register a batch of translations against
2543
+ * the CURRENT source digests. Shape is checked here (at most max_batch
2544
+ * items); each item's locale, key and digest are checked against the live
2545
+ * source inside the service, which answers per-item codes
2546
+ * (translation_unknown_locale, translation_unknown_key,
2547
+ * translation_digest_stale) and writes nothing unless every item passes.
2548
+ */
2549
+ RegisterTranslationsRequest: {
2550
+ translations: {
2551
+ locale: string;
2552
+ key: string;
2553
+ /** @description Largest v1 source field is ProductRequest's description (50000). */
2554
+ value: string;
2555
+ digest: string;
2556
+ }[];
2557
+ };
2407
2558
  /** ReorderCollectionProductsRequest */
2408
2559
  ReorderCollectionProductsRequest: {
2409
2560
  product_ids: string[];
@@ -2536,7 +2687,7 @@ export interface components {
2536
2687
  */
2537
2688
  content: string | string[];
2538
2689
  media_index: string;
2539
- excerpt: string;
2690
+ excerpt: string | null;
2540
2691
  cover_image_url: string;
2541
2692
  cover_image_variants: string | null;
2542
2693
  tags: string | string[];
@@ -2694,6 +2845,15 @@ export interface components {
2694
2845
  /** @description When the store was last updated (ISO-8601). */
2695
2846
  updated_at: string | null;
2696
2847
  };
2848
+ /**
2849
+ * StoreVendorLocaleRequest
2850
+ * @description POST locales {locale} — enable a catalogue locale on the store. The code
2851
+ * must come from config/locales.php; anything else is a 422, never a guess.
2852
+ */
2853
+ StoreVendorLocaleRequest: {
2854
+ /** @enum {string} */
2855
+ locale: "en" | "fr" | "es" | "pt" | "pt-BR" | "de" | "it" | "nl" | "pl" | "ru" | "uk" | "tr" | "ar" | "ur" | "fa" | "he" | "hi" | "ja" | "ko" | "zh-CN" | "zh-TW" | "id" | "ms" | "vi" | "th" | "tl" | "sw" | "ha" | "yo" | "ig" | "pcm";
2856
+ };
2697
2857
  /** TaxonomyCategoryResource */
2698
2858
  TaxonomyCategoryResource: {
2699
2859
  id: string;
@@ -2706,7 +2866,7 @@ export interface components {
2706
2866
  */
2707
2867
  image_variants: string | null;
2708
2868
  products_count: number;
2709
- children: unknown[];
2869
+ children: string[];
2710
2870
  };
2711
2871
  /**
2712
2872
  * UpdateAppSetupNoticeRequest
@@ -2788,6 +2948,16 @@ export interface components {
2788
2948
  delivered_at?: string | null;
2789
2949
  notes?: string | null;
2790
2950
  };
2951
+ /**
2952
+ * UpdateVendorLocaleRequest
2953
+ * @description PATCH locales/{locale} {published} — publish or unpublish an enabled
2954
+ * locale. The {locale} segment itself is resolved in the controller (unknown
2955
+ * code or a code the store never added is a 404); only the body is validated
2956
+ * here.
2957
+ */
2958
+ UpdateVendorLocaleRequest: {
2959
+ published: boolean;
2960
+ };
2791
2961
  /** UpdateVendorOrderStatusRequest */
2792
2962
  UpdateVendorOrderStatusRequest: {
2793
2963
  /** @enum {string} */
@@ -2853,6 +3023,12 @@ export interface components {
2853
3023
  notice: string[];
2854
3024
  slug: string;
2855
3025
  service: string;
3026
+ /**
3027
+ * @description The store's own currency (3-letter code, never a symbol — Q2):
3028
+ * cart/vendor payloads read this per-vendor instead of the
3029
+ * platform default. Attribute-only, zero new queries.
3030
+ */
3031
+ currency: string;
2856
3032
  logo: string | null;
2857
3033
  disable_order: boolean;
2858
3034
  is_closed: boolean;
@@ -3127,6 +3303,16 @@ export interface components {
3127
3303
  * keeps it out of crawlers and AI discovery (robots, sitemap, agents.md).
3128
3304
  */
3129
3305
  is_test?: boolean;
3306
+ /**
3307
+ * @description S-E: the core storefront renders a password page for dev
3308
+ * stores. One flag per fact: dev_store says WHAT it is,
3309
+ * password_required gates the token; this response itself
3310
+ * stays public — gated reads 401. indexable:false tells the
3311
+ * storefront to noindex + drop it from sitemap/feed/agents.
3312
+ */
3313
+ dev_store?: boolean;
3314
+ password_required?: boolean;
3315
+ indexable?: boolean;
3130
3316
  is_closed: boolean;
3131
3317
  currency: string;
3132
3318
  storefront_url?: string | null;
@@ -3219,7 +3405,7 @@ export interface operations {
3219
3405
  query?: never;
3220
3406
  header: {
3221
3407
  /**
3222
- * @description A private API key (`sk_live_…`, `sk_test_…` on a test store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
3408
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
3223
3409
  * @example {{merchantKey}}
3224
3410
  */
3225
3411
  "X-Client-Key": string;
@@ -3397,7 +3583,7 @@ export interface operations {
3397
3583
  query?: never;
3398
3584
  header: {
3399
3585
  /**
3400
- * @description A private API key (`sk_live_…`, `sk_test_…` on a test store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
3586
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
3401
3587
  * @example {{merchantKey}}
3402
3588
  */
3403
3589
  "X-Client-Key": string;
@@ -3558,7 +3744,7 @@ export interface operations {
3558
3744
  query?: never;
3559
3745
  header: {
3560
3746
  /**
3561
- * @description A private API key (`sk_live_…`, `sk_test_…` on a test store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
3747
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
3562
3748
  * @example {{merchantKey}}
3563
3749
  */
3564
3750
  "X-Client-Key": string;
@@ -3730,7 +3916,7 @@ export interface operations {
3730
3916
  };
3731
3917
  header: {
3732
3918
  /**
3733
- * @description A private API key (`sk_live_…`, `sk_test_…` on a test store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
3919
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
3734
3920
  * @example {{merchantKey}}
3735
3921
  */
3736
3922
  "X-Client-Key": string;
@@ -3888,7 +4074,7 @@ export interface operations {
3888
4074
  query?: never;
3889
4075
  header: {
3890
4076
  /**
3891
- * @description A private API key (`sk_live_…`, `sk_test_…` on a test store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
4077
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
3892
4078
  * @example {{merchantKey}}
3893
4079
  */
3894
4080
  "X-Client-Key": string;
@@ -4097,7 +4283,7 @@ export interface operations {
4097
4283
  query?: never;
4098
4284
  header: {
4099
4285
  /**
4100
- * @description A private API key (`sk_live_…`, `sk_test_…` on a test store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
4286
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
4101
4287
  * @example {{merchantKey}}
4102
4288
  */
4103
4289
  "X-Client-Key": string;
@@ -4305,7 +4491,7 @@ export interface operations {
4305
4491
  query?: never;
4306
4492
  header: {
4307
4493
  /**
4308
- * @description A private API key (`sk_live_…`, `sk_test_…` on a test store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
4494
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
4309
4495
  * @example {{merchantKey}}
4310
4496
  */
4311
4497
  "X-Client-Key": string;
@@ -4484,7 +4670,7 @@ export interface operations {
4484
4670
  };
4485
4671
  header: {
4486
4672
  /**
4487
- * @description A private API key (`sk_live_…`, `sk_test_…` on a test store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
4673
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
4488
4674
  * @example {{merchantKey}}
4489
4675
  */
4490
4676
  "X-Client-Key": string;
@@ -4635,7 +4821,7 @@ export interface operations {
4635
4821
  query?: never;
4636
4822
  header: {
4637
4823
  /**
4638
- * @description A private API key (`sk_live_…`, `sk_test_…` on a test store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
4824
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
4639
4825
  * @example {{merchantKey}}
4640
4826
  */
4641
4827
  "X-Client-Key": string;
@@ -4805,7 +4991,7 @@ export interface operations {
4805
4991
  query?: never;
4806
4992
  header: {
4807
4993
  /**
4808
- * @description A private API key (`sk_live_…`, `sk_test_…` on a test store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
4994
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
4809
4995
  * @example {{merchantKey}}
4810
4996
  */
4811
4997
  "X-Client-Key": string;
@@ -4985,7 +5171,7 @@ export interface operations {
4985
5171
  query?: never;
4986
5172
  header: {
4987
5173
  /**
4988
- * @description A private API key (`sk_live_…`, `sk_test_…` on a test store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
5174
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
4989
5175
  * @example {{merchantKey}}
4990
5176
  */
4991
5177
  "X-Client-Key": string;
@@ -5173,7 +5359,7 @@ export interface operations {
5173
5359
  };
5174
5360
  header: {
5175
5361
  /**
5176
- * @description A private API key (`sk_live_…`, `sk_test_…` on a test store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
5362
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
5177
5363
  * @example {{merchantKey}}
5178
5364
  */
5179
5365
  "X-Client-Key": string;
@@ -5366,7 +5552,7 @@ export interface operations {
5366
5552
  };
5367
5553
  header: {
5368
5554
  /**
5369
- * @description A private API key (`sk_live_…`, `sk_test_…` on a test store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
5555
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
5370
5556
  * @example {{merchantKey}}
5371
5557
  */
5372
5558
  "X-Client-Key": string;
@@ -5508,7 +5694,7 @@ export interface operations {
5508
5694
  query?: never;
5509
5695
  header: {
5510
5696
  /**
5511
- * @description A private API key (`sk_live_…`, `sk_test_…` on a test store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
5697
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
5512
5698
  * @example {{merchantKey}}
5513
5699
  */
5514
5700
  "X-Client-Key": string;
@@ -5698,7 +5884,7 @@ export interface operations {
5698
5884
  };
5699
5885
  header: {
5700
5886
  /**
5701
- * @description A private API key (`sk_live_…`, `sk_test_…` on a test store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
5887
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
5702
5888
  * @example {{merchantKey}}
5703
5889
  */
5704
5890
  "X-Client-Key": string;
@@ -5840,7 +6026,7 @@ export interface operations {
5840
6026
  };
5841
6027
  header: {
5842
6028
  /**
5843
- * @description A private API key (`sk_live_…`, `sk_test_…` on a test store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
6029
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
5844
6030
  * @example {{merchantKey}}
5845
6031
  */
5846
6032
  "X-Client-Key": string;
@@ -5979,7 +6165,7 @@ export interface operations {
5979
6165
  query?: never;
5980
6166
  header: {
5981
6167
  /**
5982
- * @description A private API key (`sk_live_…`, `sk_test_…` on a test store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
6168
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
5983
6169
  * @example {{merchantKey}}
5984
6170
  */
5985
6171
  "X-Client-Key": string;
@@ -6118,7 +6304,7 @@ export interface operations {
6118
6304
  };
6119
6305
  header: {
6120
6306
  /**
6121
- * @description A private API key (`sk_live_…`, `sk_test_…` on a test store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
6307
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
6122
6308
  * @example {{merchantKey}}
6123
6309
  */
6124
6310
  "X-Client-Key": string;
@@ -6293,7 +6479,7 @@ export interface operations {
6293
6479
  query?: never;
6294
6480
  header: {
6295
6481
  /**
6296
- * @description A private API key (`sk_live_…`, `sk_test_…` on a test store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
6482
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
6297
6483
  * @example {{merchantKey}}
6298
6484
  */
6299
6485
  "X-Client-Key": string;
@@ -6481,7 +6667,7 @@ export interface operations {
6481
6667
  query?: never;
6482
6668
  header: {
6483
6669
  /**
6484
- * @description A private API key (`sk_live_…`, `sk_test_…` on a test store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
6670
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
6485
6671
  * @example {{merchantKey}}
6486
6672
  */
6487
6673
  "X-Client-Key": string;
@@ -6622,7 +6808,7 @@ export interface operations {
6622
6808
  query?: never;
6623
6809
  header: {
6624
6810
  /**
6625
- * @description A private API key (`sk_live_…`, `sk_test_…` on a test store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
6811
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
6626
6812
  * @example {{merchantKey}}
6627
6813
  */
6628
6814
  "X-Client-Key": string;
@@ -6766,7 +6952,7 @@ export interface operations {
6766
6952
  query?: never;
6767
6953
  header: {
6768
6954
  /**
6769
- * @description A private API key (`sk_live_…`, `sk_test_…` on a test store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
6955
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
6770
6956
  * @example {{merchantKey}}
6771
6957
  */
6772
6958
  "X-Client-Key": string;
@@ -6914,7 +7100,7 @@ export interface operations {
6914
7100
  };
6915
7101
  header: {
6916
7102
  /**
6917
- * @description A private API key (`sk_live_…`, `sk_test_…` on a test store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
7103
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
6918
7104
  * @example {{merchantKey}}
6919
7105
  */
6920
7106
  "X-Client-Key": string;
@@ -7146,7 +7332,7 @@ export interface operations {
7146
7332
  query?: never;
7147
7333
  header: {
7148
7334
  /**
7149
- * @description A private API key (`sk_live_…`, `sk_test_…` on a test store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
7335
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
7150
7336
  * @example {{merchantKey}}
7151
7337
  */
7152
7338
  "X-Client-Key": string;
@@ -7410,7 +7596,7 @@ export interface operations {
7410
7596
  query?: never;
7411
7597
  header: {
7412
7598
  /**
7413
- * @description A private API key (`sk_live_…`, `sk_test_…` on a test store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
7599
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
7414
7600
  * @example {{merchantKey}}
7415
7601
  */
7416
7602
  "X-Client-Key": string;
@@ -7556,7 +7742,7 @@ export interface operations {
7556
7742
  query?: never;
7557
7743
  header: {
7558
7744
  /**
7559
- * @description A private API key (`sk_live_…`, `sk_test_…` on a test store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
7745
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
7560
7746
  * @example {{merchantKey}}
7561
7747
  */
7562
7748
  "X-Client-Key": string;
@@ -7773,7 +7959,7 @@ export interface operations {
7773
7959
  query?: never;
7774
7960
  header: {
7775
7961
  /**
7776
- * @description A private API key (`sk_live_…`, `sk_test_…` on a test store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
7962
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
7777
7963
  * @example {{merchantKey}}
7778
7964
  */
7779
7965
  "X-Client-Key": string;
@@ -7879,7 +8065,7 @@ export interface operations {
7879
8065
  };
7880
8066
  header: {
7881
8067
  /**
7882
- * @description A private API key (`sk_live_…`, `sk_test_…` on a test store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
8068
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
7883
8069
  * @example {{merchantKey}}
7884
8070
  */
7885
8071
  "X-Client-Key": string;
@@ -8075,7 +8261,7 @@ export interface operations {
8075
8261
  };
8076
8262
  header: {
8077
8263
  /**
8078
- * @description A private API key (`sk_live_…`, `sk_test_…` on a test store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
8264
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
8079
8265
  * @example {{merchantKey}}
8080
8266
  */
8081
8267
  "X-Client-Key": string;
@@ -8245,7 +8431,7 @@ export interface operations {
8245
8431
  query?: never;
8246
8432
  header: {
8247
8433
  /**
8248
- * @description A private API key (`sk_live_…`, `sk_test_…` on a test store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
8434
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
8249
8435
  * @example {{merchantKey}}
8250
8436
  */
8251
8437
  "X-Client-Key": string;
@@ -8429,7 +8615,7 @@ export interface operations {
8429
8615
  };
8430
8616
  header: {
8431
8617
  /**
8432
- * @description A private API key (`sk_live_…`, `sk_test_…` on a test store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
8618
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
8433
8619
  * @example {{merchantKey}}
8434
8620
  */
8435
8621
  "X-Client-Key": string;
@@ -8591,7 +8777,7 @@ export interface operations {
8591
8777
  query?: never;
8592
8778
  header: {
8593
8779
  /**
8594
- * @description A private API key (`sk_live_…`, `sk_test_…` on a test store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
8780
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
8595
8781
  * @example {{merchantKey}}
8596
8782
  */
8597
8783
  "X-Client-Key": string;
@@ -8784,7 +8970,7 @@ export interface operations {
8784
8970
  };
8785
8971
  header: {
8786
8972
  /**
8787
- * @description A private API key (`sk_live_…`, `sk_test_…` on a test store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
8973
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
8788
8974
  * @example {{merchantKey}}
8789
8975
  */
8790
8976
  "X-Client-Key": string;
@@ -8945,7 +9131,7 @@ export interface operations {
8945
9131
  query?: never;
8946
9132
  header: {
8947
9133
  /**
8948
- * @description A private API key (`sk_live_…`, `sk_test_…` on a test store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
9134
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
8949
9135
  * @example {{merchantKey}}
8950
9136
  */
8951
9137
  "X-Client-Key": string;
@@ -9168,7 +9354,7 @@ export interface operations {
9168
9354
  };
9169
9355
  header: {
9170
9356
  /**
9171
- * @description A private API key (`sk_live_…`, `sk_test_…` on a test store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
9357
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
9172
9358
  * @example {{merchantKey}}
9173
9359
  */
9174
9360
  "X-Client-Key": string;
@@ -9313,7 +9499,7 @@ export interface operations {
9313
9499
  query?: never;
9314
9500
  header: {
9315
9501
  /**
9316
- * @description A private API key (`sk_live_…`, `sk_test_…` on a test store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
9502
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
9317
9503
  * @example {{merchantKey}}
9318
9504
  */
9319
9505
  "X-Client-Key": string;
@@ -9500,7 +9686,7 @@ export interface operations {
9500
9686
  };
9501
9687
  header: {
9502
9688
  /**
9503
- * @description A private API key (`sk_live_…`, `sk_test_…` on a test store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
9689
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
9504
9690
  * @example {{merchantKey}}
9505
9691
  */
9506
9692
  "X-Client-Key": string;
@@ -9726,7 +9912,7 @@ export interface operations {
9726
9912
  query?: never;
9727
9913
  header: {
9728
9914
  /**
9729
- * @description A private API key (`sk_live_…`, `sk_test_…` on a test store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
9915
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
9730
9916
  * @example {{merchantKey}}
9731
9917
  */
9732
9918
  "X-Client-Key": string;
@@ -9904,7 +10090,7 @@ export interface operations {
9904
10090
  query?: never;
9905
10091
  header: {
9906
10092
  /**
9907
- * @description A private API key (`sk_live_…`, `sk_test_…` on a test store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
10093
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
9908
10094
  * @example {{merchantKey}}
9909
10095
  */
9910
10096
  "X-Client-Key": string;
@@ -10148,7 +10334,7 @@ export interface operations {
10148
10334
  query?: never;
10149
10335
  header: {
10150
10336
  /**
10151
- * @description A private API key (`sk_live_…`, `sk_test_…` on a test store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
10337
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
10152
10338
  * @example {{merchantKey}}
10153
10339
  */
10154
10340
  "X-Client-Key": string;
@@ -10438,7 +10624,7 @@ export interface operations {
10438
10624
  query?: never;
10439
10625
  header: {
10440
10626
  /**
10441
- * @description A private API key (`sk_live_…`, `sk_test_…` on a test store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
10627
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
10442
10628
  * @example {{merchantKey}}
10443
10629
  */
10444
10630
  "X-Client-Key": string;
@@ -10664,7 +10850,7 @@ export interface operations {
10664
10850
  query?: never;
10665
10851
  header: {
10666
10852
  /**
10667
- * @description A private API key (`sk_live_…`, `sk_test_…` on a test store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
10853
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
10668
10854
  * @example {{merchantKey}}
10669
10855
  */
10670
10856
  "X-Client-Key": string;
@@ -10890,7 +11076,7 @@ export interface operations {
10890
11076
  query?: never;
10891
11077
  header: {
10892
11078
  /**
10893
- * @description A private API key (`sk_live_…`, `sk_test_…` on a test store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
11079
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
10894
11080
  * @example {{merchantKey}}
10895
11081
  */
10896
11082
  "X-Client-Key": string;
@@ -11145,7 +11331,7 @@ export interface operations {
11145
11331
  };
11146
11332
  header: {
11147
11333
  /**
11148
- * @description A private API key (`sk_live_…`, `sk_test_…` on a test store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
11334
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
11149
11335
  * @example {{merchantKey}}
11150
11336
  */
11151
11337
  "X-Client-Key": string;
@@ -11461,7 +11647,7 @@ export interface operations {
11461
11647
  query?: never;
11462
11648
  header: {
11463
11649
  /**
11464
- * @description A private API key (`sk_live_…`, `sk_test_…` on a test store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
11650
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
11465
11651
  * @example {{merchantKey}}
11466
11652
  */
11467
11653
  "X-Client-Key": string;
@@ -11692,7 +11878,7 @@ export interface operations {
11692
11878
  query?: never;
11693
11879
  header: {
11694
11880
  /**
11695
- * @description A private API key (`sk_live_…`, `sk_test_…` on a test store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
11881
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
11696
11882
  * @example {{merchantKey}}
11697
11883
  */
11698
11884
  "X-Client-Key": string;
@@ -11887,7 +12073,7 @@ export interface operations {
11887
12073
  query?: never;
11888
12074
  header: {
11889
12075
  /**
11890
- * @description A private API key (`sk_live_…`, `sk_test_…` on a test store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
12076
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
11891
12077
  * @example {{merchantKey}}
11892
12078
  */
11893
12079
  "X-Client-Key": string;
@@ -12139,7 +12325,7 @@ export interface operations {
12139
12325
  query?: never;
12140
12326
  header: {
12141
12327
  /**
12142
- * @description A private API key (`sk_live_…`, `sk_test_…` on a test store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
12328
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
12143
12329
  * @example {{merchantKey}}
12144
12330
  */
12145
12331
  "X-Client-Key": string;
@@ -12284,7 +12470,7 @@ export interface operations {
12284
12470
  query?: never;
12285
12471
  header: {
12286
12472
  /**
12287
- * @description A private API key (`sk_live_…`, `sk_test_…` on a test store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
12473
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
12288
12474
  * @example {{merchantKey}}
12289
12475
  */
12290
12476
  "X-Client-Key": string;
@@ -12466,7 +12652,7 @@ export interface operations {
12466
12652
  };
12467
12653
  header: {
12468
12654
  /**
12469
- * @description A private API key (`sk_live_…`, `sk_test_…` on a test store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
12655
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
12470
12656
  * @example {{merchantKey}}
12471
12657
  */
12472
12658
  "X-Client-Key": string;
@@ -12625,7 +12811,7 @@ export interface operations {
12625
12811
  query?: never;
12626
12812
  header: {
12627
12813
  /**
12628
- * @description A private API key (`sk_live_…`, `sk_test_…` on a test store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
12814
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
12629
12815
  * @example {{merchantKey}}
12630
12816
  */
12631
12817
  "X-Client-Key": string;
@@ -12810,7 +12996,7 @@ export interface operations {
12810
12996
  query?: never;
12811
12997
  header: {
12812
12998
  /**
12813
- * @description A private API key (`sk_live_…`, `sk_test_…` on a test store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
12999
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
12814
13000
  * @example {{merchantKey}}
12815
13001
  */
12816
13002
  "X-Client-Key": string;
@@ -13014,7 +13200,7 @@ export interface operations {
13014
13200
  query?: never;
13015
13201
  header: {
13016
13202
  /**
13017
- * @description A private API key (`sk_live_…`, `sk_test_…` on a test store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
13203
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
13018
13204
  * @example {{merchantKey}}
13019
13205
  */
13020
13206
  "X-Client-Key": string;
@@ -13208,6 +13394,1302 @@ export interface operations {
13208
13394
  };
13209
13395
  };
13210
13396
  };
13397
+ "locales.list": {
13398
+ parameters: {
13399
+ query?: never;
13400
+ header: {
13401
+ /**
13402
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
13403
+ * @example {{merchantKey}}
13404
+ */
13405
+ "X-Client-Key": string;
13406
+ /** @description Your own correlation id (8–128 chars, `^[A-Za-z0-9_.:-]+$`). Echoed back on the response and on every log line of the request; one is generated when you omit it. */
13407
+ "X-Request-Id"?: string;
13408
+ };
13409
+ path?: never;
13410
+ cookie?: never;
13411
+ };
13412
+ requestBody?: never;
13413
+ responses: {
13414
+ 200: {
13415
+ headers: {
13416
+ [name: string]: unknown;
13417
+ };
13418
+ content: {
13419
+ /**
13420
+ * @example {
13421
+ * "status": "success",
13422
+ * "message": "Locales retrieved",
13423
+ * "data": [
13424
+ * {
13425
+ * "locale": "en",
13426
+ * "name": "English",
13427
+ * "native_name": "English",
13428
+ * "html_lang": "en",
13429
+ * "dir": "ltr",
13430
+ * "published": true,
13431
+ * "is_primary": true
13432
+ * },
13433
+ * {
13434
+ * "locale": "fr",
13435
+ * "name": "French",
13436
+ * "native_name": "Français",
13437
+ * "html_lang": "fr",
13438
+ * "dir": "ltr",
13439
+ * "published": true,
13440
+ * "is_primary": false
13441
+ * },
13442
+ * {
13443
+ * "locale": "de",
13444
+ * "name": "German",
13445
+ * "native_name": "Deutsch",
13446
+ * "html_lang": "de",
13447
+ * "dir": "ltr",
13448
+ * "published": false,
13449
+ * "is_primary": false
13450
+ * }
13451
+ * ]
13452
+ * }
13453
+ */
13454
+ "application/json": Record<string, never>;
13455
+ };
13456
+ };
13457
+ /** @description Unauthorized — the key is missing, unknown, or its mode does not match its store. Switch on `error.code`. */
13458
+ 401: {
13459
+ headers: {
13460
+ [name: string]: unknown;
13461
+ };
13462
+ content: {
13463
+ /**
13464
+ * @example {
13465
+ * "error": {
13466
+ * "code": "invalid_client_key",
13467
+ * "message": "This API accepts only a store private key: send it in the X-Client-Key header (Dashboard → Settings → API keys).",
13468
+ * "doc_url": "https://docs.usequeek.com/docs/versioning-and-errors#invalid_client_key",
13469
+ * "request_id": "5d1c9b3e-8f2a-4b6d-9c07-3e1f8a2b6d45"
13470
+ * }
13471
+ * }
13472
+ */
13473
+ "application/json": components["schemas"]["QueekError"];
13474
+ };
13475
+ };
13476
+ /** @description Forbidden — the key cannot call this operation. Switch on `error.code`. */
13477
+ 403: {
13478
+ headers: {
13479
+ [name: string]: unknown;
13480
+ };
13481
+ content: {
13482
+ /**
13483
+ * @example {
13484
+ * "error": {
13485
+ * "code": "insufficient_scope",
13486
+ * "message": "This API key does not carry the 'merchant-locales-read' scope it was called with.",
13487
+ * "doc_url": "https://docs.usequeek.com/docs/versioning-and-errors#insufficient_scope",
13488
+ * "request_id": "5d1c9b3e-8f2a-4b6d-9c07-3e1f8a2b6d45"
13489
+ * }
13490
+ * }
13491
+ */
13492
+ "application/json": components["schemas"]["QueekError"];
13493
+ };
13494
+ };
13495
+ /** @description Too many requests — slow down and retry. Switch on `error.code`. */
13496
+ 429: {
13497
+ headers: {
13498
+ [name: string]: unknown;
13499
+ };
13500
+ content: {
13501
+ /**
13502
+ * @example {
13503
+ * "error": {
13504
+ * "code": "too_many_requests",
13505
+ * "message": "Too Many Attempts.",
13506
+ * "doc_url": "https://docs.usequeek.com/docs/versioning-and-errors#too_many_requests",
13507
+ * "request_id": "5d1c9b3e-8f2a-4b6d-9c07-3e1f8a2b6d45"
13508
+ * }
13509
+ * }
13510
+ */
13511
+ "application/json": components["schemas"]["QueekError"];
13512
+ };
13513
+ };
13514
+ };
13515
+ };
13516
+ "locales.create": {
13517
+ parameters: {
13518
+ query?: never;
13519
+ header: {
13520
+ /**
13521
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
13522
+ * @example {{merchantKey}}
13523
+ */
13524
+ "X-Client-Key": string;
13525
+ /** @description Your own correlation id (8–128 chars, `^[A-Za-z0-9_.:-]+$`). Echoed back on the response and on every log line of the request; one is generated when you omit it. */
13526
+ "X-Request-Id"?: string;
13527
+ /** @description Retry-safe write key. The same key with the same body replays the stored response for 24h with `Idempotent-Replayed: true`; with a different body it is `409 idempotency_key_reuse`; while the first call is still running it is `409 idempotency_key_in_progress`. */
13528
+ "Idempotency-Key"?: string;
13529
+ };
13530
+ path?: never;
13531
+ cookie?: never;
13532
+ };
13533
+ requestBody: {
13534
+ content: {
13535
+ /**
13536
+ * @example {
13537
+ * "locale": "fr"
13538
+ * }
13539
+ */
13540
+ "application/json": components["schemas"]["StoreVendorLocaleRequest"];
13541
+ };
13542
+ };
13543
+ responses: {
13544
+ 201: {
13545
+ headers: {
13546
+ [name: string]: unknown;
13547
+ };
13548
+ content: {
13549
+ /**
13550
+ * @example {
13551
+ * "status": "success",
13552
+ * "message": "Locale added",
13553
+ * "data": {
13554
+ * "locale": "fr",
13555
+ * "name": "French",
13556
+ * "native_name": "Français",
13557
+ * "html_lang": "fr",
13558
+ * "dir": "ltr",
13559
+ * "published": false,
13560
+ * "is_primary": false
13561
+ * }
13562
+ * }
13563
+ */
13564
+ "application/json": Record<string, never>;
13565
+ };
13566
+ };
13567
+ /** @description Unauthorized — the key is missing, unknown, or its mode does not match its store. Switch on `error.code`. */
13568
+ 401: {
13569
+ headers: {
13570
+ [name: string]: unknown;
13571
+ };
13572
+ content: {
13573
+ /**
13574
+ * @example {
13575
+ * "error": {
13576
+ * "code": "invalid_client_key",
13577
+ * "message": "This API accepts only a store private key: send it in the X-Client-Key header (Dashboard → Settings → API keys).",
13578
+ * "doc_url": "https://docs.usequeek.com/docs/versioning-and-errors#invalid_client_key",
13579
+ * "request_id": "5d1c9b3e-8f2a-4b6d-9c07-3e1f8a2b6d45"
13580
+ * }
13581
+ * }
13582
+ */
13583
+ "application/json": components["schemas"]["QueekError"];
13584
+ };
13585
+ };
13586
+ /** @description Forbidden — the key cannot call this operation. Switch on `error.code`. */
13587
+ 403: {
13588
+ headers: {
13589
+ [name: string]: unknown;
13590
+ };
13591
+ content: {
13592
+ /**
13593
+ * @example {
13594
+ * "error": {
13595
+ * "code": "insufficient_scope",
13596
+ * "message": "This API key does not carry the 'merchant-locales-write' scope it was called with.",
13597
+ * "doc_url": "https://docs.usequeek.com/docs/versioning-and-errors#insufficient_scope",
13598
+ * "request_id": "5d1c9b3e-8f2a-4b6d-9c07-3e1f8a2b6d45"
13599
+ * }
13600
+ * }
13601
+ */
13602
+ "application/json": components["schemas"]["QueekError"];
13603
+ };
13604
+ };
13605
+ /** @description Idempotency conflict — `idempotency_key_reuse` or `idempotency_key_in_progress`. Switch on `error.code`. */
13606
+ 409: {
13607
+ headers: {
13608
+ [name: string]: unknown;
13609
+ };
13610
+ content: {
13611
+ /**
13612
+ * @example {
13613
+ * "error": {
13614
+ * "code": "idempotency_key_reuse",
13615
+ * "message": "This Idempotency-Key was already used for a different request body. Use a new key for a new request.",
13616
+ * "doc_url": "https://docs.usequeek.com/docs/versioning-and-errors#idempotency_key_reuse",
13617
+ * "request_id": "5d1c9b3e-8f2a-4b6d-9c07-3e1f8a2b6d45"
13618
+ * }
13619
+ * }
13620
+ */
13621
+ "application/json": components["schemas"]["QueekError"];
13622
+ };
13623
+ };
13624
+ /** @description Validation failed — `error.errors` carries per-field detail. Switch on `error.code`. The store primary locale answers translation_locale_is_primary instead — it is the source language, never a translation target. */
13625
+ 422: {
13626
+ headers: {
13627
+ [name: string]: unknown;
13628
+ };
13629
+ content: {
13630
+ /**
13631
+ * @example {
13632
+ * "error": {
13633
+ * "code": "validation_failed",
13634
+ * "message": "The selected locale is invalid.",
13635
+ * "field": "locale",
13636
+ * "errors": {
13637
+ * "locale": [
13638
+ * "The selected locale is invalid."
13639
+ * ]
13640
+ * },
13641
+ * "doc_url": "https://docs.usequeek.com/docs/versioning-and-errors#validation_failed",
13642
+ * "request_id": "5d1c9b3e-8f2a-4b6d-9c07-3e1f8a2b6d45"
13643
+ * }
13644
+ * }
13645
+ */
13646
+ "application/json": components["schemas"]["QueekError"];
13647
+ };
13648
+ };
13649
+ /** @description Too many requests — slow down and retry. Switch on `error.code`. */
13650
+ 429: {
13651
+ headers: {
13652
+ [name: string]: unknown;
13653
+ };
13654
+ content: {
13655
+ /**
13656
+ * @example {
13657
+ * "error": {
13658
+ * "code": "too_many_requests",
13659
+ * "message": "Too Many Attempts.",
13660
+ * "doc_url": "https://docs.usequeek.com/docs/versioning-and-errors#too_many_requests",
13661
+ * "request_id": "5d1c9b3e-8f2a-4b6d-9c07-3e1f8a2b6d45"
13662
+ * }
13663
+ * }
13664
+ */
13665
+ "application/json": components["schemas"]["QueekError"];
13666
+ };
13667
+ };
13668
+ };
13669
+ };
13670
+ "locales.delete": {
13671
+ parameters: {
13672
+ query?: never;
13673
+ header: {
13674
+ /**
13675
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
13676
+ * @example {{merchantKey}}
13677
+ */
13678
+ "X-Client-Key": string;
13679
+ /** @description Your own correlation id (8–128 chars, `^[A-Za-z0-9_.:-]+$`). Echoed back on the response and on every log line of the request; one is generated when you omit it. */
13680
+ "X-Request-Id"?: string;
13681
+ /** @description Retry-safe write key. The same key with the same body replays the stored response for 24h with `Idempotent-Replayed: true`; with a different body it is `409 idempotency_key_reuse`; while the first call is still running it is `409 idempotency_key_in_progress`. */
13682
+ "Idempotency-Key"?: string;
13683
+ };
13684
+ path: {
13685
+ /** @example de */
13686
+ locale: string;
13687
+ };
13688
+ cookie?: never;
13689
+ };
13690
+ requestBody?: never;
13691
+ responses: {
13692
+ 200: {
13693
+ headers: {
13694
+ [name: string]: unknown;
13695
+ };
13696
+ content: {
13697
+ /**
13698
+ * @example {
13699
+ * "status": "success",
13700
+ * "message": "Locale removed",
13701
+ * "data": {
13702
+ * "locale": "de",
13703
+ * "deleted": true
13704
+ * }
13705
+ * }
13706
+ */
13707
+ "application/json": Record<string, never>;
13708
+ };
13709
+ };
13710
+ /** @description Unauthorized — the key is missing, unknown, or its mode does not match its store. Switch on `error.code`. */
13711
+ 401: {
13712
+ headers: {
13713
+ [name: string]: unknown;
13714
+ };
13715
+ content: {
13716
+ /**
13717
+ * @example {
13718
+ * "error": {
13719
+ * "code": "invalid_client_key",
13720
+ * "message": "This API accepts only a store private key: send it in the X-Client-Key header (Dashboard → Settings → API keys).",
13721
+ * "doc_url": "https://docs.usequeek.com/docs/versioning-and-errors#invalid_client_key",
13722
+ * "request_id": "5d1c9b3e-8f2a-4b6d-9c07-3e1f8a2b6d45"
13723
+ * }
13724
+ * }
13725
+ */
13726
+ "application/json": components["schemas"]["QueekError"];
13727
+ };
13728
+ };
13729
+ /** @description Forbidden — the key cannot call this operation. Switch on `error.code`. */
13730
+ 403: {
13731
+ headers: {
13732
+ [name: string]: unknown;
13733
+ };
13734
+ content: {
13735
+ /**
13736
+ * @example {
13737
+ * "error": {
13738
+ * "code": "insufficient_scope",
13739
+ * "message": "This API key does not carry the 'merchant-locales-write' scope it was called with.",
13740
+ * "doc_url": "https://docs.usequeek.com/docs/versioning-and-errors#insufficient_scope",
13741
+ * "request_id": "5d1c9b3e-8f2a-4b6d-9c07-3e1f8a2b6d45"
13742
+ * }
13743
+ * }
13744
+ */
13745
+ "application/json": components["schemas"]["QueekError"];
13746
+ };
13747
+ };
13748
+ /** @description Not found — the addressed record does not exist at this store. Switch on `error.code`. */
13749
+ 404: {
13750
+ headers: {
13751
+ [name: string]: unknown;
13752
+ };
13753
+ content: {
13754
+ /**
13755
+ * @example {
13756
+ * "error": {
13757
+ * "code": "not_found",
13758
+ * "message": "Locale not found.",
13759
+ * "doc_url": "https://docs.usequeek.com/docs/versioning-and-errors#not_found",
13760
+ * "request_id": "5d1c9b3e-8f2a-4b6d-9c07-3e1f8a2b6d45"
13761
+ * }
13762
+ * }
13763
+ */
13764
+ "application/json": components["schemas"]["QueekError"];
13765
+ };
13766
+ };
13767
+ /** @description Idempotency conflict — `idempotency_key_reuse` or `idempotency_key_in_progress`. Switch on `error.code`. */
13768
+ 409: {
13769
+ headers: {
13770
+ [name: string]: unknown;
13771
+ };
13772
+ content: {
13773
+ /**
13774
+ * @example {
13775
+ * "error": {
13776
+ * "code": "idempotency_key_reuse",
13777
+ * "message": "This Idempotency-Key was already used for a different request body. Use a new key for a new request.",
13778
+ * "doc_url": "https://docs.usequeek.com/docs/versioning-and-errors#idempotency_key_reuse",
13779
+ * "request_id": "5d1c9b3e-8f2a-4b6d-9c07-3e1f8a2b6d45"
13780
+ * }
13781
+ * }
13782
+ */
13783
+ "application/json": components["schemas"]["QueekError"];
13784
+ };
13785
+ };
13786
+ /** @description Too many requests — slow down and retry. Switch on `error.code`. */
13787
+ 429: {
13788
+ headers: {
13789
+ [name: string]: unknown;
13790
+ };
13791
+ content: {
13792
+ /**
13793
+ * @example {
13794
+ * "error": {
13795
+ * "code": "too_many_requests",
13796
+ * "message": "Too Many Attempts.",
13797
+ * "doc_url": "https://docs.usequeek.com/docs/versioning-and-errors#too_many_requests",
13798
+ * "request_id": "5d1c9b3e-8f2a-4b6d-9c07-3e1f8a2b6d45"
13799
+ * }
13800
+ * }
13801
+ */
13802
+ "application/json": components["schemas"]["QueekError"];
13803
+ };
13804
+ };
13805
+ };
13806
+ };
13807
+ "locales.update": {
13808
+ parameters: {
13809
+ query?: never;
13810
+ header: {
13811
+ /**
13812
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
13813
+ * @example {{merchantKey}}
13814
+ */
13815
+ "X-Client-Key": string;
13816
+ /** @description Your own correlation id (8–128 chars, `^[A-Za-z0-9_.:-]+$`). Echoed back on the response and on every log line of the request; one is generated when you omit it. */
13817
+ "X-Request-Id"?: string;
13818
+ /** @description Retry-safe write key. The same key with the same body replays the stored response for 24h with `Idempotent-Replayed: true`; with a different body it is `409 idempotency_key_reuse`; while the first call is still running it is `409 idempotency_key_in_progress`. */
13819
+ "Idempotency-Key"?: string;
13820
+ };
13821
+ path: {
13822
+ /** @example fr */
13823
+ locale: string;
13824
+ };
13825
+ cookie?: never;
13826
+ };
13827
+ requestBody: {
13828
+ content: {
13829
+ /**
13830
+ * @example {
13831
+ * "published": true
13832
+ * }
13833
+ */
13834
+ "application/json": components["schemas"]["UpdateVendorLocaleRequest"];
13835
+ };
13836
+ };
13837
+ responses: {
13838
+ 200: {
13839
+ headers: {
13840
+ [name: string]: unknown;
13841
+ };
13842
+ content: {
13843
+ /**
13844
+ * @example {
13845
+ * "status": "success",
13846
+ * "message": "Locale updated",
13847
+ * "data": {
13848
+ * "locale": "fr",
13849
+ * "name": "French",
13850
+ * "native_name": "Français",
13851
+ * "html_lang": "fr",
13852
+ * "dir": "ltr",
13853
+ * "published": true,
13854
+ * "is_primary": false
13855
+ * }
13856
+ * }
13857
+ */
13858
+ "application/json": Record<string, never>;
13859
+ };
13860
+ };
13861
+ /** @description Unauthorized — the key is missing, unknown, or its mode does not match its store. Switch on `error.code`. */
13862
+ 401: {
13863
+ headers: {
13864
+ [name: string]: unknown;
13865
+ };
13866
+ content: {
13867
+ /**
13868
+ * @example {
13869
+ * "error": {
13870
+ * "code": "invalid_client_key",
13871
+ * "message": "This API accepts only a store private key: send it in the X-Client-Key header (Dashboard → Settings → API keys).",
13872
+ * "doc_url": "https://docs.usequeek.com/docs/versioning-and-errors#invalid_client_key",
13873
+ * "request_id": "5d1c9b3e-8f2a-4b6d-9c07-3e1f8a2b6d45"
13874
+ * }
13875
+ * }
13876
+ */
13877
+ "application/json": components["schemas"]["QueekError"];
13878
+ };
13879
+ };
13880
+ /** @description Forbidden — the key cannot call this operation. Switch on `error.code`. */
13881
+ 403: {
13882
+ headers: {
13883
+ [name: string]: unknown;
13884
+ };
13885
+ content: {
13886
+ /**
13887
+ * @example {
13888
+ * "error": {
13889
+ * "code": "insufficient_scope",
13890
+ * "message": "This API key does not carry the 'merchant-locales-write' scope it was called with.",
13891
+ * "doc_url": "https://docs.usequeek.com/docs/versioning-and-errors#insufficient_scope",
13892
+ * "request_id": "5d1c9b3e-8f2a-4b6d-9c07-3e1f8a2b6d45"
13893
+ * }
13894
+ * }
13895
+ */
13896
+ "application/json": components["schemas"]["QueekError"];
13897
+ };
13898
+ };
13899
+ /** @description Not found — the addressed record does not exist at this store. Switch on `error.code`. */
13900
+ 404: {
13901
+ headers: {
13902
+ [name: string]: unknown;
13903
+ };
13904
+ content: {
13905
+ /**
13906
+ * @example {
13907
+ * "error": {
13908
+ * "code": "not_found",
13909
+ * "message": "Locale not found.",
13910
+ * "doc_url": "https://docs.usequeek.com/docs/versioning-and-errors#not_found",
13911
+ * "request_id": "5d1c9b3e-8f2a-4b6d-9c07-3e1f8a2b6d45"
13912
+ * }
13913
+ * }
13914
+ */
13915
+ "application/json": components["schemas"]["QueekError"];
13916
+ };
13917
+ };
13918
+ /** @description Idempotency conflict — `idempotency_key_reuse` or `idempotency_key_in_progress`. Switch on `error.code`. */
13919
+ 409: {
13920
+ headers: {
13921
+ [name: string]: unknown;
13922
+ };
13923
+ content: {
13924
+ /**
13925
+ * @example {
13926
+ * "error": {
13927
+ * "code": "idempotency_key_reuse",
13928
+ * "message": "This Idempotency-Key was already used for a different request body. Use a new key for a new request.",
13929
+ * "doc_url": "https://docs.usequeek.com/docs/versioning-and-errors#idempotency_key_reuse",
13930
+ * "request_id": "5d1c9b3e-8f2a-4b6d-9c07-3e1f8a2b6d45"
13931
+ * }
13932
+ * }
13933
+ */
13934
+ "application/json": components["schemas"]["QueekError"];
13935
+ };
13936
+ };
13937
+ /** @description Validation failed — `error.errors` carries per-field detail. Switch on `error.code`. Publishing the store primary locale answers translation_locale_is_primary instead — it is the source language, never a translation target. */
13938
+ 422: {
13939
+ headers: {
13940
+ [name: string]: unknown;
13941
+ };
13942
+ content: {
13943
+ /**
13944
+ * @example {
13945
+ * "error": {
13946
+ * "code": "validation_failed",
13947
+ * "message": "The published field must be true or false.",
13948
+ * "field": "published",
13949
+ * "errors": {
13950
+ * "published": [
13951
+ * "The published field must be true or false."
13952
+ * ]
13953
+ * },
13954
+ * "doc_url": "https://docs.usequeek.com/docs/versioning-and-errors#validation_failed",
13955
+ * "request_id": "5d1c9b3e-8f2a-4b6d-9c07-3e1f8a2b6d45"
13956
+ * }
13957
+ * }
13958
+ */
13959
+ "application/json": components["schemas"]["QueekError"];
13960
+ };
13961
+ };
13962
+ /** @description Too many requests — slow down and retry. Switch on `error.code`. */
13963
+ 429: {
13964
+ headers: {
13965
+ [name: string]: unknown;
13966
+ };
13967
+ content: {
13968
+ /**
13969
+ * @example {
13970
+ * "error": {
13971
+ * "code": "too_many_requests",
13972
+ * "message": "Too Many Attempts.",
13973
+ * "doc_url": "https://docs.usequeek.com/docs/versioning-and-errors#too_many_requests",
13974
+ * "request_id": "5d1c9b3e-8f2a-4b6d-9c07-3e1f8a2b6d45"
13975
+ * }
13976
+ * }
13977
+ */
13978
+ "application/json": components["schemas"]["QueekError"];
13979
+ };
13980
+ };
13981
+ };
13982
+ };
13983
+ "translatable_resources.list": {
13984
+ parameters: {
13985
+ query: {
13986
+ /** @example 2 */
13987
+ limit?: number | null;
13988
+ starting_after?: string | null;
13989
+ /** @example product */
13990
+ type: "product" | "product_variation" | "product_variation_item" | "collection" | "category" | "page" | "post" | "menu";
13991
+ };
13992
+ header: {
13993
+ /**
13994
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
13995
+ * @example {{merchantKey}}
13996
+ */
13997
+ "X-Client-Key": string;
13998
+ /** @description Your own correlation id (8–128 chars, `^[A-Za-z0-9_.:-]+$`). Echoed back on the response and on every log line of the request; one is generated when you omit it. */
13999
+ "X-Request-Id"?: string;
14000
+ };
14001
+ path?: never;
14002
+ cookie?: never;
14003
+ };
14004
+ requestBody?: never;
14005
+ responses: {
14006
+ 200: {
14007
+ headers: {
14008
+ [name: string]: unknown;
14009
+ };
14010
+ content: {
14011
+ /**
14012
+ * @example {
14013
+ * "data": [
14014
+ * {
14015
+ * "type": "product",
14016
+ * "id": 20417,
14017
+ * "content": [
14018
+ * {
14019
+ * "key": "title",
14020
+ * "value": "Jollof Rice Party Pack",
14021
+ * "digest": "717305e87d2a399c8e9bb34ec9185ed112d0f79dad537eef7390b4a16fd23227",
14022
+ * "type": "text"
14023
+ * },
14024
+ * {
14025
+ * "key": "description",
14026
+ * "value": "Firewood-smoked party jollof cooked to order, served with dodo and six pieces of grilled chicken. Feeds 10.",
14027
+ * "digest": "fe36ee78505f529bfdd4a2712f6d5cee201e4260b3d9a814535b1b6b92d3622c",
14028
+ * "type": "html"
14029
+ * },
14030
+ * {
14031
+ * "key": "excerpt",
14032
+ * "value": "Smoky party jollof for 10, with fried plantain and grilled chicken.",
14033
+ * "digest": "5fd1090cc7510d55f0cba61ef520a4e5b8c2fbce650a2032ae84cf2a1c0584cd",
14034
+ * "type": "text"
14035
+ * }
14036
+ * ]
14037
+ * },
14038
+ * {
14039
+ * "type": "product",
14040
+ * "id": 20418,
14041
+ * "content": [
14042
+ * {
14043
+ * "key": "title",
14044
+ * "value": "Homemade Chapman",
14045
+ * "digest": "1b3a09a0177033cf7132f3b625228c66f2112485288611e3fd4309e4cbc3b4ed",
14046
+ * "type": "text"
14047
+ * },
14048
+ * {
14049
+ * "key": "description",
14050
+ * "value": "Our house Chapman, mixed fresh every morning. Served chilled.",
14051
+ * "digest": "5dc5de76314169d70ac5f1008ed3c62e6ed0ac4ebd6b6be334e3a316a355c8e6",
14052
+ * "type": "html"
14053
+ * },
14054
+ * {
14055
+ * "key": "excerpt",
14056
+ * "value": "Fresh Chapman with cucumber and orange slices.",
14057
+ * "digest": "da2da5ed20ba1c1a185ffcf1ed030b1e0f4d0455283599b9b950d7fba32b42e9",
14058
+ * "type": "text"
14059
+ * }
14060
+ * ]
14061
+ * }
14062
+ * ],
14063
+ * "has_more": true,
14064
+ * "next_cursor": "eyJpZCI6MjA0MTgsIl9wb2ludHNUb05leHRJdGVtcyI6dHJ1ZX0"
14065
+ * }
14066
+ */
14067
+ "application/json": Record<string, never>;
14068
+ };
14069
+ };
14070
+ /** @description Unauthorized — the key is missing, unknown, or its mode does not match its store. Switch on `error.code`. */
14071
+ 401: {
14072
+ headers: {
14073
+ [name: string]: unknown;
14074
+ };
14075
+ content: {
14076
+ /**
14077
+ * @example {
14078
+ * "error": {
14079
+ * "code": "invalid_client_key",
14080
+ * "message": "This API accepts only a store private key: send it in the X-Client-Key header (Dashboard → Settings → API keys).",
14081
+ * "doc_url": "https://docs.usequeek.com/docs/versioning-and-errors#invalid_client_key",
14082
+ * "request_id": "5d1c9b3e-8f2a-4b6d-9c07-3e1f8a2b6d45"
14083
+ * }
14084
+ * }
14085
+ */
14086
+ "application/json": components["schemas"]["QueekError"];
14087
+ };
14088
+ };
14089
+ /** @description Forbidden — the key cannot call this operation. Switch on `error.code`. */
14090
+ 403: {
14091
+ headers: {
14092
+ [name: string]: unknown;
14093
+ };
14094
+ content: {
14095
+ /**
14096
+ * @example {
14097
+ * "error": {
14098
+ * "code": "insufficient_scope",
14099
+ * "message": "This API key does not carry the 'merchant-translations-read' scope it was called with.",
14100
+ * "doc_url": "https://docs.usequeek.com/docs/versioning-and-errors#insufficient_scope",
14101
+ * "request_id": "5d1c9b3e-8f2a-4b6d-9c07-3e1f8a2b6d45"
14102
+ * }
14103
+ * }
14104
+ */
14105
+ "application/json": components["schemas"]["QueekError"];
14106
+ };
14107
+ };
14108
+ /** @description Validation failed — `error.errors` carries per-field detail. Switch on `error.code`. */
14109
+ 422: {
14110
+ headers: {
14111
+ [name: string]: unknown;
14112
+ };
14113
+ content: {
14114
+ /**
14115
+ * @example {
14116
+ * "error": {
14117
+ * "code": "validation_failed",
14118
+ * "message": "The selected type is invalid.",
14119
+ * "field": "type",
14120
+ * "errors": {
14121
+ * "type": [
14122
+ * "The selected type is invalid."
14123
+ * ]
14124
+ * },
14125
+ * "doc_url": "https://docs.usequeek.com/docs/versioning-and-errors#validation_failed",
14126
+ * "request_id": "5d1c9b3e-8f2a-4b6d-9c07-3e1f8a2b6d45"
14127
+ * }
14128
+ * }
14129
+ */
14130
+ "application/json": components["schemas"]["QueekError"];
14131
+ };
14132
+ };
14133
+ /** @description Too many requests — slow down and retry. Switch on `error.code`. */
14134
+ 429: {
14135
+ headers: {
14136
+ [name: string]: unknown;
14137
+ };
14138
+ content: {
14139
+ /**
14140
+ * @example {
14141
+ * "error": {
14142
+ * "code": "too_many_requests",
14143
+ * "message": "Too Many Attempts.",
14144
+ * "doc_url": "https://docs.usequeek.com/docs/versioning-and-errors#too_many_requests",
14145
+ * "request_id": "5d1c9b3e-8f2a-4b6d-9c07-3e1f8a2b6d45"
14146
+ * }
14147
+ * }
14148
+ */
14149
+ "application/json": components["schemas"]["QueekError"];
14150
+ };
14151
+ };
14152
+ };
14153
+ };
14154
+ "translatable_resources.retrieve": {
14155
+ parameters: {
14156
+ query?: {
14157
+ /** @example fr */
14158
+ locale?: "en" | "fr" | "es" | "pt" | "pt-BR" | "de" | "it" | "nl" | "pl" | "ru" | "uk" | "tr" | "ar" | "ur" | "fa" | "he" | "hi" | "ja" | "ko" | "zh-CN" | "zh-TW" | "id" | "ms" | "vi" | "th" | "tl" | "sw" | "ha" | "yo" | "ig" | "pcm" | null;
14159
+ };
14160
+ header: {
14161
+ /**
14162
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
14163
+ * @example {{merchantKey}}
14164
+ */
14165
+ "X-Client-Key": string;
14166
+ /** @description Your own correlation id (8–128 chars, `^[A-Za-z0-9_.:-]+$`). Echoed back on the response and on every log line of the request; one is generated when you omit it. */
14167
+ "X-Request-Id"?: string;
14168
+ };
14169
+ path: {
14170
+ /** @example product */
14171
+ type: string;
14172
+ /** @example 20417 */
14173
+ id: string;
14174
+ };
14175
+ cookie?: never;
14176
+ };
14177
+ requestBody?: never;
14178
+ responses: {
14179
+ 200: {
14180
+ headers: {
14181
+ [name: string]: unknown;
14182
+ };
14183
+ content: {
14184
+ /**
14185
+ * @example {
14186
+ * "status": "success",
14187
+ * "message": "Translatable resource retrieved",
14188
+ * "data": {
14189
+ * "type": "product",
14190
+ * "id": 20417,
14191
+ * "content": [
14192
+ * {
14193
+ * "key": "title",
14194
+ * "value": "Jollof Rice Party Pack",
14195
+ * "digest": "717305e87d2a399c8e9bb34ec9185ed112d0f79dad537eef7390b4a16fd23227",
14196
+ * "type": "text"
14197
+ * },
14198
+ * {
14199
+ * "key": "description",
14200
+ * "value": "Firewood-smoked party jollof cooked to order, served with dodo and six pieces of grilled chicken. Feeds 10.",
14201
+ * "digest": "fe36ee78505f529bfdd4a2712f6d5cee201e4260b3d9a814535b1b6b92d3622c",
14202
+ * "type": "html"
14203
+ * },
14204
+ * {
14205
+ * "key": "excerpt",
14206
+ * "value": "Smoky party jollof for 10, with fried plantain and grilled chicken.",
14207
+ * "digest": "5fd1090cc7510d55f0cba61ef520a4e5b8c2fbce650a2032ae84cf2a1c0584cd",
14208
+ * "type": "text"
14209
+ * }
14210
+ * ],
14211
+ * "translations": [
14212
+ * {
14213
+ * "key": "title",
14214
+ * "locale": "fr",
14215
+ * "value": "Pack Fête Jollof",
14216
+ * "outdated": false,
14217
+ * "updated_at": "2026-09-30T12:00:00+01:00"
14218
+ * }
14219
+ * ]
14220
+ * }
14221
+ * }
14222
+ */
14223
+ "application/json": {
14224
+ /** @constant */
14225
+ status: "success";
14226
+ /** @constant */
14227
+ message: "Translatable resource retrieved";
14228
+ data: string[];
14229
+ meta: string;
14230
+ };
14231
+ };
14232
+ };
14233
+ /** @description Unauthorized — the key is missing, unknown, or its mode does not match its store. Switch on `error.code`. */
14234
+ 401: {
14235
+ headers: {
14236
+ [name: string]: unknown;
14237
+ };
14238
+ content: {
14239
+ /**
14240
+ * @example {
14241
+ * "error": {
14242
+ * "code": "invalid_client_key",
14243
+ * "message": "This API accepts only a store private key: send it in the X-Client-Key header (Dashboard → Settings → API keys).",
14244
+ * "doc_url": "https://docs.usequeek.com/docs/versioning-and-errors#invalid_client_key",
14245
+ * "request_id": "5d1c9b3e-8f2a-4b6d-9c07-3e1f8a2b6d45"
14246
+ * }
14247
+ * }
14248
+ */
14249
+ "application/json": components["schemas"]["QueekError"];
14250
+ };
14251
+ };
14252
+ /** @description Forbidden — the key cannot call this operation. Switch on `error.code`. */
14253
+ 403: {
14254
+ headers: {
14255
+ [name: string]: unknown;
14256
+ };
14257
+ content: {
14258
+ /**
14259
+ * @example {
14260
+ * "error": {
14261
+ * "code": "insufficient_scope",
14262
+ * "message": "This API key does not carry the 'merchant-translations-read' scope it was called with.",
14263
+ * "doc_url": "https://docs.usequeek.com/docs/versioning-and-errors#insufficient_scope",
14264
+ * "request_id": "5d1c9b3e-8f2a-4b6d-9c07-3e1f8a2b6d45"
14265
+ * }
14266
+ * }
14267
+ */
14268
+ "application/json": components["schemas"]["QueekError"];
14269
+ };
14270
+ };
14271
+ /** @description Not found — the addressed record does not exist at this store. Switch on `error.code`. */
14272
+ 404: {
14273
+ headers: {
14274
+ [name: string]: unknown;
14275
+ };
14276
+ content: {
14277
+ /**
14278
+ * @example {
14279
+ * "error": {
14280
+ * "code": "not_found",
14281
+ * "message": "Translatable resource not found.",
14282
+ * "doc_url": "https://docs.usequeek.com/docs/versioning-and-errors#not_found",
14283
+ * "request_id": "5d1c9b3e-8f2a-4b6d-9c07-3e1f8a2b6d45"
14284
+ * }
14285
+ * }
14286
+ */
14287
+ "application/json": components["schemas"]["QueekError"];
14288
+ };
14289
+ };
14290
+ /** @description Validation failed — `error.errors` carries per-field detail. Switch on `error.code`. */
14291
+ 422: {
14292
+ headers: {
14293
+ [name: string]: unknown;
14294
+ };
14295
+ content: {
14296
+ /**
14297
+ * @example {
14298
+ * "error": {
14299
+ * "code": "validation_failed",
14300
+ * "message": "The selected locale is invalid.",
14301
+ * "field": "locale",
14302
+ * "errors": {
14303
+ * "locale": [
14304
+ * "The selected locale is invalid."
14305
+ * ]
14306
+ * },
14307
+ * "doc_url": "https://docs.usequeek.com/docs/versioning-and-errors#validation_failed",
14308
+ * "request_id": "5d1c9b3e-8f2a-4b6d-9c07-3e1f8a2b6d45"
14309
+ * }
14310
+ * }
14311
+ */
14312
+ "application/json": components["schemas"]["QueekError"];
14313
+ };
14314
+ };
14315
+ /** @description Too many requests — slow down and retry. Switch on `error.code`. */
14316
+ 429: {
14317
+ headers: {
14318
+ [name: string]: unknown;
14319
+ };
14320
+ content: {
14321
+ /**
14322
+ * @example {
14323
+ * "error": {
14324
+ * "code": "too_many_requests",
14325
+ * "message": "Too Many Attempts.",
14326
+ * "doc_url": "https://docs.usequeek.com/docs/versioning-and-errors#too_many_requests",
14327
+ * "request_id": "5d1c9b3e-8f2a-4b6d-9c07-3e1f8a2b6d45"
14328
+ * }
14329
+ * }
14330
+ */
14331
+ "application/json": components["schemas"]["QueekError"];
14332
+ };
14333
+ };
14334
+ };
14335
+ };
14336
+ "translations.update": {
14337
+ parameters: {
14338
+ query?: never;
14339
+ header: {
14340
+ /**
14341
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
14342
+ * @example {{merchantKey}}
14343
+ */
14344
+ "X-Client-Key": string;
14345
+ /** @description Your own correlation id (8–128 chars, `^[A-Za-z0-9_.:-]+$`). Echoed back on the response and on every log line of the request; one is generated when you omit it. */
14346
+ "X-Request-Id"?: string;
14347
+ /** @description Retry-safe write key. The same key with the same body replays the stored response for 24h with `Idempotent-Replayed: true`; with a different body it is `409 idempotency_key_reuse`; while the first call is still running it is `409 idempotency_key_in_progress`. */
14348
+ "Idempotency-Key"?: string;
14349
+ };
14350
+ path: {
14351
+ /** @example product */
14352
+ type: string;
14353
+ /** @example 20417 */
14354
+ id: string;
14355
+ };
14356
+ cookie?: never;
14357
+ };
14358
+ requestBody: {
14359
+ content: {
14360
+ /**
14361
+ * @example {
14362
+ * "translations": [
14363
+ * {
14364
+ * "locale": "fr",
14365
+ * "key": "title",
14366
+ * "value": "Pack Fête Jollof",
14367
+ * "digest": "717305e87d2a399c8e9bb34ec9185ed112d0f79dad537eef7390b4a16fd23227"
14368
+ * }
14369
+ * ]
14370
+ * }
14371
+ */
14372
+ "application/json": components["schemas"]["RegisterTranslationsRequest"];
14373
+ };
14374
+ };
14375
+ responses: {
14376
+ 200: {
14377
+ headers: {
14378
+ [name: string]: unknown;
14379
+ };
14380
+ content: {
14381
+ /**
14382
+ * @example {
14383
+ * "status": "success",
14384
+ * "message": "Translations registered",
14385
+ * "data": {
14386
+ * "type": "product",
14387
+ * "id": 20417,
14388
+ * "translations": [
14389
+ * {
14390
+ * "key": "title",
14391
+ * "locale": "fr",
14392
+ * "value": "Pack Fête Jollof",
14393
+ * "outdated": false,
14394
+ * "updated_at": "2026-09-30T12:00:00+01:00"
14395
+ * }
14396
+ * ]
14397
+ * }
14398
+ * }
14399
+ */
14400
+ "application/json": Record<string, never>;
14401
+ };
14402
+ };
14403
+ /** @description Unauthorized — the key is missing, unknown, or its mode does not match its store. Switch on `error.code`. */
14404
+ 401: {
14405
+ headers: {
14406
+ [name: string]: unknown;
14407
+ };
14408
+ content: {
14409
+ /**
14410
+ * @example {
14411
+ * "error": {
14412
+ * "code": "invalid_client_key",
14413
+ * "message": "This API accepts only a store private key: send it in the X-Client-Key header (Dashboard → Settings → API keys).",
14414
+ * "doc_url": "https://docs.usequeek.com/docs/versioning-and-errors#invalid_client_key",
14415
+ * "request_id": "5d1c9b3e-8f2a-4b6d-9c07-3e1f8a2b6d45"
14416
+ * }
14417
+ * }
14418
+ */
14419
+ "application/json": components["schemas"]["QueekError"];
14420
+ };
14421
+ };
14422
+ /** @description Forbidden — the key cannot call this operation. Switch on `error.code`. */
14423
+ 403: {
14424
+ headers: {
14425
+ [name: string]: unknown;
14426
+ };
14427
+ content: {
14428
+ /**
14429
+ * @example {
14430
+ * "error": {
14431
+ * "code": "insufficient_scope",
14432
+ * "message": "This API key does not carry the 'merchant-translations-write' scope it was called with.",
14433
+ * "doc_url": "https://docs.usequeek.com/docs/versioning-and-errors#insufficient_scope",
14434
+ * "request_id": "5d1c9b3e-8f2a-4b6d-9c07-3e1f8a2b6d45"
14435
+ * }
14436
+ * }
14437
+ */
14438
+ "application/json": components["schemas"]["QueekError"];
14439
+ };
14440
+ };
14441
+ /** @description Not found — the addressed record does not exist at this store. Switch on `error.code`. */
14442
+ 404: {
14443
+ headers: {
14444
+ [name: string]: unknown;
14445
+ };
14446
+ content: {
14447
+ /**
14448
+ * @example {
14449
+ * "error": {
14450
+ * "code": "not_found",
14451
+ * "message": "Translatable resource not found.",
14452
+ * "doc_url": "https://docs.usequeek.com/docs/versioning-and-errors#not_found",
14453
+ * "request_id": "5d1c9b3e-8f2a-4b6d-9c07-3e1f8a2b6d45"
14454
+ * }
14455
+ * }
14456
+ */
14457
+ "application/json": components["schemas"]["QueekError"];
14458
+ };
14459
+ };
14460
+ /** @description Idempotency conflict — `idempotency_key_reuse` or `idempotency_key_in_progress`. Switch on `error.code`. */
14461
+ 409: {
14462
+ headers: {
14463
+ [name: string]: unknown;
14464
+ };
14465
+ content: {
14466
+ /**
14467
+ * @example {
14468
+ * "error": {
14469
+ * "code": "idempotency_key_reuse",
14470
+ * "message": "This Idempotency-Key was already used for a different request body. Use a new key for a new request.",
14471
+ * "doc_url": "https://docs.usequeek.com/docs/versioning-and-errors#idempotency_key_reuse",
14472
+ * "request_id": "5d1c9b3e-8f2a-4b6d-9c07-3e1f8a2b6d45"
14473
+ * }
14474
+ * }
14475
+ */
14476
+ "application/json": components["schemas"]["QueekError"];
14477
+ };
14478
+ };
14479
+ /** @description Validation failed — `error.errors` carries per-field detail. Switch on `error.code`. An unknown locale, key or stale digest answers translation_unknown_locale, translation_unknown_key or translation_digest_stale instead, with the item index. */
14480
+ 422: {
14481
+ headers: {
14482
+ [name: string]: unknown;
14483
+ };
14484
+ content: {
14485
+ /**
14486
+ * @example {
14487
+ * "error": {
14488
+ * "code": "validation_failed",
14489
+ * "message": "The translations field is required.",
14490
+ * "field": "translations",
14491
+ * "errors": {
14492
+ * "translations": [
14493
+ * "The translations field is required."
14494
+ * ]
14495
+ * },
14496
+ * "doc_url": "https://docs.usequeek.com/docs/versioning-and-errors#validation_failed",
14497
+ * "request_id": "5d1c9b3e-8f2a-4b6d-9c07-3e1f8a2b6d45"
14498
+ * }
14499
+ * }
14500
+ */
14501
+ "application/json": components["schemas"]["QueekError"];
14502
+ };
14503
+ };
14504
+ /** @description Too many requests — slow down and retry. Switch on `error.code`. */
14505
+ 429: {
14506
+ headers: {
14507
+ [name: string]: unknown;
14508
+ };
14509
+ content: {
14510
+ /**
14511
+ * @example {
14512
+ * "error": {
14513
+ * "code": "too_many_requests",
14514
+ * "message": "Too Many Attempts.",
14515
+ * "doc_url": "https://docs.usequeek.com/docs/versioning-and-errors#too_many_requests",
14516
+ * "request_id": "5d1c9b3e-8f2a-4b6d-9c07-3e1f8a2b6d45"
14517
+ * }
14518
+ * }
14519
+ */
14520
+ "application/json": components["schemas"]["QueekError"];
14521
+ };
14522
+ };
14523
+ };
14524
+ };
14525
+ "translations.delete": {
14526
+ parameters: {
14527
+ query?: {
14528
+ "locales[]"?: "en" | "fr" | "es" | "pt" | "pt-BR" | "de" | "it" | "nl" | "pl" | "ru" | "uk" | "tr" | "ar" | "ur" | "fa" | "he" | "hi" | "ja" | "ko" | "zh-CN" | "zh-TW" | "id" | "ms" | "vi" | "th" | "tl" | "sw" | "ha" | "yo" | "ig" | "pcm";
14529
+ "keys[]"?: string[];
14530
+ };
14531
+ header: {
14532
+ /**
14533
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
14534
+ * @example {{merchantKey}}
14535
+ */
14536
+ "X-Client-Key": string;
14537
+ /** @description Your own correlation id (8–128 chars, `^[A-Za-z0-9_.:-]+$`). Echoed back on the response and on every log line of the request; one is generated when you omit it. */
14538
+ "X-Request-Id"?: string;
14539
+ /** @description Retry-safe write key. The same key with the same body replays the stored response for 24h with `Idempotent-Replayed: true`; with a different body it is `409 idempotency_key_reuse`; while the first call is still running it is `409 idempotency_key_in_progress`. */
14540
+ "Idempotency-Key"?: string;
14541
+ };
14542
+ path: {
14543
+ /** @example product */
14544
+ type: string;
14545
+ /** @example 20417 */
14546
+ id: string;
14547
+ };
14548
+ cookie?: never;
14549
+ };
14550
+ requestBody?: never;
14551
+ responses: {
14552
+ 200: {
14553
+ headers: {
14554
+ [name: string]: unknown;
14555
+ };
14556
+ content: {
14557
+ /**
14558
+ * @example {
14559
+ * "status": "success",
14560
+ * "message": "Translations removed",
14561
+ * "data": {
14562
+ * "type": "product",
14563
+ * "id": 20417,
14564
+ * "deleted": 2
14565
+ * }
14566
+ * }
14567
+ */
14568
+ "application/json": Record<string, never>;
14569
+ };
14570
+ };
14571
+ /** @description Unauthorized — the key is missing, unknown, or its mode does not match its store. Switch on `error.code`. */
14572
+ 401: {
14573
+ headers: {
14574
+ [name: string]: unknown;
14575
+ };
14576
+ content: {
14577
+ /**
14578
+ * @example {
14579
+ * "error": {
14580
+ * "code": "invalid_client_key",
14581
+ * "message": "This API accepts only a store private key: send it in the X-Client-Key header (Dashboard → Settings → API keys).",
14582
+ * "doc_url": "https://docs.usequeek.com/docs/versioning-and-errors#invalid_client_key",
14583
+ * "request_id": "5d1c9b3e-8f2a-4b6d-9c07-3e1f8a2b6d45"
14584
+ * }
14585
+ * }
14586
+ */
14587
+ "application/json": components["schemas"]["QueekError"];
14588
+ };
14589
+ };
14590
+ /** @description Forbidden — the key cannot call this operation. Switch on `error.code`. */
14591
+ 403: {
14592
+ headers: {
14593
+ [name: string]: unknown;
14594
+ };
14595
+ content: {
14596
+ /**
14597
+ * @example {
14598
+ * "error": {
14599
+ * "code": "insufficient_scope",
14600
+ * "message": "This API key does not carry the 'merchant-translations-write' scope it was called with.",
14601
+ * "doc_url": "https://docs.usequeek.com/docs/versioning-and-errors#insufficient_scope",
14602
+ * "request_id": "5d1c9b3e-8f2a-4b6d-9c07-3e1f8a2b6d45"
14603
+ * }
14604
+ * }
14605
+ */
14606
+ "application/json": components["schemas"]["QueekError"];
14607
+ };
14608
+ };
14609
+ /** @description Not found — the addressed record does not exist at this store. Switch on `error.code`. */
14610
+ 404: {
14611
+ headers: {
14612
+ [name: string]: unknown;
14613
+ };
14614
+ content: {
14615
+ /**
14616
+ * @example {
14617
+ * "error": {
14618
+ * "code": "not_found",
14619
+ * "message": "Translatable resource not found.",
14620
+ * "doc_url": "https://docs.usequeek.com/docs/versioning-and-errors#not_found",
14621
+ * "request_id": "5d1c9b3e-8f2a-4b6d-9c07-3e1f8a2b6d45"
14622
+ * }
14623
+ * }
14624
+ */
14625
+ "application/json": components["schemas"]["QueekError"];
14626
+ };
14627
+ };
14628
+ /** @description Idempotency conflict — `idempotency_key_reuse` or `idempotency_key_in_progress`. Switch on `error.code`. */
14629
+ 409: {
14630
+ headers: {
14631
+ [name: string]: unknown;
14632
+ };
14633
+ content: {
14634
+ /**
14635
+ * @example {
14636
+ * "error": {
14637
+ * "code": "idempotency_key_reuse",
14638
+ * "message": "This Idempotency-Key was already used for a different request body. Use a new key for a new request.",
14639
+ * "doc_url": "https://docs.usequeek.com/docs/versioning-and-errors#idempotency_key_reuse",
14640
+ * "request_id": "5d1c9b3e-8f2a-4b6d-9c07-3e1f8a2b6d45"
14641
+ * }
14642
+ * }
14643
+ */
14644
+ "application/json": components["schemas"]["QueekError"];
14645
+ };
14646
+ };
14647
+ /** @description Validation failed — `error.errors` carries per-field detail. Switch on `error.code`. */
14648
+ 422: {
14649
+ headers: {
14650
+ [name: string]: unknown;
14651
+ };
14652
+ content: {
14653
+ /**
14654
+ * @example {
14655
+ * "error": {
14656
+ * "code": "validation_failed",
14657
+ * "message": "The locales field must be an array.",
14658
+ * "field": "locales",
14659
+ * "errors": {
14660
+ * "locales": [
14661
+ * "The locales field must be an array."
14662
+ * ]
14663
+ * },
14664
+ * "doc_url": "https://docs.usequeek.com/docs/versioning-and-errors#validation_failed",
14665
+ * "request_id": "5d1c9b3e-8f2a-4b6d-9c07-3e1f8a2b6d45"
14666
+ * }
14667
+ * }
14668
+ */
14669
+ "application/json": components["schemas"]["QueekError"];
14670
+ };
14671
+ };
14672
+ /** @description Too many requests — slow down and retry. Switch on `error.code`. */
14673
+ 429: {
14674
+ headers: {
14675
+ [name: string]: unknown;
14676
+ };
14677
+ content: {
14678
+ /**
14679
+ * @example {
14680
+ * "error": {
14681
+ * "code": "too_many_requests",
14682
+ * "message": "Too Many Attempts.",
14683
+ * "doc_url": "https://docs.usequeek.com/docs/versioning-and-errors#too_many_requests",
14684
+ * "request_id": "5d1c9b3e-8f2a-4b6d-9c07-3e1f8a2b6d45"
14685
+ * }
14686
+ * }
14687
+ */
14688
+ "application/json": components["schemas"]["QueekError"];
14689
+ };
14690
+ };
14691
+ };
14692
+ };
13211
14693
  "variants.list": {
13212
14694
  parameters: {
13213
14695
  query?: {
@@ -13217,7 +14699,7 @@ export interface operations {
13217
14699
  };
13218
14700
  header: {
13219
14701
  /**
13220
- * @description A private API key (`sk_live_…`, `sk_test_…` on a test store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
14702
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
13221
14703
  * @example {{merchantKey}}
13222
14704
  */
13223
14705
  "X-Client-Key": string;
@@ -13411,7 +14893,7 @@ export interface operations {
13411
14893
  query?: never;
13412
14894
  header: {
13413
14895
  /**
13414
- * @description A private API key (`sk_live_…`, `sk_test_…` on a test store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
14896
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
13415
14897
  * @example {{merchantKey}}
13416
14898
  */
13417
14899
  "X-Client-Key": string;
@@ -13616,7 +15098,7 @@ export interface operations {
13616
15098
  query?: never;
13617
15099
  header: {
13618
15100
  /**
13619
- * @description A private API key (`sk_live_…`, `sk_test_…` on a test store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
15101
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
13620
15102
  * @example {{merchantKey}}
13621
15103
  */
13622
15104
  "X-Client-Key": string;
@@ -13763,7 +15245,7 @@ export interface operations {
13763
15245
  query?: never;
13764
15246
  header: {
13765
15247
  /**
13766
- * @description A private API key (`sk_live_…`, `sk_test_…` on a test store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
15248
+ * @description A private API key (`sk_live_…`, `sk_test_…` on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or `vendor_id` is sent; its scopes decide which operations it may call. `pk_` public keys never reach this API. Keep it on your server.
13767
15249
  * @example {{merchantKey}}
13768
15250
  */
13769
15251
  "X-Client-Key": string;