hostinger-api-mcp 1.45.2 → 1.45.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/types.d.ts CHANGED
@@ -2147,6 +2147,88 @@ Use this endpoint to view which domains use specific contact profiles.
2147
2147
  response: any; // Response structure will depend on the API
2148
2148
  };
2149
2149
 
2150
+ /**
2151
+ * List a store's discounts. Filter by free text over code and name, or by disabled state.
2152
+ Amounts for fixed discounts are integers in the smallest currency unit; percentage
2153
+ discounts carry a whole-number value between 1 and 100.
2154
+ */
2155
+ "ecommerce_listDiscountsV1": {
2156
+ params: {
2157
+ /**
2158
+ * The ID of the store to list discounts for.
2159
+ */
2160
+ store_id: string;
2161
+ /**
2162
+ * Free-text search over discount code and name.
2163
+ */
2164
+ q?: string;
2165
+ /**
2166
+ * Filter by disabled state.
2167
+ */
2168
+ is_disabled?: string;
2169
+ /**
2170
+ * Page number
2171
+ */
2172
+ page?: number;
2173
+ };
2174
+ response: any; // Response structure will depend on the API
2175
+ };
2176
+
2177
+ /**
2178
+ * Create a discount for a store. Fixed discounts take an amount in the smallest currency
2179
+ unit (e.g. $10 is 1000); percentage discounts take a whole-number value between 1 and 100.
2180
+ Free-shipping discounts ignore value. Returns the created discount.
2181
+ */
2182
+ "ecommerce_createADiscountV1": {
2183
+ params: {
2184
+ /**
2185
+ * The ID of the store to create the discount for.
2186
+ */
2187
+ store_id: string;
2188
+ /**
2189
+ * The discount code customers enter at checkout.
2190
+ */
2191
+ code: string;
2192
+ /**
2193
+ * A human-friendly discount name.
2194
+ */
2195
+ name?: string;
2196
+ /**
2197
+ * The discount type.
2198
+ */
2199
+ type: string;
2200
+ /**
2201
+ * For percentage discounts a whole number 1-100; for fixed discounts an amount in the smallest currency unit (e.g. $10 is 1000). Ignored for free_shipping.
2202
+ */
2203
+ value: number;
2204
+ /**
2205
+ * Whether the discount applies to the cart total or to each eligible item.
2206
+ */
2207
+ allocation?: string;
2208
+ /**
2209
+ * When the discount becomes active. A bare date (2026-11-27) anchors to time_zone. Defaults to now when omitted.
2210
+ */
2211
+ starts_at?: string;
2212
+ /**
2213
+ * When the discount expires. A bare date runs to the end of that day in time_zone. Never expires when omitted.
2214
+ */
2215
+ ends_at?: string;
2216
+ /**
2217
+ * Maximum number of times the discount can be redeemed.
2218
+ */
2219
+ usage_limit?: number;
2220
+ /**
2221
+ * Minimum cart value in the smallest currency unit required for the discount to apply.
2222
+ */
2223
+ min_cart_value?: number;
2224
+ /**
2225
+ * IANA time zone used to interpret starts_at and ends_at.
2226
+ */
2227
+ time_zone?: string;
2228
+ };
2229
+ response: any; // Response structure will depend on the API
2230
+ };
2231
+
2150
2232
  /**
2151
2233
  * Retrieve step-by-step setup instructions, formatted as Markdown, for connecting a custom sales
2152
2234
  channel to your store and keeping your catalog, orders, shipping and payments in sync through
@@ -2159,6 +2241,131 @@ the Ecommerce API.
2159
2241
  response: any; // Response structure will depend on the API
2160
2242
  };
2161
2243
 
2244
+ /**
2245
+ * Cancel the order and optionally email the customer. Returns the updated order summary.
2246
+ */
2247
+ "ecommerce_cancelAnOrderV1": {
2248
+ params: {
2249
+ /**
2250
+ * The ID of the store that owns the order.
2251
+ */
2252
+ store_id: string;
2253
+ /**
2254
+ * The ID of the order to cancel.
2255
+ */
2256
+ order_id: string;
2257
+ /**
2258
+ * Whether to email the customer about the cancellation. Defaults to true.
2259
+ */
2260
+ notify_customer?: boolean;
2261
+ };
2262
+ response: any; // Response structure will depend on the API
2263
+ };
2264
+
2265
+ /**
2266
+ * Create a fulfilment for the order and attach tracking in one call. Omit items to fulfil
2267
+ every remaining unfulfilled item. Returns the updated order summary.
2268
+ */
2269
+ "ecommerce_fulfilAnOrderV1": {
2270
+ params: {
2271
+ /**
2272
+ * The ID of the store that owns the order.
2273
+ */
2274
+ store_id: string;
2275
+ /**
2276
+ * The ID of the order to fulfil.
2277
+ */
2278
+ order_id: string;
2279
+ /**
2280
+ * Line items to fulfil. Omit to fulfil every remaining unfulfilled item.
2281
+ */
2282
+ items?: array;
2283
+ /**
2284
+ * Carrier tracking number for the shipment.
2285
+ */
2286
+ tracking_number?: string;
2287
+ /**
2288
+ * Public tracking URL for the shipment. Requires tracking_number.
2289
+ */
2290
+ tracking_url?: string;
2291
+ /**
2292
+ * Whether to email the customer about the fulfilment. Defaults to true.
2293
+ */
2294
+ notify_customer?: boolean;
2295
+ };
2296
+ response: any; // Response structure will depend on the API
2297
+ };
2298
+
2299
+ /**
2300
+ * List a store's orders newest first as summaries. Filter by status, payment or fulfilment
2301
+ status, customer email, order number or a free-text query. Amounts are in the smallest
2302
+ currency unit. Retrieve a single order for its line items, addresses and fulfilments.
2303
+ */
2304
+ "ecommerce_listOrdersV1": {
2305
+ params: {
2306
+ /**
2307
+ * The ID of the store to list orders for.
2308
+ */
2309
+ store_id: string;
2310
+ /**
2311
+ * Order statuses to include.
2312
+ */
2313
+ status?: array;
2314
+ /**
2315
+ * Payment statuses to include. A paid order is "captured".
2316
+ */
2317
+ payment_status?: array;
2318
+ /**
2319
+ * Fulfilment statuses to include.
2320
+ */
2321
+ fulfillment_status?: array;
2322
+ /**
2323
+ * Customer email, matched exactly.
2324
+ */
2325
+ email?: string;
2326
+ /**
2327
+ * The order number the merchant and customer see.
2328
+ */
2329
+ display_id?: string;
2330
+ /**
2331
+ * Free-text search over customer name, email, order number and line items.
2332
+ */
2333
+ q?: string;
2334
+ /**
2335
+ * Earliest creation time to include, inclusive. Accepts a date or ISO date-time (UTC).
2336
+ */
2337
+ created_at_from?: string;
2338
+ /**
2339
+ * Latest creation time to include, inclusive. A bare date covers that whole day.
2340
+ */
2341
+ created_at_to?: string;
2342
+ /**
2343
+ * Page number
2344
+ */
2345
+ page?: number;
2346
+ };
2347
+ response: any; // Response structure will depend on the API
2348
+ };
2349
+
2350
+ /**
2351
+ * Retrieve one order in full: line items (each with the id the fulfil endpoint needs),
2352
+ addresses, the totals breakdown and fulfilments with tracking. Amounts are in the
2353
+ smallest currency unit.
2354
+ */
2355
+ "ecommerce_retrieveAnOrderV1": {
2356
+ params: {
2357
+ /**
2358
+ * The ID of the store that owns the order.
2359
+ */
2360
+ store_id: string;
2361
+ /**
2362
+ * The ID of the order to retrieve.
2363
+ */
2364
+ order_id: string;
2365
+ };
2366
+ response: any; // Response structure will depend on the API
2367
+ };
2368
+
2162
2369
  /**
2163
2370
  * Enable a manual payment method so the store can accept orders without an online payment provider.
2164
2371
  */
