// Auto-generated tool list for group: hosting import type { Tool } from "@modelcontextprotocol/sdk/types.js"; export interface OpenApiTool extends Tool { method: string; path: string; security: unknown[]; custom?: boolean; group?: string; topic?: string; handlerMethod?: string; templateFile?: string; templateFileTS?: string; } const tools: OpenApiTool[] = [ { "name": "hosting_importWordpressWebsite", "topic": "hosting", "description": "Import a WordPress website from an archive file to a hosting server. This tool uploads a website archive (zip, tar, tar.gz, etc.) and a database dump (.sql file) to deploy a complete WordPress website. The archive will be extracted on the server automatically. Note: This process may take a while for larger sites. After upload completion, files are being extracted and the site will be available in a few minutes. Upload credentials are generated and used internally — do not call a separate upload-url endpoint or upload the files yourself, this tool does it end-to-end. The username will be automatically resolved from the domain.", "method": "", "path": "", "inputSchema": { "type": "object", "properties": { "domain": { "type": "string", "description": "Domain name associated with the hosting account (e.g., example.com)" }, "archivePath": { "type": "string", "description": "Absolute or relative path to the website archive file. Supported formats: zip, tar, tar.gz, tgz, 7z, gz, gzip. If user provides directory path, create archive from it before proceeding using EXACTLY this naming pattern: directoryname_YYYYMMDD_HHMMSS.zip (e.g., mywebsite_20250115_143022.zip)" }, "databaseDump": { "type": "string", "description": "Absolute or relative path to a database dump file (.sql)" } }, "required": [ "domain", "archivePath", "databaseDump" ] }, "security": [], "custom": true, "templateFile": "import-wordpress.template.js", "templateFileTS": "import-wordpress.template.ts", "handlerMethod": "handleWordpressWebsiteImport", "group": "hosting" }, { "name": "hosting_deployWordpressPlugin", "topic": "hosting", "description": "Deploy a WordPress plugin from a directory to a hosting server. This tool uploads all plugin files and triggers plugin deployment. Upload credentials are generated and used internally — do not call a separate upload-url endpoint or upload the files yourself, this tool does it end-to-end.", "method": "", "path": "", "inputSchema": { "type": "object", "properties": { "domain": { "type": "string", "description": "Domain name associated with the hosting account (e.g., example.com)" }, "slug": { "type": "string", "description": "WordPress plugin slug (e.g., omnisend)" }, "pluginPath": { "type": "string", "description": "Absolute or relative path to the plugin directory containing all plugin files" } }, "required": [ "domain", "slug", "pluginPath" ] }, "security": [], "custom": true, "templateFile": "deploy-wordpress-plugin.template.js", "templateFileTS": "deploy-wordpress-plugin.template.ts", "handlerMethod": "handleWordpressPluginDeploy", "group": "hosting" }, { "name": "hosting_deployWordpressTheme", "topic": "hosting", "description": "Deploy a WordPress theme from a directory to a hosting server. This tool uploads all theme files and triggers theme deployment. The uploaded theme can optionally be activated after deployment. Upload credentials are generated and used internally — do not call a separate upload-url endpoint or upload the files yourself, this tool does it end-to-end.", "method": "", "path": "", "inputSchema": { "type": "object", "properties": { "domain": { "type": "string", "description": "Domain name associated with the hosting account (e.g., example.com)" }, "slug": { "type": "string", "description": "WordPress theme slug (e.g., twentytwentyfive)" }, "themePath": { "type": "string", "description": "Absolute or relative path to the theme directory containing all theme files" }, "activate": { "type": "boolean", "description": "Whether to activate the theme after deployment (default: false)" } }, "required": [ "domain", "slug", "themePath" ] }, "security": [], "custom": true, "templateFile": "deploy-wordpress-theme.template.js", "templateFileTS": "deploy-wordpress-theme.template.ts", "handlerMethod": "handleWordpressThemeDeploy", "group": "hosting" }, { "name": "hosting_deployJsApplication", "topic": "hosting", "description": "Deploy a JavaScript application from an archive file to a hosting server. IMPORTANT: the archive must ONLY contain application source files, not the build output, skip node_modules directory; also exclude all files matched by .gitignore if the ignore file exists. The build process will be triggered automatically on the server after the archive is uploaded. Upload credentials are generated and used internally — do not call a separate upload-url endpoint or upload the archive yourself, this tool does it end-to-end. After deployment, use the hosting_listJsDeployments tool to check deployment status and track build progress.", "method": "", "path": "", "inputSchema": { "type": "object", "properties": { "domain": { "type": "string", "description": "Domain name associated with the hosting account (e.g., example.com)" }, "archivePath": { "type": "string", "description": "Absolute or relative path to the application archive file. Supported formats: zip, tar, tar.gz, tgz, 7z, gz, gzip. If user provides directory path, create archive from it before proceeding. IMPORTANT: the archive must ONLY contain application source files, not the build output, skip node_modules directory." }, "removeArchive": { "type": "boolean", "description": "Whether to remove the archive file after successful deployment (default: false)" } }, "required": [ "domain", "archivePath" ] }, "security": [], "custom": true, "templateFile": "deploy-javascript-app.template.js", "templateFileTS": "deploy-javascript-app.template.ts", "handlerMethod": "handleJavascriptApplicationDeploy", "group": "hosting" }, { "name": "hosting_deployStaticWebsite", "topic": "hosting", "description": "Deploy a static website from an archive file to a hosting server. IMPORTANT: This tool only works for static websites with no build process. The archive must contain pre-built static files (HTML, CSS, JavaScript, images, etc.) ready to be served. If the website has a package.json file or requires a build command, use hosting_deployJsApplication instead. The tool uploads the archive to the website's file browser over TUS and triggers deployment; the archive is extracted and deployed directly without any build steps. Upload credentials are generated and used internally — do not call a separate upload-url endpoint or upload the archive yourself, this tool does it end-to-end. The username will be automatically resolved from the domain.", "method": "", "path": "", "inputSchema": { "type": "object", "properties": { "domain": { "type": "string", "description": "Domain name associated with the hosting account (e.g., example.com)" }, "archivePath": { "type": "string", "description": "Absolute or relative path to the static website archive file. Supported formats: zip, tar, tar.gz, tgz, 7z, gz, gzip. If user provides directory path, create archive from it before proceeding using EXACTLY this naming pattern: directoryname_YYYYMMDD_HHMMSS.zip (e.g., mystaticwebsite_20250115_143022.zip)" }, "removeArchive": { "type": "boolean", "description": "Whether to remove the archive file after successful deployment (default: false)" } }, "required": [ "domain", "archivePath" ] }, "security": [], "custom": true, "templateFile": "deploy-static-website.template.js", "templateFileTS": "deploy-static-website.template.ts", "handlerMethod": "handleStaticWebsiteDeploy", "group": "hosting" }, { "name": "hosting_listJsDeployments", "topic": "hosting", "description": "List javascript application deployments for checking their status. Use this tool when customer asks for the status of the deployment. This tool retrieves a paginated list of Node.js application deployments for a domain with optional filtering by deployment states.", "method": "", "path": "", "inputSchema": { "type": "object", "properties": { "domain": { "type": "string", "description": "Domain name associated with the hosting account (e.g., example.com)" }, "page": { "type": "integer", "description": "Page number for pagination (optional)" }, "perPage": { "type": "integer", "description": "Number of items per page (optional)" }, "states": { "type": "array", "items": { "type": "string", "enum": [ "pending", "completed", "running", "failed" ] }, "description": "Filter by deployment states (optional). Valid values: pending, completed, running, failed" } }, "required": [ "domain" ] }, "security": [], "custom": true, "templateFile": "list-javascript-deployments.template.js", "templateFileTS": "list-javascript-deployments.template.ts", "handlerMethod": "handleListJavascriptDeployments", "group": "hosting" }, { "name": "hosting_showJsDeploymentLogs", "topic": "hosting", "description": "Retrieve logs for a specified JavaScript application deployment for debugging purposes in case of failure.", "method": "", "path": "", "inputSchema": { "type": "object", "properties": { "domain": { "type": "string", "description": "Domain name associated with the hosting account (e.g., example.com)" }, "fromLine": { "type": "integer", "description": "Line from which to retrieve logs (optional, default 0)" }, "buildUuid": { "type": "string", "description": "UUID of the JavaScript deployment build" } }, "required": [ "domain", "buildUuid" ] }, "security": [], "custom": true, "templateFile": "show-javascript-deployment-logs.template.js", "templateFileTS": "show-javascript-deployment-logs.template.ts", "handlerMethod": "handleShowJsDeploymentLogs", "group": "hosting" }, { "name": "hosting_clearWebsiteCacheV1", "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.", "method": "DELETE", "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/cache/clear", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "domain": { "type": "string", "description": "Domain name" }, "directory": { "type": "string", "description": "Directory of the website installation to clear, relative to the website root.\nDefaults to the website root." } }, "required": [ "username", "domain" ] }, "security": [ { "apiToken": [] } ], "group": "hosting" }, { "name": "hosting_toggleCachelessModeV1", "description": "Turns development (cacheless) mode on or off, based on the enabled flag. When enabled, nothing\nis cached, effectively turning off all caching for the website; use it while actively developing,\ntesting changes, debugging issues, or when real-time updates must be visible. Disable it after\nfinishing development work to restore the performance benefits of caching.", "method": "PATCH", "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/cacheless-mode/toggle", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "domain": { "type": "string", "description": "Domain name" }, "enabled": { "type": "boolean", "description": "Turn development (cacheless) mode on (true) or off (false) for the website." } }, "required": [ "username", "domain", "enabled" ] }, "security": [ { "apiToken": [] } ], "group": "hosting" }, { "name": "hosting_toggleWebsiteCacheV1", "description": "Turns server-side caching for the website on or off, based on the enabled flag. Enable it for\nfaster page loads, reduced server load, and improved user experience; recommended for production\nwebsites. Disabling may impact performance; to temporarily bypass caching while developing or\ndebugging, prefer toggling cacheless mode instead.\n\nDoes nothing if caching is already in the requested state.", "method": "PATCH", "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/cache/toggle", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "domain": { "type": "string", "description": "Domain name" }, "enabled": { "type": "boolean", "description": "Turn server-side caching on (true) or off (false) for the website." } }, "required": [ "username", "domain", "enabled" ] }, "security": [ { "apiToken": [] } ], "group": "hosting" }, { "name": "hosting_listAccountCronJobsV1", "description": "Returns the list of cron jobs configured for the specified account, including their schedule and command.", "method": "GET", "path": "/api/hosting/v1/accounts/{username}/cron-jobs", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" } }, "required": [ "username" ] }, "security": [ { "apiToken": [] } ], "group": "hosting" }, { "name": "hosting_createAccountCronJobV1", "description": "Creates a cron job for the specified account from a schedule expression and a command.\n\nReturns the created cron job, including its uid, which is required to delete the cron job or fetch its output.", "method": "POST", "path": "/api/hosting/v1/accounts/{username}/cron-jobs", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "time": { "type": "string", "description": "Cron schedule expression (for example \"0 2 * * *\" runs daily at 02:00)." }, "command": { "type": "string", "description": "Command to execute on the schedule." } }, "required": [ "username", "time", "command" ] }, "security": [ { "apiToken": [] } ], "group": "hosting" }, { "name": "hosting_deleteAccountCronJobV1", "description": "Permanently deletes the cron job identified by its uid.\n\nThe uid is returned by the list cron jobs endpoint.", "method": "DELETE", "path": "/api/hosting/v1/accounts/{username}/cron-jobs/{uid}", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "uid": { "type": "string", "description": "Unique identifier of the cron job as returned by the list cron jobs endpoint." } }, "required": [ "username", "uid" ] }, "security": [ { "apiToken": [] } ], "group": "hosting" }, { "name": "hosting_getCronJobOutputV1", "description": "Returns the output captured from the last execution of the cron job identified by its uid.\n\nThe uid is returned by the list cron jobs endpoint.", "method": "GET", "path": "/api/hosting/v1/accounts/{username}/cron-jobs/{uid}/output", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "uid": { "type": "string", "description": "Unique identifier of the cron job as returned by the list cron jobs endpoint." } }, "required": [ "username", "uid" ] }, "security": [ { "apiToken": [] } ], "group": "hosting" }, { "name": "hosting_changeDatabasePasswordV1", "description": "Changes the password for the specified database user.\n\nThe database name must be the full name returned by the list databases endpoint.\nThe password must also be updated in any website configuration that uses this database.", "method": "PATCH", "path": "/api/hosting/v1/accounts/{username}/databases/{name}/change-password", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "name": { "type": "string", "description": "Full database name as returned by the list databases endpoint." }, "password": { "type": "string", "description": "New database user password." } }, "required": [ "username", "name", "password" ] }, "security": [ { "apiToken": [] } ], "group": "hosting" }, { "name": "hosting_listAccountDatabasesV1", "description": "Returns a paginated list of databases for the specified account.\n\nUse the domain and is_assigned filters to find databases assigned to a specific domain.", "method": "GET", "path": "/api/hosting/v1/accounts/{username}/databases", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "page": { "type": "integer", "description": "Page number" }, "per_page": { "type": "integer", "description": "Number of items per page" }, "domain": { "type": "string", "description": "Filter by domain name (case-insensitive substring match)" }, "is_assigned": { "type": "boolean", "description": "When used with domain, return only databases assigned to that domain." }, "search": { "type": "string", "description": "Search databases by name, user, or creation date." } }, "required": [ "username" ] }, "security": [ { "apiToken": [] } ], "group": "hosting" }, { "name": "hosting_createAccountDatabaseV1", "description": "Creates a database with a database user and password for the specified account.\n\nThe database name and user are automatically prefixed with the account username when needed.", "method": "POST", "path": "/api/hosting/v1/accounts/{username}/databases", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "name": { "type": "string", "description": "Database name. If the account username prefix is omitted, it is added automatically." }, "user": { "type": "string", "description": "Database user. If the account username prefix is omitted, it is added automatically." }, "password": { "type": "string", "description": "Database user password." }, "website_domain": { "type": "string", "description": "Website domain assigned to the database." } }, "required": [ "username", "name", "user", "password", "website_domain" ] }, "security": [ { "apiToken": [] } ], "group": "hosting" }, { "name": "hosting_deleteAccountDatabaseV1", "description": "Permanently deletes a database and its remote connections.\n\nThe database name must be the full name returned by the list databases endpoint.", "method": "DELETE", "path": "/api/hosting/v1/accounts/{username}/databases/{name}", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "name": { "type": "string", "description": "Full database name as returned by the list databases endpoint." } }, "required": [ "username", "name" ] }, "security": [ { "apiToken": [] } ], "group": "hosting" }, { "name": "hosting_createDatabaseRemoteConnectionV1", "description": "Allows a remote host to connect to the specified database.\n\nProvide an IPv4/IPv6 address, or \"%\" to allow any host. The database name must be\nthe full name returned by the list databases endpoint.", "method": "POST", "path": "/api/hosting/v1/accounts/{username}/databases/{name}/remote-connections", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "name": { "type": "string", "description": "Full database name as returned by the list databases endpoint." }, "ip": { "type": "string", "description": "Remote host to allow: an IPv4/IPv6 address, or \"%\" for any host." } }, "required": [ "username", "name", "ip" ] }, "security": [ { "apiToken": [] } ], "group": "hosting" }, { "name": "hosting_deleteDatabaseRemoteConnectionV1", "description": "Permanently removes a remote-access rule, revoking the given host's remote access to the database.\n\nIdentify the rule with the required ip query parameter (the IPv4/IPv6 address, or \"%\",\nexactly as returned by the list remote connections endpoint). The database name must be\nthe full name returned by the list databases endpoint.", "method": "DELETE", "path": "/api/hosting/v1/accounts/{username}/databases/{name}/remote-connections", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "name": { "type": "string", "description": "Full database name as returned by the list databases endpoint." }, "ip": { "type": "string", "description": "Remote host to revoke: the IPv4/IPv6 address, or \"%\",\nexactly as returned by the list remote connections endpoint." } }, "required": [ "username", "name", "ip" ] }, "security": [ { "apiToken": [] } ], "group": "hosting" }, { "name": "hosting_listDatabaseRemoteConnectionsV1", "description": "Returns the remote-access rules for the specified account: the remote hosts\n(IPv4/IPv6 addresses, or \"%\" for any host) allowed to connect to the account databases.\n\nUse the domain filter to only return rules for databases assigned to a specific domain.", "method": "GET", "path": "/api/hosting/v1/accounts/{username}/databases/remote-connections", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "domain": { "type": "string", "description": "Filter remote connections by the domain the database is assigned to.\nRules for databases not assigned to any domain are always included." } }, "required": [ "username" ] }, "security": [ { "apiToken": [] } ], "group": "hosting" }, { "name": "hosting_repairDatabaseV1", "description": "Repairs corrupted database tables asynchronously.\n\nUse when database errors, crashes, or corruption are reported.\nThe database name must be the full name returned by the list databases endpoint.", "method": "PATCH", "path": "/api/hosting/v1/accounts/{username}/databases/{name}/repair", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "name": { "type": "string", "description": "Full database name as returned by the list databases endpoint." } }, "required": [ "username", "name" ] }, "security": [ { "apiToken": [] } ], "group": "hosting" }, { "name": "hosting_getPhpMyAdminLinkV1", "description": "Returns a direct sign-on link to phpMyAdmin for the specified database.\n\nUse this when a visual database interface is needed for SQL queries, imports, exports, or table management.\nThe database name must be the full name returned by the list databases endpoint.", "method": "GET", "path": "/api/hosting/v1/accounts/{username}/databases/{name}/phpmyadmin-link", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "name": { "type": "string", "description": "Full database name as returned by the list databases endpoint." } }, "required": [ "username", "name" ] }, "security": [ { "apiToken": [] } ], "group": "hosting" }, { "name": "hosting_listAvailableDatacentersV1", "description": "Retrieve a list of datacenters available for setting up hosting plans\nbased on available datacenter capacity and hosting plan of your order.\nThe first item in the list is the best match for your specific order\nrequirements.", "method": "GET", "path": "/api/hosting/v1/datacenters", "inputSchema": { "type": "object", "properties": { "order_id": { "type": "integer", "description": "Order ID" } }, "required": [ "order_id" ] }, "security": [ { "apiToken": [] } ], "group": "hosting" }, { "name": "hosting_generateAFreeSubdomainV1", "description": "Generate a unique free subdomain that can be used for hosting services without purchasing custom domains.\nFree subdomains allow you to start using hosting services immediately\nand you can always connect a custom domain to your site later.", "method": "POST", "path": "/api/hosting/v1/domains/free-subdomains", "inputSchema": { "type": "object", "properties": {}, "required": [] }, "security": [ { "apiToken": [] } ], "group": "hosting" }, { "name": "hosting_listWebsiteParkedDomainsV1", "description": "Retrieve all parked or alias domains created under the selected website.\n\nUse this endpoint to inspect parked domain configuration for a specific website,\nincluding the parent domain and root directory assigned to each parked domain.", "method": "GET", "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/parked-domains", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "domain": { "type": "string", "description": "Domain name" } }, "required": [ "username", "domain" ] }, "security": [ { "apiToken": [] } ], "group": "hosting" }, { "name": "hosting_createWebsiteParkedDomainV1", "description": "Create a parked or alias domain for the selected website.\n\nProvide a domain name or IP address to park on the website so it serves the same content\nas the parent domain.", "method": "POST", "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/parked-domains", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "domain": { "type": "string", "description": "Domain name" }, "parked_domain": { "type": "string", "description": "Domain name or IP address to park on the selected website" } }, "required": [ "username", "domain", "parked_domain" ] }, "security": [ { "apiToken": [] } ], "group": "hosting" }, { "name": "hosting_deleteWebsiteParkedDomainV1", "description": "Delete an existing parked or alias domain from the selected website.\n\nUse this endpoint to remove parked domains that are no longer needed.", "method": "DELETE", "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/parked-domains/{parkedDomain}", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "domain": { "type": "string", "description": "Domain name" }, "parkedDomain": { "type": "string", "description": "parkedDomain parameter" } }, "required": [ "username", "domain", "parkedDomain" ] }, "security": [ { "apiToken": [] } ], "group": "hosting" }, { "name": "hosting_listWebsiteSubdomainsV1", "description": "Retrieve all subdomains created under the selected website.\n\nUse this endpoint to inspect subdomain configuration for a specific website,\nincluding the parent domain and root directory assigned to each subdomain.", "method": "GET", "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/subdomains", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "domain": { "type": "string", "description": "Domain name" } }, "required": [ "username", "domain" ] }, "security": [ { "apiToken": [] } ], "group": "hosting" }, { "name": "hosting_createWebsiteSubdomainV1", "description": "Create a new subdomain for the selected website.\n\nProvide a subdomain prefix and, optionally, a custom directory or the\nwebsite public directory to use as the subdomain root.", "method": "POST", "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/subdomains", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "domain": { "type": "string", "description": "Domain name" }, "subdomain": { "type": "string", "description": "Subdomain prefix to create under the selected website" }, "directory": { "type": "string", "description": "Directory name for the subdomain relative to the website root" }, "is_using_public_directory": { "type": "boolean", "description": "Use the website public directory as the subdomain root directory" } }, "required": [ "username", "domain", "subdomain" ] }, "security": [ { "apiToken": [] } ], "group": "hosting" }, { "name": "hosting_deleteWebsiteSubdomainV1", "description": "Delete an existing subdomain from the selected website.\n\nUse this endpoint to remove subdomains that are no longer needed.", "method": "DELETE", "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/subdomains/{subdomain}", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "domain": { "type": "string", "description": "Domain name" }, "subdomain": { "type": "string", "description": "subdomain parameter" } }, "required": [ "username", "domain", "subdomain" ] }, "security": [ { "apiToken": [] } ], "group": "hosting" }, { "name": "hosting_verifyDomainOwnershipV1", "description": "Verify ownership of a single domain and return the verification status.\n\nUse this endpoint to check if a domain is accessible for you before using it for new websites.\nIf the domain is accessible, the response will have `is_accessible: true`.\nIf not, add the given TXT record to your domain's DNS records and try verifying again.\nKeep in mind that it may take up to 10 minutes for new TXT DNS records to propagate.\n\nSkip this verification when using Hostinger's free subdomains (*.hostingersite.com).", "method": "POST", "path": "/api/hosting/v1/domains/verify-ownership", "inputSchema": { "type": "object", "properties": { "domain": { "type": "string", "description": "Domain to verify ownership for" } }, "required": [ "domain" ] }, "security": [ { "apiToken": [] } ], "group": "hosting" }, { "name": "hosting_generateUploadURLV1", "description": "Generate a file browser upload URL with authentication credentials\nfor uploading files directly to a website's file storage.\n\nReturns `url`, `auth_key` and `rest_auth_key`. Use these to upload a file to the\nwebsite's `public_html` directory via the TUS resumable upload protocol (TUS 1.0.0).\nSend `X-Auth: {auth_key}` and `X-Auth-Rest: {rest_auth_key}` headers on every request\nbelow.\n\n1. Create the upload: `POST` to `{url}/{relative_file_path}?override=true` with headers\n `upload-length: {file size in bytes}` and `upload-offset: 0`. Expect `201 Created`.\n2. Upload the file: send the file bytes to the same location (any TUS 1.0.0 client, or\n `PATCH` requests with an `upload-offset` header tracking progress) until complete.\n\n`relative_file_path` is the destination path inside `public_html`, e.g. `app.zip`.\n\nInstead of a TUS client, plain `curl` also works:\n```\nFILE=app.zip\nSIZE=$(stat -f%z \"$FILE\") # stat -c%s on Linux\n\ncurl -i -X POST \"{url}/${FILE}?override=true\" \\\n -H \"X-Auth: {auth_key}\" \\\n -H \"X-Auth-Rest: {rest_auth_key}\" \\\n -H \"Tus-Resumable: 1.0.0\" \\\n -H \"Upload-Length: ${SIZE}\" \\\n -H \"Upload-Offset: 0\"\n# -> 201 Created\n\ncurl -i -X PATCH \"{url}/${FILE}?override=true\" \\\n -H \"X-Auth: {auth_key}\" \\\n -H \"X-Auth-Rest: {rest_auth_key}\" \\\n -H \"Tus-Resumable: 1.0.0\" \\\n -H \"Content-Type: application/offset+octet-stream\" \\\n -H \"Upload-Offset: 0\" \\\n --data-binary \"@${FILE}\"\n# -> 204 No Content, Upload-Offset response header equals SIZE when done\n```", "method": "POST", "path": "/api/hosting/v1/files/upload-urls", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "Account username" }, "domain": { "type": "string", "description": "Website domain" } }, "required": [ "username", "domain" ] }, "security": [ { "apiToken": [] } ], "group": "hosting" }, { "name": "hosting_listWebsiteFilesAndDirectoriesV1", "description": "List files and directories under a website's document root.\n\nUse `directory` to browse a subdirectory relative to the document root. Symlinked entries\nare listed but never traversed into or resolved.", "method": "GET", "path": "/api/hosting/v1/accounts/{username}/domains/{domain}/files", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "domain": { "type": "string", "description": "Domain name" }, "directory": { "type": "string", "description": "Directory path to check" }, "max_depth": { "type": "integer", "description": "How many directory levels deep to recurse." }, "max_items": { "type": "integer", "description": "Max number of entries to return in this page." }, "offset": { "type": "integer", "description": "Number of entries to skip. Page with offset + item count until reaching total_items." }, "file_types": { "type": "array", "description": "Filter by entry type, e.g. file,directory. Omit for all types.", "items": { "type": "string", "description": "file_types parameter", "enum": [ "file", "directory", "symlink", "other" ] } } }, "required": [ "username", "domain" ] }, "security": [ { "apiToken": [] } ], "group": "hosting" }, { "name": "hosting_getWebsiteFileContentV1", "description": "Get a single file's content, relative to a website's document root.\n\nRead-only; refuses symlinks, oversized files, non-text file types, and files identified as\ncontaining secrets (e.g. credential files) — none of these are returned by this endpoint.", "method": "GET", "path": "/api/hosting/v1/accounts/{username}/domains/{domain}/files/content", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "domain": { "type": "string", "description": "Domain name" }, "path": { "type": "string", "description": "File path, relative to the document root." }, "from_line": { "type": "integer", "description": "Line offset to start reading from." }, "max_lines": { "type": "integer", "description": "Max number of lines to return." } }, "required": [ "username", "domain", "path" ] }, "security": [ { "apiToken": [] } ], "group": "hosting" }, { "name": "hosting_listNodeJSBuildsV1", "description": "Retrieve a paginated list of Node.js build processes for a specific website.\n\nEach build represents a single run of the Node.js build pipeline. Use the `states`\nquery parameter to filter results by build state (pending, running, completed, failed).\nUse the `uuid` from a build to poll its output via the `Get Node.js Build Logs` endpoint.", "method": "GET", "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/nodejs/builds", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "domain": { "type": "string", "description": "Domain name" }, "page": { "type": "integer", "description": "Page number" }, "per_page": { "type": "integer", "description": "Number of items per page" }, "states": { "type": "array", "description": "Build states to filter by", "items": { "type": "string", "description": "states parameter", "enum": [ "pending", "running", "completed", "failed" ] } } }, "required": [ "username", "domain" ] }, "security": [ { "apiToken": [] } ], "group": "hosting" }, { "name": "hosting_startNode_jsBuildV1", "description": "Start a Node.js build process using files already present on the website's file storage.\n\nWARNING: on success this overwrites the website's existing contents and cannot be\nundone — verify this is intended before calling this endpoint.\n\nThe `source_type` must be `archive` and `source_options.archive_path` must point to an\nexisting archive file on the server (relative to the website document root).\nUse the `Generate Upload URL` endpoint to obtain credentials and upload the archive first.\n\nTo auto-detect build settings from an archive before starting, first call the\n`Get Node.js Build Settings from Archive` endpoint.\n\nThe returned build `uuid` can be used to poll progress and retrieve logs via\nthe `Get Node.js Build Logs` endpoint.", "method": "POST", "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/nodejs/builds", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "domain": { "type": "string", "description": "Domain name" }, "node_version": { "type": "integer", "description": "Node.js version", "enum": [ 18, 20, 22, 24 ] }, "app_type": { "type": "string", "description": "Node.js application type", "enum": [ "create-react-app", "gatsby", "vite", "angular", "react", "vue", "parcel", "next", "nuxt", "nest", "express", "fastify", "astro", "svelte", "svelte-kit", "hono", "react-router", "nitro", "other" ] }, "root_directory": { "type": "string", "description": "Application root directory (where package.json is located) relative to public_html" }, "output_directory": { "type": "string", "description": "Build output directory relative to the root directory" }, "build_script": { "type": "string", "description": "Build script that will be ran to build the application" }, "entry_file": { "type": "string", "description": "The main entry point file for the application" }, "package_manager": { "type": "string", "description": "Package manager", "enum": [ "npm", "yarn", "pnpm" ] }, "source_type": { "type": "string", "description": "The source type of the files", "enum": [ "archive" ] }, "source_options": { "type": "object", "description": "Source-specific options", "properties": { "archive_path": { "type": "string", "description": "The path to the archive file relative to the document root of the vhost (required if source is \"archive\")" } } } }, "required": [ "username", "domain", "node_version", "app_type", "root_directory", "output_directory", "build_script", "source_type", "source_options" ] }, "security": [ { "apiToken": [] } ], "group": "hosting" }, { "name": "hosting_getNode_jsBuildSettingsFromArchiveV1", "description": "Auto-detect Node.js build settings from a package.json inside an archive already on the server.\n\nUse this before calling `Start Node.js Build` to preview what settings will be used,\nor to let the user review and override values (framework, node version, root directory,\noutput directory, build script) before committing to a build.\n\nThe archive must already be present on the website's file storage. Use the\n`Generate Upload URL` endpoint to obtain credentials and upload the archive first.", "method": "GET", "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/nodejs/builds/settings/from-archive", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "domain": { "type": "string", "description": "Domain name" }, "archive_path": { "type": "string", "description": "The path to the archive file relative to the document root of the vhost" } }, "required": [ "username", "domain", "archive_path" ] }, "security": [ { "apiToken": [] } ], "group": "hosting" }, { "name": "hosting_listNode_jsEnvironmentVariablesV1", "description": "Lists the Node.js environment variables currently set for the website. Values are always\nmasked as `********` and cannot be read back through this API. Use this endpoint to see\nwhich keys are configured or to verify a change, not to read values.\n\nTo change variables, use the `Replace Node.js environment variables` endpoint. It replaces\nthe whole set, so never copy the masked values from this response into that request; send\nthe full desired set with real values taken from the project `.env` file or the user\nprompt instead.", "method": "GET", "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/nodejs/builds/settings/env", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "domain": { "type": "string", "description": "Domain name" } }, "required": [ "username", "domain" ] }, "security": [ { "apiToken": [] } ], "group": "hosting" }, { "name": "hosting_replaceNode_jsEnvironmentVariablesV1", "description": "Replaces the website's Node.js environment variables with the ones provided. This is a\nfull replace: any variable not in the request is deleted, and sending an empty `env_vars`\narray deletes every variable. Saving writes the values and restarts the running Node.js\nprocess.\n\nA restart is enough for apps that read environment variables at process start, such as\nExpress or NestJS. It is not enough for frameworks that bake variables into the build.\nNext.js standalone is one of those: build-time values (including `NEXT_PUBLIC_*`) need a\nfresh build. After this call, use the `Start Node.js build` endpoint so those apps\npick up the new values.\n\nThe `List Node.js environment variables` endpoint returns masked values (`********`), so\nnever copy values from it into this request. Always send the full desired set with real\nvalues taken from the project `.env` file or the user prompt.", "method": "PUT", "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/nodejs/builds/settings/env", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "domain": { "type": "string", "description": "Domain name" }, "env_vars": { "type": "array", "description": "Environment variables to set. This is the full desired set: any variable not in\nthis list is deleted, and an empty array deletes every variable.", "items": { "type": "object", "description": "env_vars parameter", "properties": { "key": { "type": "string", "description": "Environment variable name. Must start with an uppercase letter or\nunderscore, followed by uppercase letters, digits or underscores." }, "value": { "type": "string", "description": "Environment variable value." } }, "required": [ "key", "value" ] } } }, "required": [ "username", "domain", "env_vars" ] }, "security": [ { "apiToken": [] } ], "group": "hosting" }, { "name": "hosting_getNodeJSBuildLogsV1", "description": "Retrieve logs from a specific Node.js build process.\n\nTo stream live output while a build is running, poll this endpoint repeatedly\nwhile the build state is `running`, passing the previously returned `lines` count\nas `from_line` to fetch only new output since the last call.\nLog content may contain ANSI escape sequences (color codes).", "method": "GET", "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/nodejs/builds/{uuid}/logs", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "domain": { "type": "string", "description": "Domain name" }, "uuid": { "type": "string", "description": "Build UUID" }, "from_line": { "type": "integer", "description": "Line from which to start retrieving logs" } }, "required": [ "username", "domain", "uuid" ] }, "security": [ { "apiToken": [] } ], "group": "hosting" }, { "name": "hosting_restartNode_jsApplicationV1", "description": "Restarts the Node.js server process for the website. Does not rebuild or redeploy the\napplication. Use it to apply environment or configuration changes, or to recover a hung\napplication.\n\nOnly applicable to server-side applications (Express, Next.js, NestJS, etc.). Static\nfront-end apps (React, Vue, Vite) have no persistent server process, so restarting them\nhas no effect. Returns success even when the website has no server process to restart.", "method": "POST", "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/nodejs/server/restart", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "domain": { "type": "string", "description": "Domain name" } }, "required": [ "username", "domain" ] }, "security": [ { "apiToken": [] } ], "group": "hosting" }, { "name": "hosting_listNode_jsVulnerabilitiesV1", "description": "Lists known npm package vulnerabilities detected on a Node.js website, enriched with\nadvisory metadata (severity, CVSS score, CVE, advisory URL). Results are sorted from\nthe most severe to the least severe, then by publish date (newest first). Use the\n`severities` query parameter to filter.\n\nVulnerabilities with `is_patchable` set to `true` can be auto-fixed via the\n`Patch Node.js Vulnerabilities` endpoint, which opens a GitHub pull request with\nupdated package versions. Auto-fix is only available for websites deployed from a\nconnected GitHub repository. Vulnerabilities with `is_patching_in_progress` set to\n`true` are already included in an open patch pull request; while any patch pull\nrequest is open, new patch requests for this website are rejected until it is merged\nor closed.\n\nData comes from periodic dependency scans, so it may lag behind the latest deployment.\nAn empty list means the most recent scan found no vulnerabilities; it does not\nguarantee the current deployment is vulnerability-free. Available on Business and\nCloud Hosting plans.", "method": "GET", "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/nodejs/vulnerabilities", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "domain": { "type": "string", "description": "Domain name" }, "severities": { "type": "array", "description": "Severities to filter by", "items": { "type": "string", "description": "severities parameter", "enum": [ "low", "moderate", "high", "critical", "unknown" ] } } }, "required": [ "username", "domain" ] }, "security": [ { "apiToken": [] } ], "group": "hosting" }, { "name": "hosting_patchNode_jsVulnerabilitiesV1", "description": "Patches the selected Node.js vulnerabilities by updating the affected package versions\nin `package.json` and opening a GitHub pull request in the connected repository. The\ncustomer reviews and merges the pull request; merging triggers the automatic deployment.\n\nAuto-fix is only available for websites deployed from a connected GitHub repository.\nWebsites deployed from an archive have no auto-fix path and return a 404. The Hostinger\nGitHub App needs write access to the repository; without it the request fails with a\n403 explaining the missing permission.\n\nOnly vulnerabilities with `is_patchable` set to `true` can be patched. Non-patchable\nIDs in the selection are skipped; the pull request covers the patchable subset, listed\nin `patched_vulnerability_ids`. Selections without any patchable vulnerability are\nrejected with a 422. Only one patch pull request can be open at a time per website;\nclose or merge it before patching again. Available on Business and Cloud Hosting plans.", "method": "POST", "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/nodejs/vulnerabilities/patch", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "domain": { "type": "string", "description": "Domain name" }, "vulnerability_ids": { "type": "array", "description": "List of vulnerability IDs to patch, as returned by the list vulnerabilities endpoint.", "items": { "type": "string", "description": "vulnerability_ids parameter" } } }, "required": [ "username", "domain", "vulnerability_ids" ] }, "security": [ { "apiToken": [] } ], "group": "hosting" }, { "name": "hosting_listOrdersV1", "description": "Retrieve a paginated list of orders accessible to the authenticated client.\n\nThis endpoint returns orders of your hosting accounts as well as orders\nof other client hosting accounts that have shared access with you.\n\nUse the available query parameters to filter results by order statuses\nor specific order IDs for more targeted results.", "method": "GET", "path": "/api/hosting/v1/orders", "inputSchema": { "type": "object", "properties": { "page": { "type": "integer", "description": "Page number" }, "per_page": { "type": "integer", "description": "Number of items per page" }, "statuses": { "type": "array", "description": "Filter by order statuses", "items": { "type": "string", "description": "statuses parameter", "enum": [ "active", "deleting", "deleted", "suspended" ] } }, "order_ids": { "type": "array", "description": "Filter by specific order IDs", "items": { "type": "integer", "description": "order_ids parameter" } } }, "required": [] }, "security": [ { "apiToken": [] } ], "group": "hosting" }, { "name": "hosting_resetPHPExtensionsV1", "description": "Resets all PHP extensions of the website to their default state.\n\nUse it to recover from extension conflicts or restore the original configuration.", "method": "PATCH", "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/php/extensions/reset", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "domain": { "type": "string", "description": "Domain name" } }, "required": [ "username", "domain" ] }, "security": [ { "apiToken": [] } ], "group": "hosting" }, { "name": "hosting_getPHPDetailsV1", "description": "Returns the full PHP configuration for the website: current version, available versions\n(supported and unsupported), enabled/disabled extensions, options with their current value,\ndefault, type and the plan limit (`max`), and conflicting extension groups.\n\nUse it to check the current PHP setup before updating the version, extensions or options.", "method": "GET", "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/php/details", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "domain": { "type": "string", "description": "Domain name" } }, "required": [ "username", "domain" ] }, "security": [ { "apiToken": [] } ], "group": "hosting" }, { "name": "hosting_getPHPInfoV1", "description": "Returns the full phpinfo page (HTML) for the website.\n\nUse it to debug PHP issues or inspect the complete PHP environment of the website.", "method": "GET", "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/php/php-info", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "domain": { "type": "string", "description": "Domain name" } }, "required": [ "username", "domain" ] }, "security": [ { "apiToken": [] } ], "group": "hosting" }, { "name": "hosting_updatePHPExtensionsV1", "description": "Enables or disables PHP extensions (modules) for the website.\n\nUse the Get PHP details endpoint to check the current extension states before changing them.", "method": "PATCH", "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/php/extensions", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "domain": { "type": "string", "description": "Domain name" }, "enable": { "type": "array", "description": "PHP extensions to enable.", "items": { "type": "string", "description": "enable parameter" } }, "disable": { "type": "array", "description": "PHP extensions to disable.", "items": { "type": "string", "description": "disable parameter" } } }, "required": [ "username", "domain" ] }, "security": [ { "apiToken": [] } ], "group": "hosting" }, { "name": "hosting_updatePHPOptionsV1", "description": "Updates PHP options for the website (e.g. `memory_limit`, `max_execution_time`, `upload_max_filesize`).\nOnly provide the options you want to change, inside the `options` object.\n\nValues above the account plan limit are silently capped to that limit, so the request can succeed\nwith a smaller applied value. Call the Get PHP details endpoint afterwards to read the applied value.", "method": "PATCH", "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/php/options", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "domain": { "type": "string", "description": "Domain name" }, "options": { "type": "object", "description": "Map of PHP options to update, keyed by option name. Only include options you want to change.", "properties": {} } }, "required": [ "username", "domain", "options" ] }, "security": [ { "apiToken": [] } ], "group": "hosting" }, { "name": "hosting_updatePHPVersionV1", "description": "Changes the PHP version of the website.\n\nUse the Get PHP details endpoint to see the versions available for the website.", "method": "PATCH", "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/php/version", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "domain": { "type": "string", "description": "Domain name" }, "version": { "type": "string", "description": "PHP version to switch the website to." } }, "required": [ "username", "domain", "version" ] }, "security": [ { "apiToken": [] } ], "group": "hosting" }, { "name": "hosting_listWebsiteRedirectsV1", "description": "Returns a paginated list of redirects configured for the selected website.", "method": "GET", "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/redirects", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "domain": { "type": "string", "description": "Domain name" }, "page": { "type": "integer", "description": "Page number" }, "per_page": { "type": "integer", "description": "Number of items per page" } }, "required": [ "username", "domain" ] }, "security": [ { "apiToken": [] } ], "group": "hosting" }, { "name": "hosting_createWebsiteRedirectV1", "description": "Creates a redirect from a URL on the selected website to another URL or IP address.", "method": "POST", "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/redirects", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "domain": { "type": "string", "description": "Domain name" }, "from": { "type": "string", "description": "Source URL on the selected website" }, "to": { "type": "string", "description": "Destination URL or IP address" } }, "required": [ "username", "domain", "from", "to" ] }, "security": [ { "apiToken": [] } ], "group": "hosting" }, { "name": "hosting_deleteWebsiteRedirectV1", "description": "Permanently deletes the redirect identified by its source URL.\n\nPass the `from` value exactly as returned by the list redirects endpoint.", "method": "DELETE", "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/redirects", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "domain": { "type": "string", "description": "Domain name" }, "from": { "type": "string", "description": "Source URL returned by the list redirects endpoint." } }, "required": [ "username", "domain", "from" ] }, "security": [ { "apiToken": [] } ], "group": "hosting" }, { "name": "hosting_listWebsitesV1", "description": "Retrieve a paginated list of websites (CloudLinux, Builder, and Horizons) accessible to the\nauthenticated client.\n\nThis endpoint returns websites from your hosting accounts as well as\nwebsites from other client hosting accounts that have shared access\nwith you.\n\nEach website includes a `website_type` field describing the type of\nwebsite detected on the underlying platform (`wordpress`, `builder`,\n`horizons`, `nodejs`, or `other`). Some fields, such as\n`vhost_type`, `username`, and `root_directory`, only apply to\nCloudLinux websites and are null for other platforms.\n\nUse `website_types` to list only websites of a given detected type, e.g. only\nWordPress websites (`website_types=wordpress`) or only Node.js websites\n(`website_types=nodejs`). Combine with the other available query parameters to\nfilter by username, order ID, enabled status, or domain name for more targeted\nresults.", "method": "GET", "path": "/api/hosting/v1/websites", "inputSchema": { "type": "object", "properties": { "page": { "type": "integer", "description": "Page number" }, "per_page": { "type": "integer", "description": "Number of items per page" }, "username": { "type": "string", "description": "Filter by specific username" }, "order_id": { "type": "integer", "description": "Order ID" }, "is_enabled": { "type": "boolean", "description": "Filter by enabled status" }, "domain": { "type": "string", "description": "Filter by domain name (case-insensitive substring match)" }, "website_types": { "type": "array", "description": "Filter by detected website type, e.g. wordpress,nodejs. Accepts a comma-separated list.", "items": { "type": "string", "description": "website_types parameter", "enum": [ "wordpress", "builder", "horizons", "nodejs", "other" ] } } }, "required": [] }, "security": [ { "apiToken": [] } ], "group": "hosting" }, { "name": "hosting_createWebsiteV1", "description": "Create a new website for the authenticated client.\n\nProvide the domain name and associated order ID to create a new website.\nThe datacenter_code parameter is required when creating the first website\non a new hosting plan - this will set up and configure new hosting account\nin the selected datacenter.\n\nSubsequent websites will be hosted on the same datacenter automatically.\n\nWebsite creation takes up to a few minutes to complete. Check the\nwebsites list endpoint to see when your new website becomes available.", "method": "POST", "path": "/api/hosting/v1/websites", "inputSchema": { "type": "object", "properties": { "domain": { "type": "string", "description": "Domain name for the website. Cannot start with \"www.\"" }, "order_id": { "type": "integer", "description": "ID of the associated order" }, "datacenter_code": { "type": "string", "description": "Datacenter code. This parameter is required when creating the first website on a new hosting plan." } }, "required": [ "domain", "order_id" ] }, "security": [ { "apiToken": [] } ], "group": "hosting" }, { "name": "hosting_deployStaticSiteArchiveV1", "description": "Deploy a static application from an archive file.\n\nWARNING: this overwrites the website's existing contents and cannot be undone —\nverify this is intended before calling this endpoint.\n\nThis endpoint allows you to deploy a static application from an archive\nfile that has been uploaded to the website's directory.\n\nThis only works for static sites (pre-built HTML/CSS/JS with no build step). For\nNode.js applications, use `Create NodeJS build from archive` instead, or\n`Start Node.js build` if the archive is already uploaded. For WordPress sites,\nuse `Import WordPress website`.", "method": "POST", "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/deploy", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "domain": { "type": "string", "description": "Domain name" }, "archive_path": { "type": "string", "description": "Relative path to the archive file from website root directory" } }, "required": [ "username", "domain", "archive_path" ] }, "security": [ { "apiToken": [] } ], "group": "hosting" }, { "name": "hosting_deleteWebsiteV1", "description": "This endpoint permanently removes a website and all of its data. This action\ncannot be undone. Before calling it, make sure the user understands the\nconsequences and explicitly confirms that they want to proceed.\n\nAll website files, databases and related configuration will be removed.\nThe hosting plan itself is kept, so a new website can be created on it afterwards.\n\nSupported websites: main and addon domain websites on web hosting plans, and\nWebsite Builder websites. Parked domains and subdomains cannot be deleted with\nthis endpoint. The domain must be the exact website domain, not a preview\ndomain or an alias.\n\nReturns 404 when the domain does not exist or does not belong to the\nauthenticated client.\n\nWebsite removal is processed asynchronously and can take a few minutes to\ncomplete. The response returns before the removal finishes.", "method": "DELETE", "path": "/api/hosting/v1/websites/{domain}", "inputSchema": { "type": "object", "properties": { "domain": { "type": "string", "description": "Domain name" } }, "required": [ "domain" ] }, "security": [ { "apiToken": [] } ], "group": "hosting" } ]; export default tools;