@hostinger/mcp 3.2.0 → 3.2.2

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.
@@ -6181,7 +6181,7 @@ const tools: OpenApiTool[] = [
6181
6181
  "destructiveHint": true,
6182
6182
  "idempotentHint": true
6183
6183
  },
6184
- "description": "Permanently clears all server-side cache for the website at once. Use it when content was\nupdated and needs to be visible immediately, or after making major changes.\n\nAlso purges the Hostinger CDN cache when CDN is enabled on the website. For a WordPress\ninstallation living in a subdirectory, pass the directory query parameter to clear its cache.",
6184
+ "description": "Permanently clears all server-side cache for the website at once. Use it when content was\nupdated and needs to be visible immediately, or after making major changes.\n\nAlso purges the Hostinger CDN cache when CDN is enabled on the website. To purge only the CDN\ncache and leave the server cache untouched, use `Purge CDN cache`. For a WordPress\ninstallation living in a subdirectory, pass the directory query parameter to clear its cache.",
6185
6185
  "method": "DELETE",
6186
6186
  "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/cache/clear",
6187
6187
  "inputSchema": {
@@ -6294,6 +6294,147 @@ const tools: OpenApiTool[] = [
6294
6294
  ],
6295
6295
  "group": "hosting"
6296
6296
  },