@@ -2176,6 +2383,42 @@ the Ecommerce API.
2176
2383
  response: any; // Response structure will depend on the API
2177
2384
  };
2178
2385
 
2386
+ /**
2387
+ * Create an onboarding link for connecting a payment gateway to the store. Returns the gateway
2388
+ onboarding URL for the merchant to open and a deep-link into the store admin.
2389
+ */
2390
+ "ecommerce_createAPaymentProviderConnectLinkV1": {
2391
+ params: {
2392
+ /**
2393
+ * The ID of the store to connect the payment provider to.
2394
+ */
2395
+ store_id: string;
2396
+ /**
2397
+ * The ID of the payment gateway to connect, e.g. stripe.
2398
+ */
2399
+ provider_id: string;
2400
+ };
2401
+ response: any; // Response structure will depend on the API
2402
+ };
2403
+
2404
+ /**
2405
+ * List a store's payment providers, split into providers already connected to the store and
2406
+ gateways available to install. Never exposes gateway credentials, secrets, or configuration.
2407
+ */
2408
+ "ecommerce_listStorePaymentProvidersV1": {
2409
+ params: {
2410
+ /**
2411
+ * The ID of the store to list payment providers for.
2412
+ */
2413
+ store_id: string;
2414
+ /**
2415
+ * Include gateways that do not support the store currency in the available list.
2416
+ */
2417
+ include_currency_unsupported?: boolean;
2418
+ };
2419
+ response: any; // Response structure will depend on the API
2420
+ };
2421
+
2179
2422
  /**
2180
2423
  * Returns a signed URL to upload a product image to (multipart/form-data POST). Then call the
2181
2424
  attach-image endpoint with the returned object_name to scan and attach it to the product.
@@ -2194,6 +2437,55 @@ attach-image endpoint with the returned object_name to scan and attach it to the
2194
2437
  response: any; // Response structure will depend on the API
2195
2438
  };
2196
2439
 
2440
+ /**
2441
+ * Delete a product and its variants from the store. A subscription product with active
2442
+ subscribers is archived instead of deleted so its data stays available.
2443
+ */
2444
+ "ecommerce_deleteAProductV1": {
2445
+ params: {
2446
+ /**
2447
+ * The ID of the store that owns the product.
2448
+ */
2449
+ store_id: string;
2450
+ /**
2451
+ * The ID of the product to delete.
2452
+ */
2453
+ product_id: string;
2454
+ };
2455
+ response: any; // Response structure will depend on the API
2456
+ };
2457
+
2458
+ /**
2459
+ * Update a product's name, description or status. Set status to published to make it buyable,
2460
+ draft to hide it, or archived to retire it. Variants, prices and inventory are managed
2461
+ through the variant endpoints, not here. Returns the updated product summary.
2462
+ */
2463
+ "ecommerce_updateAProductV1": {
2464
+ params: {
2465
+ /**
2466
+ * The ID of the store that owns the product.
2467
+ */
2468
+ store_id: string;
2469
+ /**
2470
+ * The ID of the product to update.
2471
+ */
2472
+ product_id: string;
2473
+ /**
2474
+ * The product name.
2475
+ */
2476
+ name?: string;
2477
+ /**
2478
+ * The product description.
2479
+ */
2480
+ description?: string;
2481
+ /**
2482
+ * Set "published" to make the product buyable, "draft" to hide it, or "archived" to retire it.
2483
+ */
2484
+ status?: string;
2485
+ };
2486
+ response: any; // Response structure will depend on the API
2487
+ };
2488
+
2197
2489
  /**
2198
2490
  * Create a published digital product with a single variant and an optional external download link.
2199
2491
  */
@@ -2227,6 +2519,42 @@ attach-image endpoint with the returned object_name to scan and attach it to the
2227
2519
  response: any; // Response structure will depend on the API
2228
2520
  };
2229
2521
 
2522
+ /**
2523
+ * List a store's products newest first as lean summaries (name, status, thumbnail, variant
2524
+ count and price range). Prices are integers in the smallest currency unit and live on
2525
+ variants. Filter by status, free text or a set of product ids. Use include=variants to
2526
+ embed each product's variants with prices and inventory, and include=media to embed its media.
2527
+ */
2528
+ "ecommerce_listProductsV1": {
2529
+ params: {
2530
+ /**
2531
+ * The ID of the store to list products for.
2532
+ */
2533
+ store_id: string;
2534
+ /**
2535
+ * Restrict to these product ids. Doubles as a single-product lookup. Up to 200 ids.
2536
+ */
2537
+ product_ids?: array;
2538
+ /**
2539
+ * Product statuses to include.
2540
+ */
2541
+ status?: array;
2542
+ /**
2543
+ * Free-text search over product title and SKU.
2544
+ */
2545
+ q?: string;
2546
+ /**
2547
+ * Opt-in heavy data: "variants" embeds each product's variants; "media" embeds its media.
2548
+ */
2549
+ include?: array;
2550
+ /**
2551
+ * Page number
2552
+ */
2553
+ page?: number;
2554
+ };
2555
+ response: any; // Response structure will depend on the API
2556
+ };
2557
+
2230
2558
  /**
2231
2559
  * Create a published physical product with a single variant priced in the store currency.
2232
2560
  */