6297
+ {
6298
+ "name": "hosting_cdn_disable",
6299
+ "title": "Disable CDN",
6300
+ "annotations": {
6301
+ "title": "Disable CDN",
6302
+ "readOnlyHint": false,
6303
+ "destructiveHint": true
6304
+ },
6305
+ "description": "Turns off the Hostinger CDN for the website domain. Once DNS propagation completes, the\nwebsite content is served directly from the origin server. Repeating the call is safe; when\nCDN is already disabled, it applies the DNS change again.\n\nReturns 422 for platform-managed domains (for example `*.hostingersite.com` and\n`*.app-preview.com`), where CDN cannot be disabled, even when CDN is already off. Also returns\n422 while the account is being moved to another server (retry after the move finishes), or\nwhen the CDN provider rejects the change. Returns 404 when the domain is not a website on the\naccount.",
6306
+ "method": "POST",
6307
+ "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/cdn/disable",
6308
+ "inputSchema": {
6309
+ "type": "object",
6310
+ "properties": {
6311
+ "username": {
6312
+ "type": "string",
6313
+ "description": "username parameter"
6314
+ },
6315
+ "domain": {
6316
+ "type": "string",
6317
+ "description": "Domain name"
6318
+ }
6319
+ },
6320
+ "required": [
6321
+ "username",
6322
+ "domain"
6323
+ ]
6324
+ },
6325
+ "security": [
6326
+ {
6327
+ "apiToken": []
6328
+ }
6329
+ ],
6330
+ "group": "hosting"
6331
+ },
6332
+ {
6333
+ "name": "hosting_cdn_enable",
6334
+ "title": "Enable CDN",
6335
+ "annotations": {
6336
+ "title": "Enable CDN",
6337
+ "readOnlyHint": false,
6338
+ "destructiveHint": false
6339
+ },
6340
+ "description": "Turns on the Hostinger CDN for the website domain, which speeds up page loads and reduces the\nload on the server. Works for the main domain, parked domains and subdomains of the account.\n\nEnabling changes the domain's DNS records and usually takes a few seconds. After that, DNS\npropagation can take a few more minutes before visitors are served through the CDN.\n\nRepeating the call is safe, for example after a timeout. When CDN is already enabled, it\napplies the DNS change again and refreshes the CDN SSL certificate.\n\nReturns 422 when the account is disabled, while the account is being moved to another\nserver (retry after the move finishes), or when the CDN provider rejects the change.\nReturns 404 when the domain is not a website on the account.",
6341
+ "method": "POST",
6342
+ "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/cdn/enable",
6343
+ "inputSchema": {
6344
+ "type": "object",
6345
+ "properties": {
6346
+ "username": {
6347
+ "type": "string",
6348
+ "description": "username parameter"
6349
+ },
6350
+ "domain": {
6351
+ "type": "string",
6352
+ "description": "Domain name"
6353
+ }
6354
+ },
6355
+ "required": [
6356
+ "username",
6357
+ "domain"
6358
+ ]
6359
+ },
6360
+ "security": [
6361
+ {
6362
+ "apiToken": []
6363
+ }
6364
+ ],
6365
+ "group": "hosting"
6366
+ },
6367
+ {
6368
+ "name": "hosting_cdn_purge-cache",
6369
+ "title": "Purge CDN cache",
6370
+ "annotations": {
6371
+ "title": "Purge CDN cache",
6372
+ "readOnlyHint": false,
6373
+ "destructiveHint": true,
6374
+ "idempotentHint": true
6375
+ },
6376
+ "description": "Purges the website's content from the Hostinger CDN edge cache only. The origin server cache\nis not touched; to clear both, use `Clear website cache`.\n\nReturns 422 when CDN is not enabled on the website. Returns 404 when the domain is not a\nwebsite on the account.",
6377
+ "method": "DELETE",
6378
+ "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/cdn/purge",
6379
+ "inputSchema": {
6380
+ "type": "object",
6381
+ "properties": {
6382
+ "username": {
6383
+ "type": "string",
6384
+ "description": "username parameter"
6385
+ },
6386
+ "domain": {
6387
+ "type": "string",
6388
+ "description": "Domain name"
6389
+ }
6390
+ },
6391
+ "required": [
6392
+ "username",
6393
+ "domain"
6394
+ ]
6395
+ },
6396
+ "security": [
6397
+ {
6398
+ "apiToken": []
6399
+ }
6400
+ ],
6401
+ "group": "hosting"
6402
+ },
6403
+ {
6404
+ "name": "hosting_cdn_status",
6405
+ "title": "Get CDN status",
6406
+ "annotations": {
6407
+ "title": "Get CDN status",
6408
+ "readOnlyHint": true,
6409
+ "destructiveHint": false
6410
+ },
6411
+ "description": "Returns whether the Hostinger CDN is enabled for the website domain. Works for the main\ndomain, parked domains and subdomains of the account.\n\nThe domain must be the exact website name as listed on the account, without a `www.` prefix.\nReturns 404 when the domain is not a website on the account.",
6412
+ "method": "GET",
6413
+ "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/cdn/status",
6414
+ "inputSchema": {
6415
+ "type": "object",
6416
+ "properties": {
6417
+ "username": {
6418
+ "type": "string",
6419
+ "description": "username parameter"
6420
+ },
6421
+ "domain": {
6422
+ "type": "string",
6423
+ "description": "Domain name"
6424
+ }
6425
+ },
6426
+ "required": [
6427
+ "username",
6428
+ "domain"
6429
+ ]
6430
+ },
6431
+ "security": [
6432
+ {
6433
+ "apiToken": []
6434
+ }
6435
+ ],
6436
+ "group": "hosting"
6437
+ },
6297
6438
  {
6298
6439
  "name": "hosting_cron-jobs_list",
6299
6440
  "title": "List account cron jobs",
@@ -8724,7 +8865,7 @@ const tools: OpenApiTool[] = [
8724
8865
  "readOnlyHint": true,
8725
8866
  "destructiveHint": false
8726
8867
  },
8727
- "description": "Returns the website setups started in the last 24 hours for the hosting accounts\naccessible to the authenticated client, newest first. Narrow the list with the\n`order_id`, `subscription_id` or `domain` filters.\n\nMeant for polling right after creating a website or starting a website setup: the\nwebsite shows up in the websites list before its server-side setup has finished, and\nwhile the setup is `running` endpoints that operate on that website may respond with\n`404` or `409`. Poll this endpoint with the `domain` filter every 10 to 15 seconds and\nwait for `status: completed` before uploading files, deploying or creating databases.\n`failed` means the setup stopped before finishing or has not reported progress for\nover an hour. Setups older than 24 hours are not listed.\n\n`type` is the website type the setup was started with (`wordpress`, `headless_wordpress`,\n`headless_ecommerce`, `headless_pocketbase`), or `null` for an empty website.",
8868
+ "description": "Returns the website setups started in the last 24 hours for the hosting accounts\naccessible to the authenticated client, newest first. Narrow the list with the\n`order_id`, `subscription_id` or `domain` filters.\n\nMeant for polling right after creating a website or starting a website setup: the\nwebsite shows up in the websites list before its server-side setup has finished, and\nwhile the setup is `running` endpoints that operate on that website may respond with\n`404` or `409`. Poll this endpoint with the `domain` filter every 10 to 15 seconds and\nwait for `status: completed` before uploading files, deploying or creating databases.\n`failed` means the setup stopped before finishing or has not reported progress for\nover an hour. Setups older than 24 hours are not listed.\n\n`type` is the website type the setup was started with (`wordpress`, `headless_empty`,\n`headless_wordpress`, `headless_ecommerce`, `headless_pocketbase`), or `null` for an empty\nwebsite.",
8728
8869
  "method": "GET",
8729
8870
  "path": "/api/hosting/v1/onboardings",
8730
8871
  "inputSchema": {
@@ -8760,7 +8901,7 @@ const tools: OpenApiTool[] = [
8760
8901
  "readOnlyHint": false,
8761
8902
  "destructiveHint": false
8762
8903
  },
8763
- "description": "Starts a website setup on a Web or Cloud hosting order and returns the created setup\nright away; the website itself is provisioned asynchronously. Poll the list website\nsetups endpoint with the `domain` filter every 10 to 15 seconds and wait for\n`status: completed` before uploading files, deploying or creating databases.\n\nOmit `type` for an empty website. `type: wordpress` installs WordPress in the website\nroot with the admin user, email and password from `wordpress`, the domain as the site\ntitle, and `en_US` when `wordpress.language` is omitted. The headless types\n(`headless_wordpress`, `headless_ecommerce`, `headless_pocketbase`) create a headless\nwebsite; `headless_wordpress` additionally installs WordPress into the `cms` directory\nof the website root with generated credentials.\n\nOmit `domain` to set the website up on a generated temporary free subdomain.\n\nWhen the order has no hosting account yet, the setup creates one first, in the datacenter\ngiven by `datacenter_code` or the order's default datacenter when it is omitted.\nReturns 404 when the order does not exist or is not accessible to the authenticated\nclient, and 409 with a `Retry-After` header while a setup for the same domain is still\nrunning.",
8904
+ "description": "Starts a website setup on a Web or Cloud hosting order and returns the created setup\nright away; the website itself is provisioned asynchronously. Poll the list website\nsetups endpoint (`hosting_websites_list-setups`) with the `domain` filter every 10 to 15\nseconds and wait for `status: completed` before uploading files, deploying or creating\ndatabases.\n\nOmit `type` for an empty website. `type: wordpress` installs WordPress in the website\nroot with the admin user, email and password from `wordpress`, the domain as the site\ntitle, and `en_US` when `wordpress.language` is omitted. The headless types\n(`headless_empty`, `headless_wordpress`, `headless_ecommerce`, `headless_pocketbase`)\ncreate a headless website; `headless_wordpress` additionally installs WordPress into the\n`cms` directory of the website root with generated credentials. `headless_empty` installs\nnothing: WordPress can be added later through\n`POST /api/hosting/v1/accounts/{username}/wordpress/installations`\n(`wordpress_installations_install`) with `type: headless`.\n\nOmit `domain` to set the website up on a generated temporary free subdomain. To know the\nfree subdomain before the call, so a timed-out call can be looked up and retried on the\nsame domain, generate one through `POST /api/hosting/v1/domains/free-subdomains`\n(`hosting_domains_generate-free-subdomain`) and send it as `domain`. It is accepted for\n24 hours, only from the client that generated it.\n\nWhen the order has no hosting account yet, the setup creates one first, in the datacenter\ngiven by `datacenter_code` or the order's default datacenter when it is omitted.\nReturns 404 when the order does not exist or is not accessible to the authenticated\nclient, and 409 with a `Retry-After` header while a setup for the same domain is still\nrunning.",
8764
8905
  "method": "POST",
8765
8906
  "path": "/api/hosting/v1/orders/{order_id}/onboardings",
8766
8907
  "inputSchema": {
@@ -8772,9 +8913,10 @@ const tools: OpenApiTool[] = [
8772
8913
  },
8773
8914
  "type": {
8774
8915
  "type": "string",
8775
- "description": "Website type. Omit or `null` for an empty website. `wordpress` installs WordPress in the website root and requires `wordpress`. The headless types (`headless_wordpress`, `headless_ecommerce`, `headless_pocketbase`) create a headless website; `headless_wordpress` additionally installs WordPress into the `cms` directory with generated credentials.",
8916
+ "description": "Website type. Omit or `null` for an empty website. `wordpress` installs WordPress in the website root and requires `wordpress`. The headless types (`headless_empty`, `headless_wordpress`, `headless_ecommerce`, `headless_pocketbase`) create a headless website; `headless_wordpress` additionally installs WordPress into the `cms` directory with generated credentials. `headless_empty` installs nothing, so WordPress can be added later through `POST /api/hosting/v1/accounts/{username}/wordpress/installations` (`wordpress_installations_install`) with `type: headless`.",
8776
8917
  "enum": [
8777
8918
  "wordpress",
8919
+ "headless_empty",
8778
8920
  "headless_wordpress",
8779
8921
  "headless_ecommerce",
8780
8922
  "headless_pocketbase"
@@ -8782,7 +8924,7 @@ const tools: OpenApiTool[] = [
8782
8924
  },
8783
8925
  "domain": {
8784
8926
  "type": "string",
8785
- "description": "Customer-owned domain. Cannot start with \"www.\" and can have at most one subdomain level, e.g. `blog.example.com`. Omit or `null` to set the website up on a generated temporary free subdomain."
8927
+ "description": "Customer-owned domain, or a free subdomain you generated through `POST /api/hosting/v1/domains/free-subdomains` (`hosting_domains_generate-free-subdomain`) in the last 24 hours. Cannot start with \"www.\" and can have at most one subdomain level, e.g. `blog.example.com`. Omit or `null` to set the website up on a generated temporary free subdomain."
8786
8928
  },
8787
8929
  "datacenter_code": {
8788
8930
  "type": "string",
@@ -16609,7 +16751,7 @@ const tools: OpenApiTool[] = [
16609
16751
  "readOnlyHint": false,
16610
16752
  "destructiveHint": false
16611
16753
  },
16612
- "description": "Install WordPress on an existing website.\n\nThe website must already exist before calling this endpoint. To create a new\nwebsite first, use POST /api/hosting/v1/websites and poll\nGET /api/hosting/v1/websites until it appears.\n\nCall GET /api/hosting/v1/wordpress/installations filtered by username and\ndomain before proceeding to check whether WordPress is already installed on\nthe target domain/path. If WordPress already exists and `overwrite` is false\n(the default), the async job will fail.\n\nThis operation is asynchronous: a successful response only means the install\njob has been queued, not that WordPress is ready. Installation typically\ntakes 1-2 minutes. Poll GET /api/hosting/v1/wordpress/installations filtered\nby username and domain to track progress. When the installation appears in\nthat list, WordPress is ready.\n\nReturns 422 when the account already uses all the databases its plan allows,\nunless `database.name` is an existing database on the account.",
16754
+ "description": "Install WordPress on an existing website.\n\nThe website must already exist before calling this endpoint. To create a new\nwebsite first, use POST /api/hosting/v1/orders/{order_id}/onboardings\n(`hosting_websites_start-setup`) and poll GET /api/hosting/v1/onboardings\n(`hosting_websites_list-setups`) with the `domain` filter until its `status` is\n`completed`.\n\nSend `type: headless` to turn a headless website (for example one created by\n`hosting_websites_start-setup` with `type: headless_empty`) into a headless WordPress\nwebsite: WordPress is installed into the `cms` directory with the Hostinger headless\nMU plugin and the website is marked as a headless WordPress website. `directory` is\nnot allowed with it. The target website must already be headless: the headless\ninstall rewrites the root `.htaccess`, so on any other website the request is\nrejected with 422.\n\nCall GET /api/hosting/v1/wordpress/installations (`wordpress_installations_list`)\nfiltered by username and domain before proceeding to check whether WordPress is\nalready installed on the target domain/path. If WordPress already exists and\n`overwrite` is false (the default), the async job will fail.\n\nThis operation is asynchronous: a successful response only means the install\njob has been queued, not that WordPress is ready. Installation typically\ntakes 1-2 minutes. Poll GET /api/hosting/v1/wordpress/installations\n(`wordpress_installations_list`) filtered by username and domain to track\nprogress. When the installation appears in that list, WordPress is ready.\n\nReturns 422 when the account already uses all the databases its plan allows,\nunless `database.name` is an existing database on the account.",
16613
16755
  "method": "POST",
16614
16756
  "path": "/api/hosting/v1/accounts/{username}/wordpress/installations",
16615
16757
  "inputSchema": {
@@ -16631,9 +16773,17 @@ const tools: OpenApiTool[] = [
16631
16773
  "type": "string",
16632
16774
  "description": "WordPress locale. Defaults to en_US when omitted."
16633
16775
  },
16776
+ "type": {
16777
+ "type": "string",
16778
+ "description": "Installation kind; `default` when omitted. `headless` installs WordPress into the `cms` directory with the Hostinger headless MU plugin and marks the website as a headless WordPress website. Accepted only for a website that is already headless, e.g. one created by `POST /api/hosting/v1/orders/{order_id}/onboardings` (`hosting_websites_start-setup`) with `type: headless_empty`; any other website is rejected with 422.",
16779
+ "enum": [
16780
+ "default",
16781
+ "headless"
16782
+ ]
16783
+ },
16634
16784
  "directory": {
16635
16785
  "type": "string",
16636
- "description": "Relative directory to install WordPress into. Defaults to the website root when omitted."
16786
+ "description": "Installation subdirectory relative to the document root; omit for the root. Not allowed with `type: headless`, which always installs into `cms`."
16637
16787
  },
16638
16788
  "overwrite": {
16639
16789
  "type": "boolean",
@@ -475,7 +475,7 @@ export default [
475
475
  "destructiveHint": true,
476
476
  "idempotentHint": true
477
477
  },
478
- "description": "Permanently clears all server-side cache for the website at once. Use it when content was\nupdated and needs to be visible immediately, or after making major changes.\n\nAlso purges the Hostinger CDN cache when CDN is enabled on the website. For a WordPress\ninstallation living in a subdirectory, pass the directory query parameter to clear its cache.",
478
+ "description": "Permanently clears all server-side cache for the website at once. Use it when content was\nupdated and needs to be visible immediately, or after making major changes.\n\nAlso purges the Hostinger CDN cache when CDN is enabled on the website. To purge only the CDN\ncache and leave the server cache untouched, use `Purge CDN cache`. For a WordPress\ninstallation living in a subdirectory, pass the directory query parameter to clear its cache.",
479
479
  "method": "DELETE",
480
480
  "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/cache/clear",
481
481
  "inputSchema": {
@@ -588,6 +588,147 @@ export default [
588
588
  ],
589
589
  "group": "hosting"
590
590
  },
591
+ {
592
+ "name": "hosting_cdn_disable",
593
+ "title": "Disable CDN",
594
+ "annotations": {
595
+ "title": "Disable CDN",
596
+ "readOnlyHint": false,
597
+ "destructiveHint": true
598
+ },
599
+ "description": "Turns off the Hostinger CDN for the website domain. Once DNS propagation completes, the\nwebsite content is served directly from the origin server. Repeating the call is safe; when\nCDN is already disabled, it applies the DNS change again.\n\nReturns 422 for platform-managed domains (for example `*.hostingersite.com` and\n`*.app-preview.com`), where CDN cannot be disabled, even when CDN is already off. Also returns\n422 while the account is being moved to another server (retry after the move finishes), or\nwhen the CDN provider rejects the change. Returns 404 when the domain is not a website on the\naccount.",
600
+ "method": "POST",
601
+ "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/cdn/disable",
602
+ "inputSchema": {
603
+ "type": "object",
604
+ "properties": {
605
+ "username": {
606
+ "type": "string",
607
+ "description": "username parameter"
608
+ },
609
+ "domain": {
610
+ "type": "string",
611
+ "description": "Domain name"
612
+ }
613
+ },
614
+ "required": [
615
+ "username",
616
+ "domain"
617
+ ]
618
+ },
619
+ "security": [
620
+ {
621
+ "apiToken": []
622
+ }
623
+ ],
624
+ "group": "hosting"
625
+ },
626
+ {
627
+ "name": "hosting_cdn_enable",
628
+ "title": "Enable CDN",
629
+ "annotations": {
630
+ "title": "Enable CDN",
631
+ "readOnlyHint": false,
632
+ "destructiveHint": false
633
+ },
634
+ "description": "Turns on the Hostinger CDN for the website domain, which speeds up page loads and reduces the\nload on the server. Works for the main domain, parked domains and subdomains of the account.\n\nEnabling changes the domain's DNS records and usually takes a few seconds. After that, DNS\npropagation can take a few more minutes before visitors are served through the CDN.\n\nRepeating the call is safe, for example after a timeout. When CDN is already enabled, it\napplies the DNS change again and refreshes the CDN SSL certificate.\n\nReturns 422 when the account is disabled, while the account is being moved to another\nserver (retry after the move finishes), or when the CDN provider rejects the change.\nReturns 404 when the domain is not a website on the account.",
635
+ "method": "POST",
636
+ "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/cdn/enable",
637
+ "inputSchema": {
638
+ "type": "object",
639
+ "properties": {
640
+ "username": {
641
+ "type": "string",
642
+ "description": "username parameter"
643
+ },
644
+ "domain": {
645
+ "type": "string",
646
+ "description": "Domain name"
647
+ }
648
+ },
649
+ "required": [
650
+ "username",
651
+ "domain"
652
+ ]
653
+ },
654
+ "security": [
655
+ {
656
+ "apiToken": []
657
+ }
658
+ ],
659
+ "group": "hosting"
660
+ },
661
+ {
662
+ "name": "hosting_cdn_purge-cache",
663
+ "title": "Purge CDN cache",
664
+ "annotations": {
665
+ "title": "Purge CDN cache",
666
+ "readOnlyHint": false,
667
+ "destructiveHint": true,
668
+ "idempotentHint": true
669
+ },
670
+ "description": "Purges the website's content from the Hostinger CDN edge cache only. The origin server cache\nis not touched; to clear both, use `Clear website cache`.\n\nReturns 422 when CDN is not enabled on the website. Returns 404 when the domain is not a\nwebsite on the account.",
671
+ "method": "DELETE",
672
+ "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/cdn/purge",
673
+ "inputSchema": {
674
+ "type": "object",
675
+ "properties": {
676
+ "username": {
677
+ "type": "string",
678
+ "description": "username parameter"
679
+ },
680
+ "domain": {
681
+ "type": "string",
682
+ "description": "Domain name"
683
+ }
684
+ },
685
+ "required": [
686
+ "username",
687
+ "domain"
688
+ ]
689
+ },
690
+ "security": [
691
+ {
692
+ "apiToken": []
693
+ }
694
+ ],
695
+ "group": "hosting"
696
+ },
697
+ {
698
+ "name": "hosting_cdn_status",
699
+ "title": "Get CDN status",
700
+ "annotations": {
701
+ "title": "Get CDN status",
702
+ "readOnlyHint": true,
703
+ "destructiveHint": false
704
+ },
705
+ "description": "Returns whether the Hostinger CDN is enabled for the website domain. Works for the main\ndomain, parked domains and subdomains of the account.\n\nThe domain must be the exact website name as listed on the account, without a `www.` prefix.\nReturns 404 when the domain is not a website on the account.",
706
+ "method": "GET",
707
+ "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/cdn/status",
708
+ "inputSchema": {
709
+ "type": "object",
710
+ "properties": {
711
+ "username": {
712
+ "type": "string",
713
+ "description": "username parameter"
714
+ },
715
+ "domain": {
716
+ "type": "string",
717
+ "description": "Domain name"
718
+ }
719
+ },
720
+ "required": [
721
+ "username",
722
+ "domain"
723
+ ]
724
+ },
725
+ "security": [
726
+ {
727
+ "apiToken": []
728
+ }
729
+ ],
730
+ "group": "hosting"
731
+ },
591
732
  {
592
733
  "name": "hosting_cron-jobs_list",
593
734
  "title": "List account cron jobs",
@@ -3018,7 +3159,7 @@ export default [
3018
3159
  "readOnlyHint": true,
3019
3160
  "destructiveHint": false
3020
3161
  },
3021
- "description": "Returns the website setups started in the last 24 hours for the hosting accounts\naccessible to the authenticated client, newest first. Narrow the list with the\n`order_id`, `subscription_id` or `domain` filters.\n\nMeant for polling right after creating a website or starting a website setup: the\nwebsite shows up in the websites list before its server-side setup has finished, and\nwhile the setup is `running` endpoints that operate on that website may respond with\n`404` or `409`. Poll this endpoint with the `domain` filter every 10 to 15 seconds and\nwait for `status: completed` before uploading files, deploying or creating databases.\n`failed` means the setup stopped before finishing or has not reported progress for\nover an hour. Setups older than 24 hours are not listed.\n\n`type` is the website type the setup was started with (`wordpress`, `headless_wordpress`,\n`headless_ecommerce`, `headless_pocketbase`), or `null` for an empty website.",
3162
+ "description": "Returns the website setups started in the last 24 hours for the hosting accounts\naccessible to the authenticated client, newest first. Narrow the list with the\n`order_id`, `subscription_id` or `domain` filters.\n\nMeant for polling right after creating a website or starting a website setup: the\nwebsite shows up in the websites list before its server-side setup has finished, and\nwhile the setup is `running` endpoints that operate on that website may respond with\n`404` or `409`. Poll this endpoint with the `domain` filter every 10 to 15 seconds and\nwait for `status: completed` before uploading files, deploying or creating databases.\n`failed` means the setup stopped before finishing or has not reported progress for\nover an hour. Setups older than 24 hours are not listed.\n\n`type` is the website type the setup was started with (`wordpress`, `headless_empty`,\n`headless_wordpress`, `headless_ecommerce`, `headless_pocketbase`), or `null` for an empty\nwebsite.",
3022
3163
  "method": "GET",
3023
3164
  "path": "/api/hosting/v1/onboardings",
3024
3165
  "inputSchema": {
@@ -3054,7 +3195,7 @@ export default [
3054
3195
  "readOnlyHint": false,
3055
3196
  "destructiveHint": false
3056
3197
  },
3057
- "description": "Starts a website setup on a Web or Cloud hosting order and returns the created setup\nright away; the website itself is provisioned asynchronously. Poll the list website\nsetups endpoint with the `domain` filter every 10 to 15 seconds and wait for\n`status: completed` before uploading files, deploying or creating databases.\n\nOmit `type` for an empty website. `type: wordpress` installs WordPress in the website\nroot with the admin user, email and password from `wordpress`, the domain as the site\ntitle, and `en_US` when `wordpress.language` is omitted. The headless types\n(`headless_wordpress`, `headless_ecommerce`, `headless_pocketbase`) create a headless\nwebsite; `headless_wordpress` additionally installs WordPress into the `cms` directory\nof the website root with generated credentials.\n\nOmit `domain` to set the website up on a generated temporary free subdomain.\n\nWhen the order has no hosting account yet, the setup creates one first, in the datacenter\ngiven by `datacenter_code` or the order's default datacenter when it is omitted.\nReturns 404 when the order does not exist or is not accessible to the authenticated\nclient, and 409 with a `Retry-After` header while a setup for the same domain is still\nrunning.",
3198
+ "description": "Starts a website setup on a Web or Cloud hosting order and returns the created setup\nright away; the website itself is provisioned asynchronously. Poll the list website\nsetups endpoint (`hosting_websites_list-setups`) with the `domain` filter every 10 to 15\nseconds and wait for `status: completed` before uploading files, deploying or creating\ndatabases.\n\nOmit `type` for an empty website. `type: wordpress` installs WordPress in the website\nroot with the admin user, email and password from `wordpress`, the domain as the site\ntitle, and `en_US` when `wordpress.language` is omitted. The headless types\n(`headless_empty`, `headless_wordpress`, `headless_ecommerce`, `headless_pocketbase`)\ncreate a headless website; `headless_wordpress` additionally installs WordPress into the\n`cms` directory of the website root with generated credentials. `headless_empty` installs\nnothing: WordPress can be added later through\n`POST /api/hosting/v1/accounts/{username}/wordpress/installations`\n(`wordpress_installations_install`) with `type: headless`.\n\nOmit `domain` to set the website up on a generated temporary free subdomain. To know the\nfree subdomain before the call, so a timed-out call can be looked up and retried on the\nsame domain, generate one through `POST /api/hosting/v1/domains/free-subdomains`\n(`hosting_domains_generate-free-subdomain`) and send it as `domain`. It is accepted for\n24 hours, only from the client that generated it.\n\nWhen the order has no hosting account yet, the setup creates one first, in the datacenter\ngiven by `datacenter_code` or the order's default datacenter when it is omitted.\nReturns 404 when the order does not exist or is not accessible to the authenticated\nclient, and 409 with a `Retry-After` header while a setup for the same domain is still\nrunning.",
3058
3199
  "method": "POST",
3059
3200
  "path": "/api/hosting/v1/orders/{order_id}/onboardings",
3060
3201
  "inputSchema": {
@@ -3066,9 +3207,10 @@ export default [
3066
3207
  },
3067
3208
  "type": {
3068
3209
  "type": "string",
3069
- "description": "Website type. Omit or `null` for an empty website. `wordpress` installs WordPress in the website root and requires `wordpress`. The headless types (`headless_wordpress`, `headless_ecommerce`, `headless_pocketbase`) create a headless website; `headless_wordpress` additionally installs WordPress into the `cms` directory with generated credentials.",
3210
+ "description": "Website type. Omit or `null` for an empty website. `wordpress` installs WordPress in the website root and requires `wordpress`. The headless types (`headless_empty`, `headless_wordpress`, `headless_ecommerce`, `headless_pocketbase`) create a headless website; `headless_wordpress` additionally installs WordPress into the `cms` directory with generated credentials. `headless_empty` installs nothing, so WordPress can be added later through `POST /api/hosting/v1/accounts/{username}/wordpress/installations` (`wordpress_installations_install`) with `type: headless`.",
3070
3211
  "enum": [
3071
3212
  "wordpress",
3213
+ "headless_empty",
3072
3214
  "headless_wordpress",
3073
3215
  "headless_ecommerce",
3074
3216
  "headless_pocketbase"
@@ -3076,7 +3218,7 @@ export default [
3076
3218
  },
3077
3219
  "domain": {
3078
3220
  "type": "string",
3079
- "description": "Customer-owned domain. Cannot start with \"www.\" and can have at most one subdomain level, e.g. `blog.example.com`. Omit or `null` to set the website up on a generated temporary free subdomain."
3221
+ "description": "Customer-owned domain, or a free subdomain you generated through `POST /api/hosting/v1/domains/free-subdomains` (`hosting_domains_generate-free-subdomain`) in the last 24 hours. Cannot start with \"www.\" and can have at most one subdomain level, e.g. `blog.example.com`. Omit or `null` to set the website up on a generated temporary free subdomain."
3080
3222
  },
3081
3223
  "datacenter_code": {
3082
3224
  "type": "string",
@@ -491,7 +491,7 @@ const tools: OpenApiTool[] = [
491
491
  "destructiveHint": true,
492
492
  "idempotentHint": true
493
493
  },
494
- "description": "Permanently clears all server-side cache for the website at once. Use it when content was\nupdated and needs to be visible immediately, or after making major changes.\n\nAlso purges the Hostinger CDN cache when CDN is enabled on the website. For a WordPress\ninstallation living in a subdirectory, pass the directory query parameter to clear its cache.",
494
+ "description": "Permanently clears all server-side cache for the website at once. Use it when content was\nupdated and needs to be visible immediately, or after making major changes.\n\nAlso purges the Hostinger CDN cache when CDN is enabled on the website. To purge only the CDN\ncache and leave the server cache untouched, use `Purge CDN cache`. For a WordPress\ninstallation living in a subdirectory, pass the directory query parameter to clear its cache.",
495
495
  "method": "DELETE",
496
496
  "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/cache/clear",
497
497
  "inputSchema": {
@@ -604,6 +604,147 @@ const tools: OpenApiTool[] = [
604
604
  ],
605
605
  "group": "hosting"
606
606
  },
607
+ {
608
+ "name": "hosting_cdn_disable",
609
+ "title": "Disable CDN",
610
+ "annotations": {
611
+ "title": "Disable CDN",
612
+ "readOnlyHint": false,
613
+ "destructiveHint": true
614
+ },
615
+ "description": "Turns off the Hostinger CDN for the website domain. Once DNS propagation completes, the\nwebsite content is served directly from the origin server. Repeating the call is safe; when\nCDN is already disabled, it applies the DNS change again.\n\nReturns 422 for platform-managed domains (for example `*.hostingersite.com` and\n`*.app-preview.com`), where CDN cannot be disabled, even when CDN is already off. Also returns\n422 while the account is being moved to another server (retry after the move finishes), or\nwhen the CDN provider rejects the change. Returns 404 when the domain is not a website on the\naccount.",
616
+ "method": "POST",
617
+ "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/cdn/disable",
618
+ "inputSchema": {
619
+ "type": "object",
620
+ "properties": {
621
+ "username": {
622
+ "type": "string",
623
+ "description": "username parameter"
624
+ },
625
+ "domain": {
626
+ "type": "string",
627
+ "description": "Domain name"
628
+ }
629
+ },
630
+ "required": [
631
+ "username",
632
+ "domain"
633
+ ]
634
+ },
635
+ "security": [
636
+ {
637
+ "apiToken": []
638
+ }
639
+ ],
640
+ "group": "hosting"
641
+ },
642
+ {
643
+ "name": "hosting_cdn_enable",
644
+ "title": "Enable CDN",
645
+ "annotations": {
646
+ "title": "Enable CDN",
647
+ "readOnlyHint": false,
648
+ "destructiveHint": false
649
+ },
650
+ "description": "Turns on the Hostinger CDN for the website domain, which speeds up page loads and reduces the\nload on the server. Works for the main domain, parked domains and subdomains of the account.\n\nEnabling changes the domain's DNS records and usually takes a few seconds. After that, DNS\npropagation can take a few more minutes before visitors are served through the CDN.\n\nRepeating the call is safe, for example after a timeout. When CDN is already enabled, it\napplies the DNS change again and refreshes the CDN SSL certificate.\n\nReturns 422 when the account is disabled, while the account is being moved to another\nserver (retry after the move finishes), or when the CDN provider rejects the change.\nReturns 404 when the domain is not a website on the account.",
651
+ "method": "POST",
652
+ "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/cdn/enable",
653
+ "inputSchema": {
654
+ "type": "object",
655
+ "properties": {
656
+ "username": {
657
+ "type": "string",
658
+ "description": "username parameter"
659
+ },
660
+ "domain": {
661
+ "type": "string",
662
+ "description": "Domain name"
663
+ }
664
+ },
665
+ "required": [
666
+ "username",
667
+ "domain"
668
+ ]
669
+ },
670
+ "security": [
671
+ {
672
+ "apiToken": []
673
+ }
674
+ ],
675
+ "group": "hosting"
676
+ },
677
+ {
678
+ "name": "hosting_cdn_purge-cache",
679
+ "title": "Purge CDN cache",
680
+ "annotations": {
681
+ "title": "Purge CDN cache",
682
+ "readOnlyHint": false,
683
+ "destructiveHint": true,
684
+ "idempotentHint": true
685
+ },
686
+ "description": "Purges the website's content from the Hostinger CDN edge cache only. The origin server cache\nis not touched; to clear both, use `Clear website cache`.\n\nReturns 422 when CDN is not enabled on the website. Returns 404 when the domain is not a\nwebsite on the account.",
687
+ "method": "DELETE",
688
+ "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/cdn/purge",
689
+ "inputSchema": {
690
+ "type": "object",
691
+ "properties": {
692
+ "username": {
693
+ "type": "string",
694
+ "description": "username parameter"
695
+ },
696
+ "domain": {
697
+ "type": "string",
698
+ "description": "Domain name"
699
+ }
700
+ },
701
+ "required": [
702
+ "username",
703
+ "domain"
704
+ ]
705
+ },
706
+ "security": [
707
+ {
708
+ "apiToken": []
709
+ }
710
+ ],
711
+ "group": "hosting"
712
+ },
713
+ {
714
+ "name": "hosting_cdn_status",
715
+ "title": "Get CDN status",
716
+ "annotations": {
717
+ "title": "Get CDN status",
718
+ "readOnlyHint": true,
719
+ "destructiveHint": false
720
+ },
721
+ "description": "Returns whether the Hostinger CDN is enabled for the website domain. Works for the main\ndomain, parked domains and subdomains of the account.\n\nThe domain must be the exact website name as listed on the account, without a `www.` prefix.\nReturns 404 when the domain is not a website on the account.",
722
+ "method": "GET",
723
+ "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/cdn/status",
724
+ "inputSchema": {
725
+ "type": "object",
726
+ "properties": {
727
+ "username": {
728
+ "type": "string",
729
+ "description": "username parameter"
730
+ },
731
+ "domain": {
732
+ "type": "string",
733
+ "description": "Domain name"
734
+ }
735
+ },
736
+ "required": [
737
+ "username",
738
+ "domain"
739
+ ]
740
+ },
741
+ "security": [
742
+ {
743
+ "apiToken": []
744
+ }
745
+ ],
746
+ "group": "hosting"
747
+ },
607
748
  {
608
749
  "name": "hosting_cron-jobs_list",
609
750
  "title": "List account cron jobs",
@@ -3034,7 +3175,7 @@ const tools: OpenApiTool[] = [
3034
3175
  "readOnlyHint": true,
3035
3176
  "destructiveHint": false
3036
3177
  },
3037
- "description": "Returns the website setups started in the last 24 hours for the hosting accounts\naccessible to the authenticated client, newest first. Narrow the list with the\n`order_id`, `subscription_id` or `domain` filters.\n\nMeant for polling right after creating a website or starting a website setup: the\nwebsite shows up in the websites list before its server-side setup has finished, and\nwhile the setup is `running` endpoints that operate on that website may respond with\n`404` or `409`. Poll this endpoint with the `domain` filter every 10 to 15 seconds and\nwait for `status: completed` before uploading files, deploying or creating databases.\n`failed` means the setup stopped before finishing or has not reported progress for\nover an hour. Setups older than 24 hours are not listed.\n\n`type` is the website type the setup was started with (`wordpress`, `headless_wordpress`,\n`headless_ecommerce`, `headless_pocketbase`), or `null` for an empty website.",
3178
+ "description": "Returns the website setups started in the last 24 hours for the hosting accounts\naccessible to the authenticated client, newest first. Narrow the list with the\n`order_id`, `subscription_id` or `domain` filters.\n\nMeant for polling right after creating a website or starting a website setup: the\nwebsite shows up in the websites list before its server-side setup has finished, and\nwhile the setup is `running` endpoints that operate on that website may respond with\n`404` or `409`. Poll this endpoint with the `domain` filter every 10 to 15 seconds and\nwait for `status: completed` before uploading files, deploying or creating databases.\n`failed` means the setup stopped before finishing or has not reported progress for\nover an hour. Setups older than 24 hours are not listed.\n\n`type` is the website type the setup was started with (`wordpress`, `headless_empty`,\n`headless_wordpress`, `headless_ecommerce`, `headless_pocketbase`), or `null` for an empty\nwebsite.",
3038
3179
  "method": "GET",
3039
3180
  "path": "/api/hosting/v1/onboardings",
3040
3181
  "inputSchema": {
@@ -3070,7 +3211,7 @@ const tools: OpenApiTool[] = [
3070
3211
  "readOnlyHint": false,
3071
3212
  "destructiveHint": false
3072
3213
  },
3073
- "description": "Starts a website setup on a Web or Cloud hosting order and returns the created setup\nright away; the website itself is provisioned asynchronously. Poll the list website\nsetups endpoint with the `domain` filter every 10 to 15 seconds and wait for\n`status: completed` before uploading files, deploying or creating databases.\n\nOmit `type` for an empty website. `type: wordpress` installs WordPress in the website\nroot with the admin user, email and password from `wordpress`, the domain as the site\ntitle, and `en_US` when `wordpress.language` is omitted. The headless types\n(`headless_wordpress`, `headless_ecommerce`, `headless_pocketbase`) create a headless\nwebsite; `headless_wordpress` additionally installs WordPress into the `cms` directory\nof the website root with generated credentials.\n\nOmit `domain` to set the website up on a generated temporary free subdomain.\n\nWhen the order has no hosting account yet, the setup creates one first, in the datacenter\ngiven by `datacenter_code` or the order's default datacenter when it is omitted.\nReturns 404 when the order does not exist or is not accessible to the authenticated\nclient, and 409 with a `Retry-After` header while a setup for the same domain is still\nrunning.",
3214
+ "description": "Starts a website setup on a Web or Cloud hosting order and returns the created setup\nright away; the website itself is provisioned asynchronously. Poll the list website\nsetups endpoint (`hosting_websites_list-setups`) with the `domain` filter every 10 to 15\nseconds and wait for `status: completed` before uploading files, deploying or creating\ndatabases.\n\nOmit `type` for an empty website. `type: wordpress` installs WordPress in the website\nroot with the admin user, email and password from `wordpress`, the domain as the site\ntitle, and `en_US` when `wordpress.language` is omitted. The headless types\n(`headless_empty`, `headless_wordpress`, `headless_ecommerce`, `headless_pocketbase`)\ncreate a headless website; `headless_wordpress` additionally installs WordPress into the\n`cms` directory of the website root with generated credentials. `headless_empty` installs\nnothing: WordPress can be added later through\n`POST /api/hosting/v1/accounts/{username}/wordpress/installations`\n(`wordpress_installations_install`) with `type: headless`.\n\nOmit `domain` to set the website up on a generated temporary free subdomain. To know the\nfree subdomain before the call, so a timed-out call can be looked up and retried on the\nsame domain, generate one through `POST /api/hosting/v1/domains/free-subdomains`\n(`hosting_domains_generate-free-subdomain`) and send it as `domain`. It is accepted for\n24 hours, only from the client that generated it.\n\nWhen the order has no hosting account yet, the setup creates one first, in the datacenter\ngiven by `datacenter_code` or the order's default datacenter when it is omitted.\nReturns 404 when the order does not exist or is not accessible to the authenticated\nclient, and 409 with a `Retry-After` header while a setup for the same domain is still\nrunning.",
3074
3215
  "method": "POST",
3075
3216
  "path": "/api/hosting/v1/orders/{order_id}/onboardings",
3076
3217
  "inputSchema": {
@@ -3082,9 +3223,10 @@ const tools: OpenApiTool[] = [
3082
3223
  },
3083
3224
  "type": {
3084
3225
  "type": "string",
3085
- "description": "Website type. Omit or `null` for an empty website. `wordpress` installs WordPress in the website root and requires `wordpress`. The headless types (`headless_wordpress`, `headless_ecommerce`, `headless_pocketbase`) create a headless website; `headless_wordpress` additionally installs WordPress into the `cms` directory with generated credentials.",
3226
+ "description": "Website type. Omit or `null` for an empty website. `wordpress` installs WordPress in the website root and requires `wordpress`. The headless types (`headless_empty`, `headless_wordpress`, `headless_ecommerce`, `headless_pocketbase`) create a headless website; `headless_wordpress` additionally installs WordPress into the `cms` directory with generated credentials. `headless_empty` installs nothing, so WordPress can be added later through `POST /api/hosting/v1/accounts/{username}/wordpress/installations` (`wordpress_installations_install`) with `type: headless`.",
3086
3227
  "enum": [
3087
3228
  "wordpress",
3229
+ "headless_empty",
3088
3230
  "headless_wordpress",
3089
3231
  "headless_ecommerce",
3090
3232
  "headless_pocketbase"
@@ -3092,7 +3234,7 @@ const tools: OpenApiTool[] = [
3092
3234
  },
3093
3235
  "domain": {
3094
3236
  "type": "string",
3095
- "description": "Customer-owned domain. Cannot start with \"www.\" and can have at most one subdomain level, e.g. `blog.example.com`. Omit or `null` to set the website up on a generated temporary free subdomain."
3237
+ "description": "Customer-owned domain, or a free subdomain you generated through `POST /api/hosting/v1/domains/free-subdomains` (`hosting_domains_generate-free-subdomain`) in the last 24 hours. Cannot start with \"www.\" and can have at most one subdomain level, e.g. `blog.example.com`. Omit or `null` to set the website up on a generated temporary free subdomain."
3096
3238
  },
3097
3239
  "datacenter_code": {
3098
3240
  "type": "string",