@@ -2304,25 +2632,27 @@ thumbnail only if the product does not have one yet.
2304
2632
  };
2305
2633
 
2306
2634
  /**
2307
- * Create a custom sales channel for a store. Build your own frontend and keep your catalog,
2308
- orders, shipping and payments in sync through the Ecommerce API.
2635
+ * Create a sales channel for a store. A "custom" channel is headless: build your own frontend and keep
2636
+ your catalog, orders, shipping and payments in sync through the Ecommerce API. A "quick-link" channel
2637
+ is a hosted one-page store whose handle is auto-generated.
2309
2638
  */
2310
- "ecommerce_createCustomSalesChannelV1": {
2639
+ "ecommerce_createASalesChannelV1": {
2311
2640
  params: {
2312
2641
  /**
2313
2642
  * The ID of the store to create the sales channel for.
2314
2643
  */
2315
2644
  store_id: string;
2316
2645
  /**
2317
- * Sales channel type. Only "custom" channels can be created via the API.
2646
+ * Sales channel type. "custom" is a headless channel: it requires a name and takes an optional public url.
2647
+ "quick-link" is a one-page store whose handle is auto-generated; it supports neither name nor url.
2318
2648
  */
2319
2649
  type: string;
2320
2650
  /**
2321
- * Merchant-facing custom name shown in the sales channels list.
2651
+ * Merchant-facing custom name. Required for custom channels; not supported for quick-link.
2322
2652
  */
2323
- name: string;
2653
+ name?: string;
2324
2654
  /**
2325
- * Optional public address where the custom sales channel lives.
2655
+ * Optional public url for the channel. Custom channels only; not supported for quick-link.
2326
2656
  */
2327
2657
  url?: string;
2328
2658
  };
@@ -2449,6 +2779,116 @@ plus its default currency. Useful to verify prerequisites before building a stor
2449
2779
  response: any; // Response structure will depend on the API
2450
2780
  };
2451
2781
 
2782
+ /**
2783
+ * Update up to 100 existing variants in place by id — title, inventory, stock tracking and
2784
+ prices. Variants omitted from the request are left untouched. Prices replace the variant's
2785
+ existing prices in full. Returns the updated variants.
2786
+ */
2787
+ "ecommerce_updateProductVariantsInBatchV1": {
2788
+ params: {
2789
+ /**
2790
+ * The ID of the store that owns the product.
2791
+ */
2792
+ store_id: string;
2793
+ /**
2794
+ * The ID of the product whose variants are being updated.
2795
+ */
2796
+ product_id: string;
2797
+ /**
2798
+ * Variants to update in place by id, up to 100. Variants omitted from the list are left untouched.
2799
+ */
2800
+ variants: array;
2801
+ };
2802
+ response: any; // Response structure will depend on the API
2803
+ };
2804
+
2805
+ /**
2806
+ * Delete a single variant from the product.
2807
+ */
2808
+ "ecommerce_deleteAProductVariantV1": {
2809
+ params: {
2810
+ /**
2811
+ * The ID of the store that owns the product.
2812
+ */
2813
+ store_id: string;
2814
+ /**
2815
+ * The ID of the product that owns the variant.
2816
+ */
2817
+ product_id: string;
2818
+ /**
2819
+ * The ID of the variant to delete.
2820
+ */
2821
+ variant_id: string;
2822
+ };
2823
+ response: any; // Response structure will depend on the API
2824
+ };
2825
+
2826
+ /**
2827
+ * List a product's variants, ordered by rank, with their options, prices and inventory.
2828
+ Prices are integers in the smallest currency unit and live on variants.
2829
+ */
2830
+ "ecommerce_listProductVariantsV1": {
2831
+ params: {
2832
+ /**
2833
+ * The ID of the store that owns the product.
2834
+ */
2835
+ store_id: string;
2836
+ /**
2837
+ * The ID of the product to list variants for.
2838
+ */
2839
+ product_id: string;
2840
+ /**
2841
+ * Page number
2842
+ */
2843
+ page?: number;
2844
+ };
2845
+ response: any; // Response structure will depend on the API
2846
+ };
2847
+
2848
+ /**
2849
+ * Add a variant to a product along one or more option dimensions (e.g. Size, Color). Options
2850
+ missing from the product are created automatically; provide a value for every option the
2851
+ product already has. Prices are integers in the smallest currency unit and default to the
2852
+ store currency. Returns the created variant.
2853
+ */
2854
+ "ecommerce_createAProductVariantV1": {
2855
+ params: {
2856
+ /**
2857
+ * The ID of the store that owns the product.
2858
+ */
2859
+ store_id: string;
2860
+ /**
2861
+ * The ID of the product to add the variant to.
2862
+ */
2863
+ product_id: string;
2864
+ /**
2865
+ * The variant title. Defaults to the option values joined with ' / ' (e.g. 'Red / L').
2866
+ */
2867
+ title?: string;
2868
+ /**
2869
+ * The variant SKU.
2870
+ */
2871
+ sku?: string;
2872
+ /**
2873
+ * Option name/value pairs that distinguish this variant, e.g. [{name: Size, value: M}]. Options missing from the product are created; provide a value for every option the product already has.
2874
+ */
2875
+ options: array;
2876
+ /**
2877
+ * Prices per currency. Amounts are integers in the smallest currency unit. A free item is amount: 0.
2878
+ */
2879
+ prices?: array;
2880
+ /**
2881
+ * Units in stock. Defaults to 0.
2882
+ */
2883
+ inventory_quantity?: number;
2884
+ /**
2885
+ * Whether stock is tracked for this variant. Defaults to false.
2886
+ */
2887
+ manage_inventory?: boolean;
2888
+ };
2889
+ response: any; // Response structure will depend on the API
2890
+ };
2891
+
2452
2892
  /**
2453
2893
  * Create new Hostinger Horizons website from the given message.\n
2454
2894
  Use this tool when user asks you to create a website, landing page, blog
@@ -3240,8 +3680,7 @@ existing archive file on the server (relative to the website document root).
3240
3680
  Use the `Generate Upload URL` endpoint to obtain credentials and upload the archive first.
3241
3681
 
3242
3682
  To auto-detect build settings from an archive before starting, first call the
3243
- `Get Node.js Build Settings from Archive` endpoint. To upload an archive and start
3244
- a build in one step, use the `Create Node.js Build from Archive` endpoint instead.
3683
+ `Get Node.js Build Settings from Archive` endpoint.
3245
3684
 
3246
3685
  The returned build `uuid` can be used to poll progress and retrieve logs via
3247
3686
  the `Get Node.js Build Logs` endpoint.
@@ -3305,8 +3744,6 @@ output directory, build script) before committing to a build.
3305
3744
 
3306
3745
  The archive must already be present on the website's file storage. Use the
3307
3746
  `Generate Upload URL` endpoint to obtain credentials and upload the archive first.
3308
- To upload an archive and start a build in one step without inspecting settings first,
3309
- use the `Create Node.js Build from Archive` endpoint instead.
3310
3747
  */
3311
3748
  "hosting_getNode_jsBuildSettingsFromArchiveV1": {
3312
3749
  params: {