// Auto-generated tool list for group: all 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": "agency-hosting_deployNodeStaticWebsite", "topic": "agency-hosting", "description": "Deploy a node-static Agency Plan (h5g) website from an archive file. WARNING: this overwrites the website's existing contents and cannot be undone — always confirm with the user before proceeding. Use this for Agency Plan websites of type node-static (a Node.js-built static site that requires a build step or a plain simple static site). The tool resolves the website from its domain, uploads the archive to the website's file browser over TUS, and triggers the build-assets process which builds the site and deploys the result to public_html. This operation is synchronous: the build and deployment complete before the tool returns, so the website is live as soon as the tool finishes successfully — there is no separate asynchronous build to wait for or poll. 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. For plain PHP applications that should be extracted as-is, use agencyHosting_deployPhpApplication instead. The website UID is automatically resolved from the domain.", "method": "", "path": "", "inputSchema": { "type": "object", "properties": { "domain": { "type": "string", "description": "Domain name of the Agency Plan website (e.g., example.com)" }, "archivePath": { "type": "string", "description": "Absolute or relative path to the website archive file. Supported formats: zip, tar, tar.gz, tgz. The archive must contain the application source files. If user provides a directory path, create an archive from it before proceeding using EXACTLY this naming pattern: directoryname_YYYYMMDD_HHMMSS.zip (e.g., mywebsite_20250115_143022.zip)" }, "removeArchive": { "type": "boolean", "description": "Whether to remove the local archive file after successful deployment (default: true)" } }, "required": [ "domain", "archivePath" ] }, "security": [], "custom": true, "templateFile": "deploy-node-static.template.js", "templateFileTS": "deploy-node-static.template.ts", "handlerMethod": "handleNodeStaticDeploy", "group": "agency-hosting" }, { "name": "agency-hosting_deployPhpApplication", "topic": "agency-hosting", "description": "Deploy a PHP (or other non-build) Agency Plan (h5g) website from an archive file. WARNING: this overwrites the website's existing contents and cannot be undone — always confirm with the user before proceeding. Use this for Agency Plan websites where the archive contents should be extracted and served as-is with no build step (e.g., PHP applications). The tool resolves the website from its domain, uploads the archive to the website's file browser over TUS, and triggers the import-archive process which overwrites the website contents with the archive contents. This operation is synchronous: the archive is extracted and deployed before the tool returns, so the website is live as soon as the tool finishes successfully — there is no separate asynchronous build to wait for or poll. 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. For node-static websites that require a build step, use agencyHosting_deployNodeStaticWebsite instead. The website UID is automatically resolved from the domain.", "method": "", "path": "", "inputSchema": { "type": "object", "properties": { "domain": { "type": "string", "description": "Domain name of the Agency Plan website (e.g., example.com)" }, "archivePath": { "type": "string", "description": "Absolute or relative path to the website archive file. Supported formats: zip, tar, tar.gz, tgz. If user provides a directory path, create an archive from it before proceeding using EXACTLY this naming pattern: directoryname_YYYYMMDD_HHMMSS.zip (e.g., mywebsite_20250115_143022.zip)" }, "removeArchive": { "type": "boolean", "description": "Whether to remove the local archive file after successful deployment (default: true)" } }, "required": [ "domain", "archivePath" ] }, "security": [], "custom": true, "templateFile": "deploy-php-app.template.js", "templateFileTS": "deploy-php-app.template.ts", "handlerMethod": "handlePhpAppDeploy", "group": "agency-hosting" }, { "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": "agency-hosting_listAvailableDatacentersV1", "description": "Lists the datacenters available for provisioning a new website on the given Agency Plan\nhosting order.\n\nEach datacenter includes a `pinger_url` you can ping from the client to measure round-trip\nlatency; comparing the results across datacenters lets you pick the nearest one (lowest\nping) before choosing its `code` as the `datacenter_code` when creating a website setup.", "method": "GET", "path": "/api/agency-hosting/v1/orders/{order_id}/datacenters", "inputSchema": { "type": "object", "properties": { "order_id": { "type": "integer", "description": "Agency Plan order ID" } }, "required": [ "order_id" ] }, "security": [ { "apiToken": [] } ], "group": "agency-hosting" }, { "name": "agency-hosting_changeWebsiteDomainV1", "description": "Changes the primary domain for an Agency Plan website.\n\nProvide the current domain in the path and the new domain in the request body.\nSet domain to null to revert to the temporary domain.", "method": "PUT", "path": "/api/agency-hosting/v1/websites/{website_uid}/domains/{from_domain}", "inputSchema": { "type": "object", "properties": { "website_uid": { "type": "string", "description": "Agency Plan website UID" }, "from_domain": { "type": "string", "description": "Current domain name to change from" }, "domain": { "type": "string", "description": "New domain to assign to the website. Set to null to revert to the temporary domain." } }, "required": [ "website_uid", "from_domain", "domain" ] }, "security": [ { "apiToken": [] } ], "group": "agency-hosting" }, { "name": "agency-hosting_linkDomainToWebsiteV1", "description": "Links a domain to the specified Agency Plan website so it can serve traffic for that domain.", "method": "POST", "path": "/api/agency-hosting/v1/websites/{website_uid}/domains", "inputSchema": { "type": "object", "properties": { "website_uid": { "type": "string", "description": "Agency Plan website UID" }, "domain": { "type": "string", "description": "Fully qualified domain name to link to the website" } }, "required": [ "website_uid", "domain" ] }, "security": [ { "apiToken": [] } ], "group": "agency-hosting" }, { "name": "agency-hosting_listDomainsV1", "description": "Returns a paginated list of domains associated with Agency Plan websites accessible to the authenticated client.\n\nUse the website_uuids filter to narrow results to specific websites.", "method": "GET", "path": "/api/agency-hosting/v1/domains", "inputSchema": { "type": "object", "properties": { "page": { "type": "integer", "description": "Page number" }, "per_page": { "type": "integer", "description": "Number of items per page" }, "website_uuids": { "type": "array", "description": "Filter by website UIDs", "items": { "type": "string", "description": "website_uuids parameter" } } }, "required": [] }, "security": [ { "apiToken": [] } ], "group": "agency-hosting" }, { "name": "agency-hosting_unlinkDomainFromWebsiteV1", "description": "Unlinks a domain from the specified Agency Plan website.\n\nThe website stops serving traffic on this domain immediately.\n\nWebsite files and database are preserved, and any other linked domains remain accessible.\n\nIf this is the only domain on the website, unlinking leaves the website without an accessible domain.", "method": "DELETE", "path": "/api/agency-hosting/v1/websites/{website_uid}/domains/{domain}", "inputSchema": { "type": "object", "properties": { "website_uid": { "type": "string", "description": "Agency Plan website UID" }, "domain": { "type": "string", "description": "Domain name" } }, "required": [ "website_uid", "domain" ] }, "security": [ { "apiToken": [] } ], "group": "agency-hosting" }, { "name": "agency-hosting_generateUploadURLV1", "description": "Generate a file browser upload URL with authentication credentials for uploading files\nto an Agency Plan website's file storage.\n\nReturns `url`, `auth_key` and `rest_auth_key`. Use these to upload a file to the\nwebsite's file storage via the TUS resumable upload protocol (TUS 1.0.0). Send\n`X-Auth: {auth_key}` and `X-Auth-Rest: {rest_auth_key}` headers on every request below.\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 the website's file storage, e.g.\n`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/agency-hosting/v1/websites/{website_uid}/files/upload-urls", "inputSchema": { "type": "object", "properties": { "website_uid": { "type": "string", "description": "Agency Plan website UID" } }, "required": [ "website_uid" ] }, "security": [ { "apiToken": [] } ], "group": "agency-hosting" }, { "name": "agency-hosting_importWebsiteFromArchiveV1", "description": "Imports an Agency Plan website from an already-uploaded archive.\n\nUpload the archive to the website's root directory via file browser first, then provide its\nfilename in this request. Website contents are overwritten by the archive contents. Supported\narchive types: .zip, .tar, .tar.gz, .tgz.", "method": "POST", "path": "/api/agency-hosting/v1/websites/{website_uid}/files/import-archive", "inputSchema": { "type": "object", "properties": { "website_uid": { "type": "string", "description": "Agency Plan website UID" }, "archive_name": { "type": "string", "description": "Archive filename (e.g., archive.zip). The file must already be uploaded to the website's .h5g/ directory." } }, "required": [ "website_uid", "archive_name" ] }, "security": [ { "apiToken": [] } ], "group": "agency-hosting" }, { "name": "agency-hosting_listAgencyPlanOrderDiskUsageMetricsV1", "description": "Returns aggregated disk and inode usage for the Agency Plan order over the\nselected time frame, plus the plan quotas. Figures cover the whole order\naccount. Values may be up to one hour stale. CPU, memory, and process usage\nare on the resource-usage-metrics endpoint.", "method": "GET", "path": "/api/agency-hosting/v1/orders/{order_id}/disk-usage-metrics", "inputSchema": { "type": "object", "properties": { "order_id": { "type": "integer", "description": "Agency Plan order ID" }, "time_frame_days": { "type": "integer", "description": "Length of the window in days, ending now. Bucket size grows with the window.", "enum": [ 1, 7, 14, 30 ] } }, "required": [ "order_id" ] }, "security": [ { "apiToken": [] } ], "group": "agency-hosting" }, { "name": "agency-hosting_listOrdersV1", "description": "Returns a paginated list of Agency Plan orders accessible to the authenticated client.", "method": "GET", "path": "/api/agency-hosting/v1/orders", "inputSchema": { "type": "object", "properties": { "page": { "type": "integer", "description": "Page number" }, "per_page": { "type": "integer", "description": "Number of items per page" } }, "required": [] }, "security": [ { "apiToken": [] } ], "group": "agency-hosting" }, { "name": "agency-hosting_listOrderResourceUsageMetricsV1", "description": "Returns aggregated CPU, memory, and process usage for the Agency Plan order\nover the selected time frame, plus the plan quotas and a per-website\nbreakdown. Each website is identified by uid. Suspended and deleted websites\nare excluded from both the order totals and the per-website breakdown.\nValues may be up to one hour stale. Disk and inode usage are on the\ndisk-usage-metrics endpoint.", "method": "GET", "path": "/api/agency-hosting/v1/orders/{order_id}/resource-usage-metrics", "inputSchema": { "type": "object", "properties": { "order_id": { "type": "integer", "description": "Agency Plan order ID" }, "time_frame_hours": { "type": "integer", "description": "Length of the window in hours, ending now. Bucket size grows with the window.", "enum": [ 1, 24, 168, 336, 720 ] } }, "required": [ "order_id" ] }, "security": [ { "apiToken": [] } ], "group": "agency-hosting" }, { "name": "agency-hosting_listPHPExtensionsForAWebsiteV1", "description": "Lists every PHP extension available to an Agency Plan website and whether it is currently enabled.", "method": "GET", "path": "/api/agency-hosting/v1/websites/{website_uid}/php-settings/extensions", "inputSchema": { "type": "object", "properties": { "website_uid": { "type": "string", "description": "Agency Plan website UID" } }, "required": [ "website_uid" ] }, "security": [ { "apiToken": [] } ], "group": "agency-hosting" }, { "name": "agency-hosting_replaceWebsitePHPExtensionsV1", "description": "Replaces the set of PHP extensions enabled on an Agency Plan website with the ones provided. Any toggleable extension not in the request is disabled, so call the extensions endpoint first and send the full desired set. Extensions compiled into PHP, reported with the \"built-in\" state, are always active and are unaffected.", "method": "PUT", "path": "/api/agency-hosting/v1/websites/{website_uid}/php-settings/extensions", "inputSchema": { "type": "object", "properties": { "website_uid": { "type": "string", "description": "Agency Plan website UID" }, "extensions": { "type": "array", "description": "Extension names, exactly as returned by the extensions endpoint.", "items": { "type": "string", "description": "extensions parameter" } } }, "required": [ "website_uid", "extensions" ] }, "security": [ { "apiToken": [] } ], "group": "agency-hosting" }, { "name": "agency-hosting_listPHPOptionsForAWebsiteV1", "description": "Lists the php.ini directives that can be configured for an Agency Plan website, each with its default, the value currently in effect, and the values it accepts.", "method": "GET", "path": "/api/agency-hosting/v1/websites/{website_uid}/php-settings/options", "inputSchema": { "type": "object", "properties": { "website_uid": { "type": "string", "description": "Agency Plan website UID" } }, "required": [ "website_uid" ] }, "security": [ { "apiToken": [] } ], "group": "agency-hosting" }, { "name": "agency-hosting_replaceWebsitePHPOptionsV1", "description": "Replaces the custom php.ini values on an Agency Plan website with the ones provided. Any option not in the request is reset to its default, so call the options endpoint first and send the full desired set. Sending an empty array resets every option to its default.", "method": "PUT", "path": "/api/agency-hosting/v1/websites/{website_uid}/php-settings/options", "inputSchema": { "type": "object", "properties": { "website_uid": { "type": "string", "description": "Agency Plan website UID" }, "options": { "type": "array", "description": "Option names and values. Each name must be one of the options returned by the options endpoint, and each value must satisfy that option's allowed_values when it declares them.", "items": { "type": "object", "description": "options parameter", "properties": { "name": { "type": "string", "description": "php.ini directive name." }, "value": { "type": "string", "description": "Value to apply." } }, "required": [ "name", "value" ] } } }, "required": [ "website_uid", "options" ] }, "security": [ { "apiToken": [] } ], "group": "agency-hosting" }, { "name": "agency-hosting_listAvailablePHPVersionsForAnOrderV1", "description": "Lists the PHP versions available to websites created under an Agency Plan order, determined by the server the order is hosted on. Use this before creating a website; for a website that already exists, call the website-scoped versions endpoint instead.", "method": "GET", "path": "/api/agency-hosting/v1/orders/{order_id}/websites/php-settings/versions", "inputSchema": { "type": "object", "properties": { "order_id": { "type": "integer", "description": "Agency Plan order ID" } }, "required": [ "order_id" ] }, "security": [ { "apiToken": [] } ], "group": "agency-hosting" }, { "name": "agency-hosting_listAvailablePHPVersionsForAWebsiteV1", "description": "Lists the PHP versions an Agency Plan website can be switched to. The version the website is currently running is returned as settings.php.version by the website details endpoint.", "method": "GET", "path": "/api/agency-hosting/v1/websites/{website_uid}/php-settings/versions", "inputSchema": { "type": "object", "properties": { "website_uid": { "type": "string", "description": "Agency Plan website UID" } }, "required": [ "website_uid" ] }, "security": [ { "apiToken": [] } ], "group": "agency-hosting" }, { "name": "agency-hosting_updateWebsitePHPVersionV1", "description": "Switches an Agency Plan website to a different PHP version. Call the available versions endpoint first to see which versions can be selected. The website restarts on the new version, so requests served during the switch may fail and code that is incompatible with the target version will break.", "method": "PATCH", "path": "/api/agency-hosting/v1/websites/{website_uid}/php-settings/version", "inputSchema": { "type": "object", "properties": { "website_uid": { "type": "string", "description": "Agency Plan website UID" }, "version": { "type": "string", "description": "PHP version to switch the website to, as major.minor. Must be one of the versions returned by the available versions endpoint." } }, "required": [ "website_uid", "version" ] }, "security": [ { "apiToken": [] } ], "group": "agency-hosting" }, { "name": "agency-hosting_createANewWebsiteV1", "description": "Provisions a new website on one of your Agency Plan hosting orders.\n\nChoose the datacenter, stack (`flavor`), and PHP version for the site. Optionally attach\nyour own `domain` — omit it, set it to `null`, or leave it unavailable and a free\n`*.hostingersite.com` subdomain is generated instead — and/or install WordPress by\nsupplying the `wordpress` details (admin account, site title, and language).\n\nCommon setups:\n- **Plain PHP site**: `flavor` set to `php-fpm`, with `settings.php.version`; omit\n `wordpress` and `type`.\n- **WordPress site**: `flavor` set to the desired WordPress version (e.g. `wp-7.0`), plus\n the `wordpress` block (admin account, title, language).\n- **Static/Node.js frontend app**: `flavor` set to `php-fpm` and `type` set to\n `node-static`.\n\nProvisioning runs in the background, so the response returns immediately with a setup UUID\nthat identifies the job. The new website becomes reachable once provisioning finishes.", "method": "POST", "path": "/api/agency-hosting/v1/orders/{order_id}/websites/setups", "inputSchema": { "type": "object", "properties": { "order_id": { "type": "integer", "description": "Agency Plan order ID" }, "datacenter_code": { "type": "string", "description": "Datacenter code where the website should be provisioned. Available codes depend on live capacity and are not a fixed set." }, "flavor": { "type": "string", "description": "Setup flavor: a specific WordPress version in the format `wp-.` or `wp-..` (e.g. `wp-6.8.2`), or `php-fpm` for a plain PHP stack. Generic versions like `wp-latest` are not allowed." }, "settings": { "type": "object", "description": "Website settings", "properties": { "php": { "type": "object", "description": "php parameter", "properties": { "version": { "type": "string", "description": "PHP version" } }, "required": [ "version" ] } }, "required": [ "php" ] }, "domain": { "type": "string", "description": "Primary domain to attach to the website. Omit or set to null to get a free auto-generated *.hostingersite.com subdomain instead." }, "type": { "type": "string", "description": "Website type", "enum": [ "horizons", "node-static" ] }, "wordpress": { "type": "object", "description": "WordPress installation options", "properties": { "language": { "type": "string", "description": "language parameter" }, "title": { "type": "string", "description": "title parameter" }, "admin": { "type": "object", "description": "admin parameter", "properties": { "user": { "type": "string", "description": "user parameter" }, "password": { "type": "string", "description": "password parameter" }, "email": { "type": "string", "description": "email parameter" } }, "required": [ "user", "password", "email" ] } }, "required": [ "language", "title", "admin" ] }, "clone": { "type": "object", "description": "Clone the new website from an existing website", "properties": { "website_uid": { "type": "string", "description": "website_uid parameter" } }, "required": [ "website_uid" ] }, "derive_domain": { "type": "object", "description": "Derive the domain from an existing vhost", "properties": { "from_vhost": { "type": "object", "description": "from_vhost parameter", "properties": { "username": { "type": "string", "description": "username parameter" }, "vhost": { "type": "string", "description": "vhost parameter" } }, "required": [ "username", "vhost" ] } }, "required": [ "from_vhost" ] } }, "required": [ "order_id", "datacenter_code", "flavor", "settings" ] }, "security": [ { "apiToken": [] } ], "group": "agency-hosting" }, { "name": "agency-hosting_getWebsiteSetupStatusV1", "description": "Returns the current status of an Agency Plan website setup started via the setups\nendpoint.\n\nPoll this endpoint using the `setup_uuid` returned from the provisioning request until\n`status` becomes `completed`, at which point `website_uid` identifies the new website.", "method": "GET", "path": "/api/agency-hosting/v1/orders/{order_id}/websites/setups/{setup_uuid}", "inputSchema": { "type": "object", "properties": { "order_id": { "type": "integer", "description": "Agency Plan order ID" }, "setup_uuid": { "type": "string", "description": "Website setup UUID" } }, "required": [ "order_id", "setup_uuid" ] }, "security": [ { "apiToken": [] } ], "group": "agency-hosting" }, { "name": "agency-hosting_buildWebsiteNodeJSAssetsV1", "description": "Builds and deploys a Node.js application for an Agency Plan website from an already-uploaded archive.\n\nUpload the archive to file browser first, then provide its relative path from document root in this request.\nWebsite contents are overwritten by the build result, which is deployed to public_html.", "method": "POST", "path": "/api/agency-hosting/v1/websites/{website_uid}/build-assets", "inputSchema": { "type": "object", "properties": { "website_uid": { "type": "string", "description": "Agency Plan website UID" }, "archive_path": { "type": "string", "description": "Directory, relative to the website document root, where the uploaded site archive currently lives. Most commonly this is simply `public_html`." } }, "required": [ "website_uid", "archive_path" ] }, "security": [ { "apiToken": [] } ], "group": "agency-hosting" }, { "name": "agency-hosting_clearWebsiteCacheV1", "description": "Clears cache for all domains associated with an Agency Plan website, including its preview domain.\n\nThis operation clears all cache types for the website.", "method": "DELETE", "path": "/api/agency-hosting/v1/websites/{website_uid}/cache", "inputSchema": { "type": "object", "properties": { "website_uid": { "type": "string", "description": "Agency Plan website UID" } }, "required": [ "website_uid" ] }, "security": [ { "apiToken": [] } ], "group": "agency-hosting" }, { "name": "agency-hosting_listWebsiteCronJobsV1", "description": "Returns a paginated list of cron jobs configured for an Agency Plan website.\n\nEach entry includes the schedule expression and the command executed on that schedule.", "method": "GET", "path": "/api/agency-hosting/v1/websites/{website_uid}/cron-jobs", "inputSchema": { "type": "object", "properties": { "website_uid": { "type": "string", "description": "Agency Plan website UID" }, "page": { "type": "integer", "description": "Page number" }, "per_page": { "type": "integer", "description": "Number of items per page" } }, "required": [ "website_uid" ] }, "security": [ { "apiToken": [] } ], "group": "agency-hosting" }, { "name": "agency-hosting_createWebsiteCronJobV1", "description": "Creates a cron job for an Agency Plan website from a schedule expression and a command.\n\nReturns the created cron job, including its uuid, which is required to delete the cron job.", "method": "POST", "path": "/api/agency-hosting/v1/websites/{website_uid}/cron-jobs", "inputSchema": { "type": "object", "properties": { "website_uid": { "type": "string", "description": "Agency Plan website UID" }, "time": { "type": "string", "description": "Cron schedule expression (standard 5-field crontab syntax)." }, "command": { "type": "string", "description": "Command to run on the schedule. Must not contain pipe (|) or redirection (<, >) characters." } }, "required": [ "website_uid", "time", "command" ] }, "security": [ { "apiToken": [] } ], "group": "agency-hosting" }, { "name": "agency-hosting_deleteWebsiteCronJobV1", "description": "Permanently deletes the cron job identified by its uuid from an Agency Plan website.\n\nThe operation is idempotent: deleting a cron job that does not exist succeeds without error.", "method": "DELETE", "path": "/api/agency-hosting/v1/websites/{website_uid}/cron-jobs/{uuid}", "inputSchema": { "type": "object", "properties": { "website_uid": { "type": "string", "description": "Agency Plan website UID" }, "uuid": { "type": "string", "description": "Unique identifier of the cron job as returned by the list cron jobs endpoint." } }, "required": [ "website_uid", "uuid" ] }, "security": [ { "apiToken": [] } ], "group": "agency-hosting" }, { "name": "agency-hosting_listWebsiteDatabasesV1", "description": "Returns a paginated list of MySQL databases created for an Agency Plan website.\n\nEach entry includes the database's non-system users.", "method": "GET", "path": "/api/agency-hosting/v1/websites/{website_uid}/databases", "inputSchema": { "type": "object", "properties": { "website_uid": { "type": "string", "description": "Agency Plan website UID" }, "page": { "type": "integer", "description": "Page number" }, "per_page": { "type": "integer", "description": "Number of items per page" } }, "required": [ "website_uid" ] }, "security": [ { "apiToken": [] } ], "group": "agency-hosting" }, { "name": "agency-hosting_createWebsiteDatabaseV1", "description": "Creates a MySQL database with a dedicated user for an Agency Plan website.\n\nThe database name, username, and password must all be provided by the caller.", "method": "POST", "path": "/api/agency-hosting/v1/websites/{website_uid}/databases", "inputSchema": { "type": "object", "properties": { "website_uid": { "type": "string", "description": "Agency Plan website UID" }, "database_name": { "type": "string", "description": "Database name to create (alphanumeric characters)." }, "database_user": { "type": "string", "description": "Database username to create alongside the database (alphanumeric characters)." }, "password": { "type": "string", "description": "Password for the database user (requires mixed case, letters, and numbers)." } }, "required": [ "website_uid", "database_name", "database_user", "password" ] }, "security": [ { "apiToken": [] } ], "group": "agency-hosting" }, { "name": "agency-hosting_deleteWebsiteDatabaseV1", "description": "Permanently deletes a MySQL database and all its data from an Agency Plan website, including its users.\n\nThe operation is idempotent: deleting a database that does not exist succeeds without error.", "method": "DELETE", "path": "/api/agency-hosting/v1/websites/{website_uid}/databases/{database_name}", "inputSchema": { "type": "object", "properties": { "website_uid": { "type": "string", "description": "Agency Plan website UID" }, "database_name": { "type": "string", "description": "Full database name as returned by the list databases endpoint." } }, "required": [ "website_uid", "database_name" ] }, "security": [ { "apiToken": [] } ], "group": "agency-hosting" }, { "name": "agency-hosting_createWebsiteDatabaseUserV1", "description": "Creates a user for an existing database on an Agency Plan website.\n\nEach database supports a single non-system user; creating a user for a database that already has one fails.", "method": "POST", "path": "/api/agency-hosting/v1/websites/{website_uid}/databases/{database_name}/users", "inputSchema": { "type": "object", "properties": { "website_uid": { "type": "string", "description": "Agency Plan website UID" }, "database_name": { "type": "string", "description": "Full database name as returned by the list databases endpoint." }, "database_user": { "type": "string", "description": "Database username to create (alphanumeric and underscores)." }, "password": { "type": "string", "description": "Password for the database user (requires mixed case, letters, and numbers)." }, "host": { "type": "string", "description": "Host the user connects from (IPv4, IPv6, % wildcard, or localhost). Defaults to localhost." } }, "required": [ "website_uid", "database_name", "database_user", "password" ] }, "security": [ { "apiToken": [] } ], "group": "agency-hosting" }, { "name": "agency-hosting_deleteWebsiteDatabaseUserV1", "description": "Permanently deletes a database user from an Agency Plan website database, revoking all access it had.\n\nThe operation is idempotent: deleting a user that does not exist succeeds without error.", "method": "DELETE", "path": "/api/agency-hosting/v1/websites/{website_uid}/databases/{database_name}/users/{database_user_name}", "inputSchema": { "type": "object", "properties": { "website_uid": { "type": "string", "description": "Agency Plan website UID" }, "database_name": { "type": "string", "description": "Full database name as returned by the list databases endpoint." }, "database_user_name": { "type": "string", "description": "Database username as returned by the list databases endpoint." } }, "required": [ "website_uid", "database_name", "database_user_name" ] }, "security": [ { "apiToken": [] } ], "group": "agency-hosting" }, { "name": "agency-hosting_getWebsiteDetailsV1", "description": "Retrieves detailed information about a specific Agency Plan website, including configuration,\nstatus, metadata, hosting plan details, and resource quotas.", "method": "GET", "path": "/api/agency-hosting/v1/websites/{website_uid}", "inputSchema": { "type": "object", "properties": { "website_uid": { "type": "string", "description": "Agency Plan website UID" } }, "required": [ "website_uid" ] }, "security": [ { "apiToken": [] } ], "group": "agency-hosting" }, { "name": "agency-hosting_deleteWebsiteV1", "description": "Permanently deletes an Agency Plan website. Deletion is processed asynchronously: the\nwebsite is immediately transitioned to a deleting state and the underlying server\nresources are removed in the background.", "method": "DELETE", "path": "/api/agency-hosting/v1/websites/{website_uid}", "inputSchema": { "type": "object", "properties": { "website_uid": { "type": "string", "description": "Agency Plan website UID" } }, "required": [ "website_uid" ] }, "security": [ { "apiToken": [] } ], "group": "agency-hosting" }, { "name": "agency-hosting_listAgencyPlanWebsitesV1", "description": "Retrieve a paginated list of Agency Plan websites (H5G, Builder, and Horizons) accessible to\nthe authenticated 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\nThe response shape differs per platform — see the `platform` field on each item.\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 `order_ids`, `states`, or `domain` for more\ntargeted results.", "method": "GET", "path": "/api/agency-hosting/v1/websites", "inputSchema": { "type": "object", "properties": { "page": { "type": "integer", "description": "Page number" }, "per_page": { "type": "integer", "description": "Number of items per page" }, "order_ids": { "type": "array", "description": "Filter by order IDs. Accepts a comma-separated list.", "items": { "type": "integer", "description": "order_ids parameter" } }, "states": { "type": "array", "description": "Filter by website state. Accepts a comma-separated list.", "items": { "type": "string", "description": "states parameter", "enum": [ "active", "locked", "suspended", "deleting", "deleted" ] } }, "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" ] } }, "domain": { "type": "string", "description": "Filter by domain name (case-insensitive substring match)" } }, "required": [] }, "security": [ { "apiToken": [] } ], "group": "agency-hosting" }, { "name": "agency-hosting_listWebsiteProcessesV1", "description": "Lists active and recently completed asynchronous processes for an Agency Plan website.\n\nEach process has a unique ID (for tracking), a type, and a status (running, completed, failed).\nPoll this endpoint after initiating async operations (SSL setup, backups, cloning) to track progress.", "method": "GET", "path": "/api/agency-hosting/v1/websites/{website_uid}/processes", "inputSchema": { "type": "object", "properties": { "website_uid": { "type": "string", "description": "Agency Plan website UID" } }, "required": [ "website_uid" ] }, "security": [ { "apiToken": [] } ], "group": "agency-hosting" }, { "name": "agency-hosting_changeWordPressVersionV1", "description": "Changes the installed WordPress core version on an Agency Plan website to one of the versions available for installation.", "method": "PATCH", "path": "/api/agency-hosting/v1/websites/{website_uid}/wordpress/settings/version", "inputSchema": { "type": "object", "properties": { "website_uid": { "type": "string", "description": "Agency Plan website UID" }, "version": { "type": "string", "description": "Target WordPress core version to install. Must be one of the available versions." } }, "required": [ "website_uid", "version" ] }, "security": [ { "apiToken": [] } ], "group": "agency-hosting" }, { "name": "agency-hosting_getWordPressSettingsV1", "description": "Returns the current WordPress settings for an Agency Plan website: installed core version,\nLiteSpeed Cache plugin status, object cache status, and maintenance mode status.", "method": "GET", "path": "/api/agency-hosting/v1/websites/{website_uid}/wordpress/settings", "inputSchema": { "type": "object", "properties": { "website_uid": { "type": "string", "description": "Agency Plan website UID" } }, "required": [ "website_uid" ] }, "security": [ { "apiToken": [] } ], "group": "agency-hosting" }, { "name": "agency-hosting_listAvailableWordPressVersionsV1", "description": "Lists the WordPress core versions available for installation on an Agency Plan website.", "method": "GET", "path": "/api/agency-hosting/v1/websites/{website_uid}/wordpress/settings/versions", "inputSchema": { "type": "object", "properties": { "website_uid": { "type": "string", "description": "Agency Plan website UID" } }, "required": [ "website_uid" ] }, "security": [ { "apiToken": [] } ], "group": "agency-hosting" }, { "name": "billing_getCatalogItemListV1", "description": "Retrieve catalog items available for order.\n\nPrices in catalog items is displayed as cents (without floating point),\ne.g: float `17.99` is displayed as integer `1799`.\n\nUse this endpoint to view available services and pricing before placing orders.", "method": "GET", "path": "/api/billing/v1/catalog", "inputSchema": { "type": "object", "properties": { "category": { "type": "string", "description": "Filter catalog items by category", "enum": [ "DOMAIN", "VPS", "EMAIL" ] }, "name": { "type": "string", "description": "Filter catalog items by name. Use `*` for wildcard search, e.g. `.COM*` to find .com domain" } }, "required": [] }, "security": [ { "apiToken": [] } ], "group": "billing" }, { "name": "billing_createPurchaseOrderV1", "description": "Create a purchase order for any Hostinger product.\n\nThis unified endpoint places an order for one or more catalog items and\nworks across all Hostinger products, leveraging the existing billing\ninfrastructure. Use the [catalog endpoint](#tag/billing-catalog) to look\nup the `item_id` values available for purchase.\n\nIf no payment method is provided, your default payment method will be used automatically.\n\nThis endpoint only places the order. Product-specific provisioning\n(e.g. VPS setup or domain registration) is not performed here — once the\norder completes, use the relevant product endpoints or\n[hPanel](https://hpanel.hostinger.com/) to finalize setup.\n\nUse this endpoint to purchase any product available in the catalog.", "method": "POST", "path": "/api/billing/v1/orders", "inputSchema": { "type": "object", "properties": { "payment_method_id": { "type": "integer", "description": "Payment method ID, default will be used if not provided" }, "items": { "type": "array", "description": "Catalog price items to purchase", "items": { "type": "object", "description": "items parameter", "properties": { "item_id": { "type": "string", "description": "Catalog price item ID" }, "quantity": { "type": "integer", "description": "Quantity to purchase" } }, "required": [ "item_id" ] } }, "coupons": { "type": "array", "description": "Discount coupon codes", "items": { "type": "string", "description": "coupons parameter" } } }, "required": [ "items" ] }, "security": [ { "apiToken": [] } ], "group": "billing" }, { "name": "billing_setDefaultPaymentMethodV1", "description": "Set the default payment method for your account.\n\nUse this endpoint to configure the primary payment method for future orders.", "method": "POST", "path": "/api/billing/v1/payment-methods/{paymentMethodId}", "inputSchema": { "type": "object", "properties": { "paymentMethodId": { "type": "integer", "description": "Payment method ID" } }, "required": [ "paymentMethodId" ] }, "security": [ { "apiToken": [] } ], "group": "billing" }, { "name": "billing_deletePaymentMethodV1", "description": "Delete a payment method from your account.\n\nUse this endpoint to remove unused payment methods from user accounts.", "method": "DELETE", "path": "/api/billing/v1/payment-methods/{paymentMethodId}", "inputSchema": { "type": "object", "properties": { "paymentMethodId": { "type": "integer", "description": "Payment method ID" } }, "required": [ "paymentMethodId" ] }, "security": [ { "apiToken": [] } ], "group": "billing" }, { "name": "billing_getPaymentMethodListV1", "description": "Retrieve available payment methods that can be used for placing new orders.\n\nIf you want to add new payment method,\nplease use [hPanel](https://hpanel.hostinger.com/billing/payment-methods).\n\nUse this endpoint to view available payment options before creating orders.", "method": "GET", "path": "/api/billing/v1/payment-methods", "inputSchema": { "type": "object", "properties": {}, "required": [] }, "security": [ { "apiToken": [] } ], "group": "billing" }, { "name": "billing_getSubscriptionListV1", "description": "Retrieve a list of all subscriptions associated with your account.\n\nUse this endpoint to monitor active services and billing status.", "method": "GET", "path": "/api/billing/v1/subscriptions", "inputSchema": { "type": "object", "properties": {}, "required": [] }, "security": [ { "apiToken": [] } ], "group": "billing" }, { "name": "billing_disableAutoRenewalV1", "description": "Disable auto-renewal for a subscription.\n\nUse this endpoint when disable auto-renewal for a subscription.", "method": "DELETE", "path": "/api/billing/v1/subscriptions/{subscriptionId}/auto-renewal/disable", "inputSchema": { "type": "object", "properties": { "subscriptionId": { "type": "string", "description": "Subscription ID" } }, "required": [ "subscriptionId" ] }, "security": [ { "apiToken": [] } ], "group": "billing" }, { "name": "billing_enableAutoRenewalV1", "description": "Enable auto-renewal for a subscription.\n\nUse this endpoint when enable auto-renewal for a subscription.", "method": "PATCH", "path": "/api/billing/v1/subscriptions/{subscriptionId}/auto-renewal/enable", "inputSchema": { "type": "object", "properties": { "subscriptionId": { "type": "string", "description": "Subscription ID" } }, "required": [ "subscriptionId" ] }, "security": [ { "apiToken": [] } ], "group": "billing" }, { "name": "billing_renewSubscriptionV1", "description": "Create a renewal order for an existing Hostinger subscription.\n\nThis endpoint places a renewal order for a single subscription, leveraging\nthe existing billing infrastructure. Use the\n[subscriptions endpoint](#tag/billing-subscriptions) to look up the\n`subscriptionId` values available for renewal.\n\nIf no payment method is provided, your default payment method will be used automatically.\n\nUse this endpoint to renew any subscription available in your account.", "method": "POST", "path": "/api/billing/v1/subscriptions/{subscriptionId}/renew", "inputSchema": { "type": "object", "properties": { "subscriptionId": { "type": "string", "description": "Subscription ID" }, "payment_method_id": { "type": "integer", "description": "Payment method ID, default will be used if not provided" }, "coupons": { "type": "array", "description": "Discount coupon codes", "items": { "type": "string", "description": "coupons parameter" } } }, "required": [ "subscriptionId" ] }, "security": [ { "apiToken": [] } ], "group": "billing" }, { "name": "DNS_getDNSSnapshotV1", "description": "Retrieve particular DNS snapshot with contents of DNS zone records.\n\nUse this endpoint to view historical DNS configurations for domains.", "method": "GET", "path": "/api/dns/v1/snapshots/{domain}/{snapshotId}", "inputSchema": { "type": "object", "properties": { "domain": { "type": "string", "description": "Domain name" }, "snapshotId": { "type": "integer", "description": "Snapshot ID" } }, "required": [ "domain", "snapshotId" ] }, "security": [ { "apiToken": [] } ], "group": "dns" }, { "name": "DNS_getDNSSnapshotListV1", "description": "Retrieve DNS snapshots for a domain.\n\nUse this endpoint to view available DNS backup points for restoration.", "method": "GET", "path": "/api/dns/v1/snapshots/{domain}", "inputSchema": { "type": "object", "properties": { "domain": { "type": "string", "description": "Domain name" } }, "required": [ "domain" ] }, "security": [ { "apiToken": [] } ], "group": "dns" }, { "name": "DNS_restoreDNSSnapshotV1", "description": "Restore DNS zone to the selected snapshot.\n\nUse this endpoint to revert domain DNS to a previous configuration.", "method": "POST", "path": "/api/dns/v1/snapshots/{domain}/{snapshotId}/restore", "inputSchema": { "type": "object", "properties": { "domain": { "type": "string", "description": "Domain name" }, "snapshotId": { "type": "integer", "description": "Snapshot ID" } }, "required": [ "domain", "snapshotId" ] }, "security": [ { "apiToken": [] } ], "group": "dns" }, { "name": "DNS_getDNSRecordsV1", "description": "Retrieve DNS zone records for a specific domain.\n\nUse this endpoint to view current DNS configuration for domain management.", "method": "GET", "path": "/api/dns/v1/zones/{domain}", "inputSchema": { "type": "object", "properties": { "domain": { "type": "string", "description": "Domain name" } }, "required": [ "domain" ] }, "security": [ { "apiToken": [] } ], "group": "dns" }, { "name": "DNS_updateDNSRecordsV1", "description": "Update DNS records for the selected domain.\n\nUsing `overwrite = true` will replace existing records with the provided ones. \nOtherwise existing records will be updated and new records will be added.\n\nUse this endpoint to modify domain DNS configuration.", "method": "PUT", "path": "/api/dns/v1/zones/{domain}", "inputSchema": { "type": "object", "properties": { "domain": { "type": "string", "description": "Domain name" }, "overwrite": { "type": "boolean", "description": "If `true`, resource records (RRs) matching name and type will be deleted and new RRs will be created,\notherwise resource records' ttl's are updated and new records are appended.\nIf no matching RRs are found, they are created." }, "zone": { "type": "array", "description": "zone parameter", "items": { "type": "object", "description": "zone parameter", "properties": { "name": { "type": "string", "description": "Name of the record (use `@` for wildcard name)" }, "records": { "type": "array", "description": "Records assigned to the name", "items": { "type": "object", "description": "records parameter", "properties": { "content": { "type": "string", "description": "Content of the name record" } }, "required": [ "content" ] } }, "ttl": { "type": "integer", "description": "TTL (Time-To-Live) of the record" }, "type": { "type": "string", "description": "Type of the record", "enum": [ "A", "AAAA", "CNAME", "ALIAS", "MX", "TXT", "NS", "SOA", "SRV", "CAA" ] } }, "required": [ "name", "records", "type" ] } } }, "required": [ "domain", "zone" ] }, "security": [ { "apiToken": [] } ], "group": "dns" }, { "name": "DNS_deleteDNSRecordsV1", "description": "Delete DNS records for the selected domain.\n\nTo filter which records to delete, add the `name` of the record and `type` to the filter. \nMultiple filters can be provided with single request.\n\nIf you have multiple records with the same name and type, and you want to delete only part of them,\nrefer to the `Update zone records` endpoint.\n\nUse this endpoint to remove specific DNS records from domains.", "method": "DELETE", "path": "/api/dns/v1/zones/{domain}", "inputSchema": { "type": "object", "properties": { "domain": { "type": "string", "description": "Domain name" } }, "required": [ "domain" ] }, "security": [ { "apiToken": [] } ], "group": "dns" }, { "name": "DNS_resetDNSRecordsV1", "description": "Reset DNS zone to the default records.\n\nUse this endpoint to restore domain DNS to original configuration.", "method": "POST", "path": "/api/dns/v1/zones/{domain}/reset", "inputSchema": { "type": "object", "properties": { "domain": { "type": "string", "description": "Domain name" }, "sync": { "type": "boolean", "description": "Determines if operation should be run synchronously" }, "reset_email_records": { "type": "boolean", "description": "Determines if email records should be reset" }, "whitelisted_record_types": { "type": "array", "description": "Specifies which record types to not reset", "items": { "type": "string", "description": "whitelisted_record_types parameter" } } }, "required": [ "domain" ] }, "security": [ { "apiToken": [] } ], "group": "dns" }, { "name": "DNS_validateDNSRecordsV1", "description": "Validate DNS records prior to update for the selected domain.\n\nIf the validation is successful, the response will contain `200 Success` code.\nIf there is validation error, the response will fail with `422 Validation error` code.\n\nUse this endpoint to verify DNS record validity before applying changes.", "method": "POST", "path": "/api/dns/v1/zones/{domain}/validate", "inputSchema": { "type": "object", "properties": { "domain": { "type": "string", "description": "Domain name" }, "overwrite": { "type": "boolean", "description": "If `true`, resource records (RRs) matching name and type will be deleted and new RRs will be created,\notherwise resource records' ttl's are updated and new records are appended.\nIf no matching RRs are found, they are created." }, "zone": { "type": "array", "description": "zone parameter", "items": { "type": "object", "description": "zone parameter", "properties": { "name": { "type": "string", "description": "Name of the record (use `@` for wildcard name)" }, "records": { "type": "array", "description": "Records assigned to the name", "items": { "type": "object", "description": "records parameter", "properties": { "content": { "type": "string", "description": "Content of the name record" } }, "required": [ "content" ] } }, "ttl": { "type": "integer", "description": "TTL (Time-To-Live) of the record" }, "type": { "type": "string", "description": "Type of the record", "enum": [ "A", "AAAA", "CNAME", "ALIAS", "MX", "TXT", "NS", "SOA", "SRV", "CAA" ] } }, "required": [ "name", "records", "type" ] } } }, "required": [ "domain", "zone" ] }, "security": [ { "apiToken": [] } ], "group": "dns" }, { "name": "v2_getDomainVerificationsDIRECT", "description": "Retrieve a list of pending and completed domain verifications.", "method": "GET", "path": "/api/v2/direct/verifications/active", "inputSchema": { "type": "object", "properties": {}, "required": [] }, "security": [ { "apiToken": [] } ], "group": "domains" }, { "name": "domains_suggestDomainNamesFromADescriptionV1", "description": "Suggest available domain names based on a free-text description of your project.\n\nSuggestions are generated by an AI model, so they differ between calls.\n\nEndpoint has rate limit of 90 requests per minute.\n\nUse this endpoint to find a domain name when you only know what the website is about.", "method": "POST", "path": "/api/domains/v1/availability/alternatives-from-description", "inputSchema": { "type": "object", "properties": { "description": { "type": "string", "description": "Free-text description of the project the domain is needed for" }, "limit": { "type": "integer", "description": "Amount of domain names to suggest" } }, "required": [ "description", "limit" ] }, "security": [ { "apiToken": [] } ], "group": "domains" }, { "name": "domains_suggestDomainNamesFromADomainV1", "description": "Suggest available domain names based on a domain name you already have in mind.\n\nSuggestions are generated by an AI model, so they differ between calls.\n\nEndpoint has rate limit of 90 requests per minute.\n\nUse this endpoint when the domain you wanted is taken and you need close alternatives.", "method": "POST", "path": "/api/domains/v1/availability/alternatives-from-domain", "inputSchema": { "type": "object", "properties": { "domain": { "type": "string", "description": "Domain name to base the suggestions on" }, "limit": { "type": "integer", "description": "Amount of domain names to suggest" } }, "required": [ "domain", "limit" ] }, "security": [ { "apiToken": [] } ], "group": "domains" }, { "name": "domains_checkDomainAvailabilityV1", "description": "Check availability of domain names across multiple TLDs.\n\nMultiple TLDs can be checked at once.\nIf you want alternative domains with response, provide only one TLD and set `with_alternatives` to `true`.\nTLDs should be provided without leading dot (e.g. `com`, `net`, `org`).\n\nEndpoint has rate limit of 90 requests per minute.\n\nUse this endpoint to verify domain availability before purchase.", "method": "POST", "path": "/api/domains/v1/availability", "inputSchema": { "type": "object", "properties": { "domain": { "type": "string", "description": "Domain name (without TLD)" }, "tlds": { "type": "array", "description": "TLDs list", "items": { "type": "string", "description": "TLD without leading dot" } }, "with_alternatives": { "type": "boolean", "description": "Should response include alternatives" } }, "required": [ "domain", "tlds" ] }, "security": [ { "apiToken": [] } ], "group": "domains" }, { "name": "domains_getDomainForwardingV1", "description": "Retrieve domain forwarding data.\n\nUse this endpoint to view current redirect configuration for domains.", "method": "GET", "path": "/api/domains/v1/forwarding/{domain}", "inputSchema": { "type": "object", "properties": { "domain": { "type": "string", "description": "Domain name" } }, "required": [ "domain" ] }, "security": [ { "apiToken": [] } ], "group": "domains" }, { "name": "domains_updateDomainForwardingV1", "description": "Update domain forwarding configuration.\n\nUse this endpoint to modify existing redirect configuration for domains.", "method": "PUT", "path": "/api/domains/v1/forwarding/{domain}", "inputSchema": { "type": "object", "properties": { "domain": { "type": "string", "description": "Domain name" }, "redirect_type": { "type": "string", "description": "Redirect type", "enum": [ "301", "302" ] }, "redirect_url": { "type": "string", "description": "URL to forward domain to" } }, "required": [ "domain", "redirect_type", "redirect_url" ] }, "security": [ { "apiToken": [] } ], "group": "domains" }, { "name": "domains_deleteDomainForwardingV1", "description": "Delete domain forwarding data.\n\nUse this endpoint to remove redirect configuration from domains.", "method": "DELETE", "path": "/api/domains/v1/forwarding/{domain}", "inputSchema": { "type": "object", "properties": { "domain": { "type": "string", "description": "Domain name" } }, "required": [ "domain" ] }, "security": [ { "apiToken": [] } ], "group": "domains" }, { "name": "domains_createDomainForwardingV1", "description": "Create domain forwarding configuration.\n\nUse this endpoint to set up domain redirects to other URLs.", "method": "POST", "path": "/api/domains/v1/forwarding", "inputSchema": { "type": "object", "properties": { "domain": { "type": "string", "description": "Domain name" }, "redirect_type": { "type": "string", "description": "Redirect type", "enum": [ "301", "302" ] }, "redirect_url": { "type": "string", "description": "URL to forward domain to" } }, "required": [ "domain", "redirect_type", "redirect_url" ] }, "security": [ { "apiToken": [] } ], "group": "domains" }, { "name": "domains_getPendingIRTPVerificationV1", "description": "Retrieve a pending IRTP verification for a domain.\n\nBoth the old and new registrant must confirm it before the WHOIS change takes effect.\n\nUse this endpoint to check the status of a WHOIS change awaiting registrant confirmation.", "method": "GET", "path": "/api/domains/v1/irtp/{domain}", "inputSchema": { "type": "object", "properties": { "domain": { "type": "string", "description": "Domain name" } }, "required": [ "domain" ] }, "security": [ { "apiToken": [] } ], "group": "domains" }, { "name": "domains_cancelPendingIRTPVerificationV1", "description": "Cancel a pending IRTP verification.\n\nUse this endpoint to back out of a WHOIS change that is stuck waiting on registrant confirmation,\nfor example when the confirmation email cannot be received, without waiting out the 5-day expiry.", "method": "DELETE", "path": "/api/domains/v1/irtp/{domain}", "inputSchema": { "type": "object", "properties": { "domain": { "type": "string", "description": "Domain name" } }, "required": [ "domain" ] }, "security": [ { "apiToken": [] } ], "group": "domains" }, { "name": "domains_getIncomingDomainMoveV1", "description": "Retrieve the incoming move for a specified domain.\n\nReturns 404 when no account is moving this domain to you.\n\nUse this endpoint to check whether a domain addressed to you is still waiting to be accepted.", "method": "GET", "path": "/api/domains/v1/move/incoming/{domain}", "inputSchema": { "type": "object", "properties": { "domain": { "type": "string", "description": "Domain name" }, "force_sync": { "type": "boolean", "description": "Re-check the move against the registry before responding. Only has an effect while the move is in the `activating` status." } }, "required": [ "domain" ] }, "security": [ { "apiToken": [] } ], "group": "domains" }, { "name": "domains_acceptIncomingDomainMoveV1", "description": "Accept an incoming move for a specified domain.\n\nThe provided WHOIS profiles become the contacts of the domain, so they must belong\nto your account and satisfy the requirements of the TLD. Only the contact types the\ndomain actually uses are applied, but all four profile IDs have to be provided.\n\nThe move has to still be waiting for your decision, already accepted moves\ncannot be accepted again.\n\nAccepting does not complete the move. A confirmation email is sent to the email address of\nthe new owner contact, and the domain changes hands only after the change is confirmed from it.\nUntil then the move stays in the `activating` status, which can be followed with the\n[incoming move endpoint](#tag/domains-move).\n\nUse this endpoint to take ownership of a domain offered to you.", "method": "PUT", "path": "/api/domains/v1/move/incoming/{domain}", "inputSchema": { "type": "object", "properties": { "domain": { "type": "string", "description": "Domain name" }, "domain_contacts": { "type": "object", "description": "WHOIS profiles of the accepting account. Only the contact types required by the TLD are applied, but all four IDs must be provided.", "properties": { "owner_id": { "type": "integer", "description": "Owner contact WHOIS record ID" }, "admin_id": { "type": "integer", "description": "Administrative contact WHOIS record ID" }, "billing_id": { "type": "integer", "description": "Billing contact WHOIS record ID" }, "tech_id": { "type": "integer", "description": "Technical contact WHOIS record ID" } }, "required": [ "owner_id", "admin_id", "billing_id", "tech_id" ] } }, "required": [ "domain", "domain_contacts" ] }, "security": [ { "apiToken": [] } ], "group": "domains" }, { "name": "domains_rejectIncomingDomainMoveV1", "description": "Reject an incoming move for a specified domain.\n\nThe domain stays in the account which initiated the move.\nMoves you have already accepted cannot be rejected anymore.\n\nUse this endpoint to decline a domain you do not want to take over.", "method": "DELETE", "path": "/api/domains/v1/move/incoming/{domain}", "inputSchema": { "type": "object", "properties": { "domain": { "type": "string", "description": "Domain name" } }, "required": [ "domain" ] }, "security": [ { "apiToken": [] } ], "group": "domains" }, { "name": "domains_getIncomingDomainMoveListV1", "description": "Retrieve all domains other Hostinger accounts are moving to your account.\n\nMoves of every status are returned, including the ones which already completed.\n\nUse this endpoint to find domains waiting for you to accept them.", "method": "GET", "path": "/api/domains/v1/move/incoming", "inputSchema": { "type": "object", "properties": {}, "required": [] }, "security": [ { "apiToken": [] } ], "group": "domains" }, { "name": "domains_getOutgoingDomainMoveV1", "description": "Retrieve the outgoing move for a specified domain.\n\nReturns 404 when the domain has no move in progress.\n\nUse this endpoint to track the status of a move you have initiated for a single domain.", "method": "GET", "path": "/api/domains/v1/move/outgoing/{domain}", "inputSchema": { "type": "object", "properties": { "domain": { "type": "string", "description": "Domain name" } }, "required": [ "domain" ] }, "security": [ { "apiToken": [] } ], "group": "domains" }, { "name": "domains_startOutgoingDomainMoveV1", "description": "Initiate a move of a specified domain to another Hostinger account.\n\nThe receiving account has to already exist and accept the move before the domain changes hands.\n\nThe domain must be active. The subscription it belongs to is resolved automatically,\nand the request is rejected with a 404 status code when the domain has no domain\nsubscription of its own.\n\nDomains protected by premium protection require an additional verification step,\nsuch requests are rejected with a 428 status code.\n\nUse this endpoint to hand a domain over to another Hostinger user.", "method": "POST", "path": "/api/domains/v1/move/outgoing/{domain}", "inputSchema": { "type": "object", "properties": { "domain": { "type": "string", "description": "Domain name" }, "new_customer_email": { "type": "string", "description": "Email address of the Hostinger account receiving the domain" } }, "required": [ "domain", "new_customer_email" ] }, "security": [ { "apiToken": [] } ], "group": "domains" }, { "name": "domains_cancelOutgoingDomainMoveV1", "description": "Cancel an outgoing move for a specified domain.\n\nThe move can only be cancelled while the receiving account has not accepted it yet.\nThe domain stays in your account.\n\nUse this endpoint to withdraw a move you no longer want to complete.", "method": "DELETE", "path": "/api/domains/v1/move/outgoing/{domain}", "inputSchema": { "type": "object", "properties": { "domain": { "type": "string", "description": "Domain name" } }, "required": [ "domain" ] }, "security": [ { "apiToken": [] } ], "group": "domains" }, { "name": "domains_getOutgoingDomainMoveListV1", "description": "Retrieve all domains you are moving to other Hostinger accounts.\n\nOnly moves which have not completed yet are returned.\n\nUse this endpoint to track moves you have initiated and the accounts they are addressed to.", "method": "GET", "path": "/api/domains/v1/move/outgoing", "inputSchema": { "type": "object", "properties": {}, "required": [] }, "security": [ { "apiToken": [] } ], "group": "domains" }, { "name": "domains_getDomainAuthorizationCodeV1", "description": "Retrieve the authorization (EPP) code for a specified domain so it can be transferred\naway from Hostinger to another registrar.\n\nRequesting a new code invalidates any code retrieved previously.\n\nUse this endpoint to obtain the code required to transfer a domain to another registrar.", "method": "GET", "path": "/api/domains/v1/portfolio/{domain}/auth-code", "inputSchema": { "type": "object", "properties": { "domain": { "type": "string", "description": "Domain name" } }, "required": [ "domain" ] }, "security": [ { "apiToken": [] } ], "group": "domains" }, { "name": "domains_claimFreeDomainV1", "description": "Claim a free domain available on your account and register it.\n\nUnlike purchasing a domain, this consumes a free domain you already have,\nso no payment method is required.\n\nA successful response means the domain is registered. If registration fails, login to\n[hPanel](https://hpanel.hostinger.com/) and check domain registration status.\n\nIf no WHOIS information is provided, default contact information for that TLD will be used.\nBefore making request, ensure WHOIS information for desired TLD exists in your account.\n\nSome TLDs require `additional_details` to be provided and these will be validated before claiming.\n\nRequests which cannot be fulfilled are rejected with an error code in the response body,\nfor example `2037` when no free domain is available.\n\nUse this endpoint to register a domain using a free domain from your account.", "method": "POST", "path": "/api/domains/v1/portfolio/claim", "inputSchema": { "type": "object", "properties": { "domain": { "type": "string", "description": "Domain name" }, "domain_contacts": { "type": "object", "description": "Domain contact information", "properties": { "owner_id": { "type": "integer", "description": "Owner contact WHOIS record ID" }, "admin_id": { "type": "integer", "description": "Administrative contact WHOIS record ID" }, "billing_id": { "type": "integer", "description": "Billing contact WHOIS record ID" }, "tech_id": { "type": "integer", "description": "Technical contact WHOIS record ID" } } }, "additional_details": { "type": "object", "description": "Additional registration data, possible values depends on TLD", "properties": {} } }, "required": [ "domain" ] }, "security": [ { "apiToken": [] } ], "group": "domains" }, { "name": "domains_enableDomainLockV1", "description": "Enable domain lock for the domain.\n\nWhen domain lock is enabled,\nthe domain cannot be transferred to another registrar without first disabling the lock.\n\nUse this endpoint to secure domains against unauthorized transfers.", "method": "PUT", "path": "/api/domains/v1/portfolio/{domain}/domain-lock", "inputSchema": { "type": "object", "properties": { "domain": { "type": "string", "description": "Domain name" } }, "required": [ "domain" ] }, "security": [ { "apiToken": [] } ], "group": "domains" }, { "name": "domains_disableDomainLockV1", "description": "Disable domain lock for the domain.\n\nDomain lock needs to be disabled before transferring the domain to another registrar.\n\nUse this endpoint to prepare domains for transfer to other registrars.", "method": "DELETE", "path": "/api/domains/v1/portfolio/{domain}/domain-lock", "inputSchema": { "type": "object", "properties": { "domain": { "type": "string", "description": "Domain name" } }, "required": [ "domain" ] }, "security": [ { "apiToken": [] } ], "group": "domains" }, { "name": "domains_getDomainDetailsV1", "description": "Retrieve detailed information for specified domain.\n\nUse this endpoint to view comprehensive domain configuration and status.", "method": "GET", "path": "/api/domains/v1/portfolio/{domain}", "inputSchema": { "type": "object", "properties": { "domain": { "type": "string", "description": "Domain name" } }, "required": [ "domain" ] }, "security": [ { "apiToken": [] } ], "group": "domains" }, { "name": "domains_getDomainListV1", "description": "Retrieve all domains associated with your account.\n\nUse this endpoint to view user's domain portfolio.", "method": "GET", "path": "/api/domains/v1/portfolio", "inputSchema": { "type": "object", "properties": {}, "required": [] }, "security": [ { "apiToken": [] } ], "group": "domains" }, { "name": "domains_purchaseNewDomainV1", "description": "Purchase and register a new domain name.\n\nIf registration fails, login to [hPanel](https://hpanel.hostinger.com/) and check domain registration status.\n\nIf no payment method is provided, your default payment method will be used automatically.\n\nIf no WHOIS information is provided, default contact information for that TLD will be used.\nBefore making request, ensure WHOIS information for desired TLD exists in your account.\n\nSome TLDs require `additional_details` to be provided and these will be validated before completing purchase.\n\nUse this endpoint to register new domains for users.", "method": "POST", "path": "/api/domains/v1/portfolio", "inputSchema": { "type": "object", "properties": { "domain": { "type": "string", "description": "Domain name" }, "item_id": { "type": "string", "description": "Catalog price item ID" }, "payment_method_id": { "type": "integer", "description": "Payment method ID, default will be used if not provided" }, "domain_contacts": { "type": "object", "description": "Domain contact information", "properties": { "owner_id": { "type": "integer", "description": "Owner contact WHOIS record ID" }, "admin_id": { "type": "integer", "description": "Administrative contact WHOIS record ID" }, "billing_id": { "type": "integer", "description": "Billing contact WHOIS record ID" }, "tech_id": { "type": "integer", "description": "Technical contact WHOIS record ID" } } }, "additional_details": { "type": "object", "description": "Additional registration data, possible values depends on TLD", "properties": {} }, "coupons": { "type": "array", "description": "Discount coupon codes", "items": { "type": "string", "description": "coupons parameter" } } }, "required": [ "domain", "item_id" ] }, "security": [ { "apiToken": [] } ], "group": "domains" }, { "name": "domains_enablePrivacyProtectionV1", "description": "Enable privacy protection for the domain.\n\nWhen privacy protection is enabled, domain owner's personal information is hidden from public WHOIS database.\n\nUse this endpoint to protect domain owner's personal information from public view.", "method": "PUT", "path": "/api/domains/v1/portfolio/{domain}/privacy-protection", "inputSchema": { "type": "object", "properties": { "domain": { "type": "string", "description": "Domain name" } }, "required": [ "domain" ] }, "security": [ { "apiToken": [] } ], "group": "domains" }, { "name": "domains_disablePrivacyProtectionV1", "description": "Disable privacy protection for the domain.\n\nWhen privacy protection is disabled, domain owner's personal information is visible in public WHOIS database.\n\nUse this endpoint to make domain owner's information publicly visible.", "method": "DELETE", "path": "/api/domains/v1/portfolio/{domain}/privacy-protection", "inputSchema": { "type": "object", "properties": { "domain": { "type": "string", "description": "Domain name" } }, "required": [ "domain" ] }, "security": [ { "apiToken": [] } ], "group": "domains" }, { "name": "domains_getDomainRenewalInformationV1", "description": "Retrieve renewal information for a specified domain, including its status and current\nexpiration date.\n\nUse this endpoint to build renewal automation and expiry monitoring for a single domain.", "method": "GET", "path": "/api/domains/v1/portfolio/{domain}/renewal", "inputSchema": { "type": "object", "properties": { "domain": { "type": "string", "description": "Domain name" } }, "required": [ "domain" ] }, "security": [ { "apiToken": [] } ], "group": "domains" }, { "name": "domains_updateDomainNameserversV1", "description": "Set nameservers for a specified domain.\n\nBe aware, that improper nameserver configuration can lead to the domain being unresolvable or unavailable.\n\nUse this endpoint to configure custom DNS hosting for domains.", "method": "PUT", "path": "/api/domains/v1/portfolio/{domain}/nameservers", "inputSchema": { "type": "object", "properties": { "domain": { "type": "string", "description": "Domain name" }, "ns1": { "type": "string", "description": "First name server" }, "ns2": { "type": "string", "description": "Second name server" }, "ns3": { "type": "string", "description": "Third name server" }, "ns4": { "type": "string", "description": "Fourth name server" } }, "required": [ "domain", "ns1", "ns2" ] }, "security": [ { "apiToken": [] } ], "group": "domains" }, { "name": "domains_claimFreeDomainTransferV1", "description": "Claim a free domain transfer available on your account and start the transfer.\n\nUnlike purchasing a transfer, this consumes a free domain transfer you already have,\nso no payment method is required.\n\nBefore making request, unlock the domain at the current registrar and get its authorization\ncode. The transfer is validated first, so domains which cannot be transferred are rejected\nbefore the free domain transfer is consumed.\n\nA successful response means the transfer has been started. Completion depends on the current\nregistrar and can be followed with the [transfer list endpoint](#tag/domains-transfer).\n\nIf no WHOIS information is provided, default contact information for that TLD will be used.\nBefore making request, ensure WHOIS information for desired TLD exists in your account.\n\nRequests which cannot be fulfilled are rejected with an error code in the response body.\n\nUse this endpoint to transfer a domain using a free domain transfer from your account.", "method": "POST", "path": "/api/domains/v1/transfers/claim", "inputSchema": { "type": "object", "properties": { "domain": { "type": "string", "description": "Domain name" }, "auth_code": { "type": "string", "description": "Authorization code from the current registrar" }, "domain_contacts": { "type": "object", "description": "Domain contact information", "properties": { "owner_id": { "type": "integer", "description": "Owner contact WHOIS record ID" }, "admin_id": { "type": "integer", "description": "Administrative contact WHOIS record ID" }, "billing_id": { "type": "integer", "description": "Billing contact WHOIS record ID" }, "tech_id": { "type": "integer", "description": "Technical contact WHOIS record ID" } } }, "should_keep_ns": { "type": "boolean", "description": "Keep the existing nameservers of the domain" } }, "required": [ "domain", "auth_code" ] }, "security": [ { "apiToken": [] } ], "group": "domains" }, { "name": "domains_getTransferV1", "description": "Retrieve the transfer for a specified domain.\n\nUse this endpoint to track an incoming or outgoing registrar transfer and its status.", "method": "GET", "path": "/api/domains/v1/transfers/{domain}", "inputSchema": { "type": "object", "properties": { "domain": { "type": "string", "description": "Domain name" } }, "required": [ "domain" ] }, "security": [ { "apiToken": [] } ], "group": "domains" }, { "name": "domains_getTransferListV1", "description": "Retrieve all domain transfers in your portfolio.\n\nUse this endpoint to monitor incoming and outgoing registrar transfers across your domains.", "method": "GET", "path": "/api/domains/v1/transfers", "inputSchema": { "type": "object", "properties": {}, "required": [] }, "security": [ { "apiToken": [] } ], "group": "domains" }, { "name": "domains_changeWHOISProfileForDomainV1", "description": "Change WHOIS contact profile for a domain.\n\nRepoints the given contact roles to a new WHOIS profile and submits the change to the registry.\nThe profile currently assigned to those roles is resolved automatically;\nthe request fails if the given roles are not all on the same profile today.\n\nChanging transfer sensitive fields on the owner contact starts an IRTP verification.\n\nThe change is processed asynchronously.\n\nUse this endpoint to move a registered domain onto different contact information.", "method": "PUT", "path": "/api/domains/v1/whois/change", "inputSchema": { "type": "object", "properties": { "new_whois_id": { "type": "integer", "description": "WHOIS profile ID to assign to the domain" }, "domain": { "type": "string", "description": "Domain name" }, "change_for": { "type": "array", "description": "Contact roles to repoint to the new WHOIS profile", "items": { "type": "string", "description": "change_for parameter", "enum": [ "owner", "admin", "billing", "tech" ] } } }, "required": [ "new_whois_id", "domain", "change_for" ] }, "security": [ { "apiToken": [] } ], "group": "domains" }, { "name": "domains_setWHOISProfileAsDefaultV1", "description": "Set WHOIS contact profile as default.\n\nThe default profile is pre-selected for the TLD it belongs to when registering new domains.\n\nUse this endpoint to avoid picking contact information for every registration.", "method": "PUT", "path": "/api/domains/v1/whois/default/{whoisId}", "inputSchema": { "type": "object", "properties": { "whoisId": { "type": "integer", "description": "WHOIS ID" } }, "required": [ "whoisId" ] }, "security": [ { "apiToken": [] } ], "group": "domains" }, { "name": "domains_unsetDefaultWHOISProfileV1", "description": "Unset WHOIS contact profile as default.\n\nThe profile itself is kept, it is only no longer pre-selected for its TLD.\n\nUse this endpoint to stop reusing contact information for new registrations.", "method": "DELETE", "path": "/api/domains/v1/whois/default/{whoisId}", "inputSchema": { "type": "object", "properties": { "whoisId": { "type": "integer", "description": "WHOIS ID" } }, "required": [ "whoisId" ] }, "security": [ { "apiToken": [] } ], "group": "domains" }, { "name": "domains_getWHOISProfileV1", "description": "Retrieve a WHOIS contact profile.\n\nUse this endpoint to view domain registration contact information.", "method": "GET", "path": "/api/domains/v1/whois/{whoisId}", "inputSchema": { "type": "object", "properties": { "whoisId": { "type": "integer", "description": "WHOIS ID" } }, "required": [ "whoisId" ] }, "security": [ { "apiToken": [] } ], "group": "domains" }, { "name": "domains_deleteWHOISProfileV1", "description": "Delete WHOIS contact profile.\n\nUse this endpoint to remove unused contact profiles from account.", "method": "DELETE", "path": "/api/domains/v1/whois/{whoisId}", "inputSchema": { "type": "object", "properties": { "whoisId": { "type": "integer", "description": "WHOIS ID" } }, "required": [ "whoisId" ] }, "security": [ { "apiToken": [] } ], "group": "domains" }, { "name": "domains_getWHOISProfileListV1", "description": "Retrieve WHOIS contact profiles.\n\nUse this endpoint to view available contact profiles for domain registration.", "method": "GET", "path": "/api/domains/v1/whois", "inputSchema": { "type": "object", "properties": { "tld": { "type": "string", "description": "Filter by TLD (without leading dot)" } }, "required": [] }, "security": [ { "apiToken": [] } ], "group": "domains" }, { "name": "domains_createWHOISProfileV1", "description": "Create WHOIS contact profile.\n\nUse this endpoint to add new contact information for domain registration.", "method": "POST", "path": "/api/domains/v1/whois", "inputSchema": { "type": "object", "properties": { "tld": { "type": "string", "description": "TLD of the domain (without leading dot)" }, "country": { "type": "string", "description": "ISO 3166 2-letter country code" }, "entity_type": { "type": "string", "description": "Legal entity type", "enum": [ "individual", "organization" ] }, "tld_details": { "type": "object", "description": "TLD details", "properties": {} }, "whois_details": { "type": "object", "description": "WHOIS details", "properties": {} } }, "required": [ "tld", "entity_type", "country", "whois_details" ] }, "security": [ { "apiToken": [] } ], "group": "domains" }, { "name": "domains_getWHOISProfileUsageV1", "description": "Retrieve domain list where provided WHOIS contact profile is used.\n\nUse this endpoint to view which domains use specific contact profiles.", "method": "GET", "path": "/api/domains/v1/whois/{whoisId}/usage", "inputSchema": { "type": "object", "properties": { "whoisId": { "type": "integer", "description": "WHOIS ID" } }, "required": [ "whoisId" ] }, "security": [ { "apiToken": [] } ], "group": "domains" }, { "name": "ecommerce_listDiscountsV1", "description": "List a store's discounts. Filter by free text over code and name, or by disabled state.\nAmounts for fixed discounts are integers in the smallest currency unit; percentage\ndiscounts carry a whole-number value between 1 and 100.", "method": "GET", "path": "/api/ecommerce/v1/stores/{store_id}/discounts", "inputSchema": { "type": "object", "properties": { "store_id": { "type": "string", "description": "The ID of the store to list discounts for." }, "q": { "type": "string", "description": "Free-text search over discount code and name." }, "is_disabled": { "type": "string", "description": "Filter by disabled state.", "enum": [ "true", "false" ] }, "page": { "type": "integer", "description": "Page number" } }, "required": [ "store_id" ] }, "security": [ { "apiToken": [] } ], "group": "ecommerce" }, { "name": "ecommerce_createADiscountV1", "description": "Create a discount for a store. Fixed discounts take an amount in the smallest currency\nunit (e.g. $10 is 1000); percentage discounts take a whole-number value between 1 and 100.\nFree-shipping discounts ignore value. Returns the created discount.", "method": "POST", "path": "/api/ecommerce/v1/stores/{store_id}/discounts", "inputSchema": { "type": "object", "properties": { "store_id": { "type": "string", "description": "The ID of the store to create the discount for." }, "code": { "type": "string", "description": "The discount code customers enter at checkout." }, "name": { "type": "string", "description": "A human-friendly discount name." }, "type": { "type": "string", "description": "The discount type.", "enum": [ "percentage", "fixed", "free_shipping" ] }, "value": { "type": "integer", "description": "For percentage discounts a whole number 1-100; for fixed discounts an amount in the smallest currency unit (e.g. $10 is 1000). Ignored for free_shipping." }, "allocation": { "type": "string", "description": "Whether the discount applies to the cart total or to each eligible item.", "enum": [ "total", "item" ] }, "starts_at": { "type": "string", "description": "When the discount becomes active. A bare date (2026-11-27) anchors to time_zone. Defaults to now when omitted." }, "ends_at": { "type": "string", "description": "When the discount expires. A bare date runs to the end of that day in time_zone. Never expires when omitted." }, "usage_limit": { "type": "integer", "description": "Maximum number of times the discount can be redeemed." }, "min_cart_value": { "type": "integer", "description": "Minimum cart value in the smallest currency unit required for the discount to apply." }, "time_zone": { "type": "string", "description": "IANA time zone used to interpret starts_at and ends_at." } }, "required": [ "store_id", "code", "type", "value" ] }, "security": [ { "apiToken": [] } ], "group": "ecommerce" }, { "name": "ecommerce_getCustomStorefrontSetupInstructionsV1", "description": "Retrieve step-by-step setup instructions, formatted as Markdown, for connecting a custom sales\nchannel to your store and keeping your catalog, orders, shipping and payments in sync through\nthe Ecommerce API.", "method": "GET", "path": "/api/ecommerce/v1/miscellaneous/custom-storefront-instructions", "inputSchema": { "type": "object", "properties": {}, "required": [] }, "security": [ { "apiToken": [] } ], "group": "ecommerce" }, { "name": "ecommerce_cancelAnOrderV1", "description": "Cancel the order and optionally email the customer. Returns the updated order summary.", "method": "POST", "path": "/api/ecommerce/v1/stores/{store_id}/orders/{order_id}/cancel", "inputSchema": { "type": "object", "properties": { "store_id": { "type": "string", "description": "The ID of the store that owns the order." }, "order_id": { "type": "string", "description": "The ID of the order to cancel." }, "notify_customer": { "type": "boolean", "description": "Whether to email the customer about the cancellation. Defaults to true." } }, "required": [ "store_id", "order_id" ] }, "security": [ { "apiToken": [] } ], "group": "ecommerce" }, { "name": "ecommerce_fulfilAnOrderV1", "description": "Create a fulfilment for the order and attach tracking in one call. Omit items to fulfil\nevery remaining unfulfilled item. Returns the updated order summary.", "method": "POST", "path": "/api/ecommerce/v1/stores/{store_id}/orders/{order_id}/fulfill", "inputSchema": { "type": "object", "properties": { "store_id": { "type": "string", "description": "The ID of the store that owns the order." }, "order_id": { "type": "string", "description": "The ID of the order to fulfil." }, "items": { "type": "array", "description": "Line items to fulfil. Omit to fulfil every remaining unfulfilled item.", "items": { "type": "object", "description": "items parameter", "properties": { "line_item_id": { "type": "string", "description": "The line item to fulfil, from the order detail items[].id." }, "quantity": { "type": "integer", "description": "Quantity of the line item to fulfil." } }, "required": [ "line_item_id", "quantity" ] } }, "tracking_number": { "type": "string", "description": "Carrier tracking number for the shipment." }, "tracking_url": { "type": "string", "description": "Public tracking URL for the shipment. Requires tracking_number." }, "notify_customer": { "type": "boolean", "description": "Whether to email the customer about the fulfilment. Defaults to true." } }, "required": [ "store_id", "order_id" ] }, "security": [ { "apiToken": [] } ], "group": "ecommerce" }, { "name": "ecommerce_listStoreOrdersV1", "description": "List a store's orders newest first as summaries. Filter by status, payment or fulfilment\nstatus, customer email, order number or a free-text query. Amounts are in the smallest\ncurrency unit. Retrieve a single order for its line items, addresses and fulfilments.", "method": "GET", "path": "/api/ecommerce/v1/stores/{store_id}/orders", "inputSchema": { "type": "object", "properties": { "store_id": { "type": "string", "description": "The ID of the store to list orders for." }, "status": { "type": "array", "description": "Order statuses to include.", "items": { "type": "string", "description": "status parameter", "enum": [ "pending", "completed", "archived", "canceled", "requires_action" ] } }, "payment_status": { "type": "array", "description": "Payment statuses to include. A paid order is \"captured\".", "items": { "type": "string", "description": "payment_status parameter", "enum": [ "not_paid", "awaiting", "captured", "partially_refunded", "refunded", "canceled", "requires_action", "not_required" ] } }, "fulfillment_status": { "type": "array", "description": "Fulfilment statuses to include.", "items": { "type": "string", "description": "fulfillment_status parameter", "enum": [ "not_fulfilled", "partially_fulfilled", "fulfilled", "partially_shipped", "shipped", "partially_returned", "returned", "canceled", "requires_action" ] } }, "email": { "type": "string", "description": "Customer email, matched exactly." }, "display_id": { "type": "string", "description": "The order number the merchant and customer see." }, "q": { "type": "string", "description": "Free-text search over customer name, email, order number and line items." }, "created_at_from": { "type": "string", "description": "Earliest creation time to include, inclusive. Accepts a date or ISO date-time (UTC)." }, "created_at_to": { "type": "string", "description": "Latest creation time to include, inclusive. A bare date covers that whole day." }, "page": { "type": "integer", "description": "Page number" } }, "required": [ "store_id" ] }, "security": [ { "apiToken": [] } ], "group": "ecommerce" }, { "name": "ecommerce_retrieveAnOrderV1", "description": "Retrieve one order in full: line items (each with the id the fulfil endpoint needs),\naddresses, the totals breakdown and fulfilments with tracking. Amounts are in the\nsmallest currency unit.", "method": "GET", "path": "/api/ecommerce/v1/stores/{store_id}/orders/{order_id}", "inputSchema": { "type": "object", "properties": { "store_id": { "type": "string", "description": "The ID of the store that owns the order." }, "order_id": { "type": "string", "description": "The ID of the order to retrieve." } }, "required": [ "store_id", "order_id" ] }, "security": [ { "apiToken": [] } ], "group": "ecommerce" }, { "name": "ecommerce_enableManualPaymentMethodV1", "description": "Enable a manual payment method so the store can accept orders without an online payment provider.", "method": "POST", "path": "/api/ecommerce/v1/stores/{store_id}/payment-methods/manual", "inputSchema": { "type": "object", "properties": { "store_id": { "type": "string", "description": "The ID of the store to enable manual payment for." }, "title": { "type": "string", "description": "Optional display name shown to customers at checkout." } }, "required": [ "store_id" ] }, "security": [ { "apiToken": [] } ], "group": "ecommerce" }, { "name": "ecommerce_createAPaymentProviderConnectLinkV1", "description": "Create an onboarding link for connecting a payment gateway to the store. Returns the gateway\nonboarding URL for the merchant to open and a deep-link into the store admin.", "method": "POST", "path": "/api/ecommerce/v1/stores/{store_id}/payment-providers/{provider_id}/connect-link", "inputSchema": { "type": "object", "properties": { "store_id": { "type": "string", "description": "The ID of the store to connect the payment provider to." }, "provider_id": { "type": "string", "description": "The ID of the payment gateway to connect, e.g. stripe." } }, "required": [ "store_id", "provider_id" ] }, "security": [ { "apiToken": [] } ], "group": "ecommerce" }, { "name": "ecommerce_listStorePaymentProvidersV1", "description": "List a store's payment providers, split into providers already connected to the store and\ngateways available to install. Never exposes gateway credentials, secrets, or configuration.", "method": "GET", "path": "/api/ecommerce/v1/stores/{store_id}/payment-providers", "inputSchema": { "type": "object", "properties": { "store_id": { "type": "string", "description": "The ID of the store to list payment providers for." }, "include_currency_unsupported": { "type": "boolean", "description": "Include gateways that do not support the store currency in the available list." } }, "required": [ "store_id" ] }, "security": [ { "apiToken": [] } ], "group": "ecommerce" }, { "name": "ecommerce_createAProductImageUploadURLV1", "description": "Returns a signed URL to upload a product image to (multipart/form-data POST). Then call the\nattach-image endpoint with the returned object_name to scan and attach it to the product.", "method": "POST", "path": "/api/ecommerce/v1/stores/{store_id}/products/{product_id}/images/upload-url", "inputSchema": { "type": "object", "properties": { "store_id": { "type": "string", "description": "The ID of the store the product belongs to." }, "product_id": { "type": "string", "description": "The ID of the product the image will be attached to." } }, "required": [ "store_id", "product_id" ] }, "security": [ { "apiToken": [] } ], "group": "ecommerce" }, { "name": "ecommerce_deleteAProductV1", "description": "Delete a product and its variants from the store. A subscription product with active\nsubscribers is archived instead of deleted so its data stays available.", "method": "DELETE", "path": "/api/ecommerce/v1/stores/{store_id}/products/{product_id}", "inputSchema": { "type": "object", "properties": { "store_id": { "type": "string", "description": "The ID of the store that owns the product." }, "product_id": { "type": "string", "description": "The ID of the product to delete." } }, "required": [ "store_id", "product_id" ] }, "security": [ { "apiToken": [] } ], "group": "ecommerce" }, { "name": "ecommerce_updateAProductV1", "description": "Update a product's name, description or status. Set status to published to make it buyable,\ndraft to hide it, or archived to retire it. Variants, prices and inventory are managed\nthrough the variant endpoints, not here. Returns the updated product summary.", "method": "PATCH", "path": "/api/ecommerce/v1/stores/{store_id}/products/{product_id}", "inputSchema": { "type": "object", "properties": { "store_id": { "type": "string", "description": "The ID of the store that owns the product." }, "product_id": { "type": "string", "description": "The ID of the product to update." }, "name": { "type": "string", "description": "The product name." }, "description": { "type": "string", "description": "The product description." }, "status": { "type": "string", "description": "Set \"published\" to make the product buyable, \"draft\" to hide it, or \"archived\" to retire it.", "enum": [ "draft", "published", "archived" ] } }, "required": [ "store_id", "product_id" ] }, "security": [ { "apiToken": [] } ], "group": "ecommerce" }, { "name": "ecommerce_createDigitalProductV1", "description": "Create a published digital product with a single variant and an optional external download link.", "method": "POST", "path": "/api/ecommerce/v1/stores/{store_id}/products/digital", "inputSchema": { "type": "object", "properties": { "store_id": { "type": "string", "description": "The ID of the store to create the product in." }, "name": { "type": "string", "description": "The product name." }, "price": { "type": "integer", "description": "Price in the smallest currency unit (e.g. cents). Must be positive." }, "description": { "type": "string", "description": "The product description." }, "currency": { "type": "string", "description": "ISO 4217 currency code. Defaults to the store's default currency when omitted." }, "download_url": { "type": "string", "description": "Optional external download link delivered to the customer after purchase." } }, "required": [ "store_id", "name", "price" ] }, "security": [ { "apiToken": [] } ], "group": "ecommerce" }, { "name": "ecommerce_listProductsV1", "description": "List a store's products newest first as lean summaries (name, status, thumbnail, variant\ncount and price range). Prices are integers in the smallest currency unit and live on\nvariants. Filter by status, free text or a set of product ids. Use include=variants to\nembed each product's variants with prices and inventory, and include=media to embed its media.", "method": "GET", "path": "/api/ecommerce/v1/stores/{store_id}/products", "inputSchema": { "type": "object", "properties": { "store_id": { "type": "string", "description": "The ID of the store to list products for." }, "product_ids": { "type": "array", "description": "Restrict to these product ids. Doubles as a single-product lookup. Up to 200 ids.", "items": { "type": "string", "description": "product_ids parameter" } }, "status": { "type": "array", "description": "Product statuses to include.", "items": { "type": "string", "description": "status parameter", "enum": [ "draft", "proposed", "published", "rejected", "archived" ] } }, "q": { "type": "string", "description": "Free-text search over product title and SKU." }, "include": { "type": "array", "description": "Opt-in heavy data: \"variants\" embeds each product's variants; \"media\" embeds its media.", "items": { "type": "string", "description": "include parameter", "enum": [ "variants", "media" ] } }, "page": { "type": "integer", "description": "Page number" } }, "required": [ "store_id" ] }, "security": [ { "apiToken": [] } ], "group": "ecommerce" }, { "name": "ecommerce_createPhysicalProductV1", "description": "Create a published physical product with a single variant priced in the store currency.", "method": "POST", "path": "/api/ecommerce/v1/stores/{store_id}/products/physical", "inputSchema": { "type": "object", "properties": { "store_id": { "type": "string", "description": "The ID of the store to create the product in." }, "name": { "type": "string", "description": "The product name." }, "price": { "type": "integer", "description": "Price in the smallest currency unit (e.g. cents). Must be positive." }, "description": { "type": "string", "description": "The product description." }, "currency": { "type": "string", "description": "ISO 4217 currency code. Defaults to the store's default currency when omitted." } }, "required": [ "store_id", "name", "price" ] }, "security": [ { "apiToken": [] } ], "group": "ecommerce" }, { "name": "ecommerce_uploadAndAttachAProductImageV1", "description": "Fetch a raster image (JPEG, PNG, GIF or WebP, max 15MB) from a URL and attach it to a product in a\nsingle call. The image is virus-scanned and validated by content, then stored on the CDN. Set\nis_thumbnail to make it the product's primary image.", "method": "POST", "path": "/api/ecommerce/v1/stores/{store_id}/products/{product_id}/images", "inputSchema": { "type": "object", "properties": { "store_id": { "type": "string", "description": "The ID of the store the product belongs to." }, "product_id": { "type": "string", "description": "The ID of the product to attach the image to." }, "image_url": { "type": "string", "description": "Publicly reachable URL of the raster image (JPEG, PNG, GIF or WebP), maximum 15MB. The image is\nfetched, virus-scanned and validated by content, then stored on the CDN. SVG is not accepted.\nProvide either this or object_name." }, "object_name": { "type": "string", "description": "Key returned by the upload-url endpoint. Provide this instead of image_url to attach an uploaded image." }, "is_thumbnail": { "type": "boolean", "description": "When true, the image becomes the product's thumbnail (primary image). When omitted, it becomes the\nthumbnail only if the product does not have one yet." } }, "required": [ "store_id", "product_id" ] }, "security": [ { "apiToken": [] } ], "group": "ecommerce" }, { "name": "ecommerce_listSalesChannelsV1", "description": "List a store's active sales channels with their full metadata.", "method": "GET", "path": "/api/ecommerce/v1/stores/{store_id}/sales-channels", "inputSchema": { "type": "object", "properties": { "store_id": { "type": "string", "description": "The ID of the store to list sales channels for." } }, "required": [ "store_id" ] }, "security": [ { "apiToken": [] } ], "group": "ecommerce" }, { "name": "ecommerce_createASalesChannelV1", "description": "Create a sales channel for a store. A \"custom\" channel is headless: build your own frontend and keep\nyour catalog, orders, shipping and payments in sync through the Ecommerce API. A \"quick-link\" channel\nis a hosted one-page store whose handle is auto-generated.", "method": "POST", "path": "/api/ecommerce/v1/stores/{store_id}/sales-channels", "inputSchema": { "type": "object", "properties": { "store_id": { "type": "string", "description": "The ID of the store to create the sales channel for." }, "type": { "type": "string", "description": "Sales channel type. \"custom\" is a headless channel: it requires a name and takes an optional public url.\n\"quick-link\" is a one-page store whose handle is auto-generated; it supports neither name nor url.", "enum": [ "custom", "quick-link" ] }, "name": { "type": "string", "description": "Merchant-facing custom name. Required for custom channels; not supported for quick-link." }, "url": { "type": "string", "description": "Optional public url for the channel. Custom channels only; not supported for quick-link." } }, "required": [ "store_id", "type" ] }, "security": [ { "apiToken": [] } ], "group": "ecommerce" }, { "name": "ecommerce_updateSalesChannelV1", "description": "Update a custom sales channel. The merchant-facing `name` and the public `url`\n(returned as the channel `domain`) can be changed. Pass `null` to clear a value.", "method": "PATCH", "path": "/api/ecommerce/v1/stores/{store_id}/sales-channels/{sales_channel_id}", "inputSchema": { "type": "object", "properties": { "store_id": { "type": "string", "description": "The ID of the store that owns the sales channel." }, "sales_channel_id": { "type": "string", "description": "The ID of the sales channel to update." }, "name": { "type": "string", "description": "Merchant-facing custom name shown in the sales channels list. Pass null to clear it." }, "url": { "type": "string", "description": "Public address where the custom sales channel lives. Pass null to clear it." } }, "required": [ "store_id", "sales_channel_id" ] }, "security": [ { "apiToken": [] } ], "group": "ecommerce" }, { "name": "ecommerce_setStoreShippingV1", "description": "Set the flat-rate shipping price for a store, creating the shipping zone if it does not exist yet.", "method": "POST", "path": "/api/ecommerce/v1/stores/{store_id}/shipping", "inputSchema": { "type": "object", "properties": { "store_id": { "type": "string", "description": "The ID of the store to configure shipping for." }, "price": { "type": "integer", "description": "Flat shipping rate in the smallest currency unit (e.g. cents). Use 0 for free shipping." } }, "required": [ "store_id", "price" ] }, "security": [ { "apiToken": [] } ], "group": "ecommerce" }, { "name": "ecommerce_deleteStoreV1", "description": "Soft-delete a store owned by your account.\n\nThe underlying store data is preserved; only the store is marked as deleted.", "method": "DELETE", "path": "/api/ecommerce/v1/stores/{store_id}", "inputSchema": { "type": "object", "properties": { "store_id": { "type": "string", "description": "The ID of the store to delete." } }, "required": [ "store_id" ] }, "security": [ { "apiToken": [] } ], "group": "ecommerce" }, { "name": "ecommerce_getStoresV1", "description": "Retrieve the stores associated with your account.", "method": "GET", "path": "/api/ecommerce/v1/stores", "inputSchema": { "type": "object", "properties": { "page": { "type": "integer", "description": "Page number" } }, "required": [] }, "security": [ { "apiToken": [] } ], "group": "ecommerce" }, { "name": "ecommerce_createStoreV1", "description": "Create a new store for your account.\n\nA primary sales channel is created alongside the store.", "method": "POST", "path": "/api/ecommerce/v1/stores", "inputSchema": { "type": "object", "properties": { "name": { "type": "string", "description": "name parameter" }, "country_code": { "type": "string", "description": "ISO 3166-1 alpha-2 country code." }, "company_email": { "type": "string", "description": "company_email parameter" }, "company_name": { "type": "string", "description": "company_name parameter" }, "language": { "type": "string", "description": "ISO 639-1 language code." }, "sales_channel": { "type": "object", "description": "sales_channel parameter", "properties": { "type": { "type": "string", "description": "Sales channel type. Only \"custom\" channels can be created via the API.", "enum": [ "custom" ] }, "external_id": { "type": "string", "description": "External identifier for the sales channel." } } } }, "required": [] }, "security": [ { "apiToken": [] } ], "group": "ecommerce" }, { "name": "ecommerce_getStoreMetadataV1", "description": "Get a store's readiness metadata: whether payment methods and shipping are configured,\nplus its default currency. Useful to verify prerequisites before building a storefront.", "method": "GET", "path": "/api/ecommerce/v1/stores/{store_id}/metadata", "inputSchema": { "type": "object", "properties": { "store_id": { "type": "string", "description": "The ID of the store to read metadata for." } }, "required": [ "store_id" ] }, "security": [ { "apiToken": [] } ], "group": "ecommerce" }, { "name": "ecommerce_updateProductVariantsInBatchV1", "description": "Update up to 100 existing variants in place by id — title, inventory, stock tracking and\nprices. Variants omitted from the request are left untouched. Prices replace the variant's\nexisting prices in full. Returns the updated variants.", "method": "PATCH", "path": "/api/ecommerce/v1/stores/{store_id}/products/{product_id}/variants/batch", "inputSchema": { "type": "object", "properties": { "store_id": { "type": "string", "description": "The ID of the store that owns the product." }, "product_id": { "type": "string", "description": "The ID of the product whose variants are being updated." }, "variants": { "type": "array", "description": "Variants to update in place by id, up to 100. Variants omitted from the list are left untouched.", "items": { "type": "object", "description": "variants parameter", "properties": { "variant_id": { "type": "string", "description": "The id of the variant to update." }, "title": { "type": "string", "description": "The variant title." }, "inventory_quantity": { "type": "integer", "description": "Units in stock." }, "manage_inventory": { "type": "boolean", "description": "Whether stock is tracked for this variant." }, "prices": { "type": "array", "description": "The full list of prices for the variant, replacing the existing ones. A free item is amount: 0.", "items": { "type": "object", "description": "prices parameter", "properties": { "amount": { "type": "integer", "description": "Price in the smallest currency unit (e.g. cents)." }, "sale_amount": { "type": "integer", "description": "Optional sale price in the smallest currency unit; must be lower than amount." }, "currency": { "type": "string", "description": "ISO 4217 currency code. Defaults to the store's default currency." } }, "required": [ "amount" ] } } }, "required": [ "variant_id" ] } } }, "required": [ "store_id", "product_id", "variants" ] }, "security": [ { "apiToken": [] } ], "group": "ecommerce" }, { "name": "ecommerce_deleteAProductVariantV1", "description": "Delete a single variant from the product.", "method": "DELETE", "path": "/api/ecommerce/v1/stores/{store_id}/products/{product_id}/variants/{variant_id}", "inputSchema": { "type": "object", "properties": { "store_id": { "type": "string", "description": "The ID of the store that owns the product." }, "product_id": { "type": "string", "description": "The ID of the product that owns the variant." }, "variant_id": { "type": "string", "description": "The ID of the variant to delete." } }, "required": [ "store_id", "product_id", "variant_id" ] }, "security": [ { "apiToken": [] } ], "group": "ecommerce" }, { "name": "ecommerce_listProductVariantsV1", "description": "List a product's variants, ordered by rank, with their options, prices and inventory.\nPrices are integers in the smallest currency unit and live on variants.", "method": "GET", "path": "/api/ecommerce/v1/stores/{store_id}/products/{product_id}/variants", "inputSchema": { "type": "object", "properties": { "store_id": { "type": "string", "description": "The ID of the store that owns the product." }, "product_id": { "type": "string", "description": "The ID of the product to list variants for." }, "page": { "type": "integer", "description": "Page number" } }, "required": [ "store_id", "product_id" ] }, "security": [ { "apiToken": [] } ], "group": "ecommerce" }, { "name": "ecommerce_createAProductVariantV1", "description": "Add a variant to a product along one or more option dimensions (e.g. Size, Color). Options\nmissing from the product are created automatically; provide a value for every option the\nproduct already has. Prices are integers in the smallest currency unit and default to the\nstore currency. Returns the created variant.", "method": "POST", "path": "/api/ecommerce/v1/stores/{store_id}/products/{product_id}/variants", "inputSchema": { "type": "object", "properties": { "store_id": { "type": "string", "description": "The ID of the store that owns the product." }, "product_id": { "type": "string", "description": "The ID of the product to add the variant to." }, "title": { "type": "string", "description": "The variant title. Defaults to the option values joined with ' / ' (e.g. 'Red / L')." }, "sku": { "type": "string", "description": "The variant SKU." }, "options": { "type": "array", "description": "Option name/value pairs that distinguish this variant, e.g. [{name: Size, value: M}]. Options missing from the product are created; provide a value for every option the product already has.", "items": { "type": "object", "description": "options parameter", "properties": { "name": { "type": "string", "description": "Option name, e.g. Size." }, "value": { "type": "string", "description": "Option value for this variant, e.g. M." } }, "required": [ "name", "value" ] } }, "prices": { "type": "array", "description": "Prices per currency. Amounts are integers in the smallest currency unit. A free item is amount: 0.", "items": { "type": "object", "description": "prices parameter", "properties": { "amount": { "type": "integer", "description": "Price in the smallest currency unit (e.g. cents)." }, "sale_amount": { "type": "integer", "description": "Optional sale price in the smallest currency unit; must be lower than amount." }, "currency": { "type": "string", "description": "ISO 4217 currency code. Defaults to the store's default currency when omitted." } }, "required": [ "amount" ] } }, "inventory_quantity": { "type": "integer", "description": "Units in stock. Defaults to 0." }, "manage_inventory": { "type": "boolean", "description": "Whether stock is tracked for this variant. Defaults to false." } }, "required": [ "store_id", "product_id", "options" ] }, "security": [ { "apiToken": [] } ], "group": "ecommerce" }, { "name": "horizons_createWebsiteV1", "description": "Create new Hostinger Horizons website from the given message.\\n\nUse this tool when user asks you to create a website, landing page, blog\nor any other type of application.\\n\nThis tool initiates the website creation process and returns a website URL and ID.\nThe generation happens asynchronously.\\n\nAfter invoking this tool, your chat reply must be EXACTLY 1 sentence summarizing\nthat Hostinger Horizons is now creating their website and it will be ready in a few minutes\nand you should provide the website URL to the user immediately\nDo not write code.\\n\\nTo edit afterwards, users must go to Hostinger Horizons interface\nin the provided website URL.\nIf the tool call fails with an error, you should provide a clear explanation of the error\nand do not generate code yourself in the chat.\n\\n\nTECHNOLOGY STACK CONSTRAINTS (STRICTLY ENFORCED):\\n\nThe environment is limited to the following technologies.\nYou MUST NOT use, suggest, or implement any technology outside this list:\\n\n\\n\n- Language: JavaScript ONLY.\n- Languages like TypeScript, Rust, Python, Java, PHP, etc., are STRICTLY PROHIBITED.\\n\n- Framework: React.\\n\n- Navigation: React Router.\\n\n- Styling: TailwindCSS.\\n\n- Components: shadcn/ui (built with @radix-ui primitives).\\n\n- Icons: Lucide React.\\n\n- Animations: Framer Motion.\\n\n\\n\nBACKEND & DATA STORAGE:\\n\n- Horizons integrated backend is the EXCLUSIVE solution for persistent data storage,\nauthentication, and database needs.\\n\n- Local databases (SQLite, MySQL, etc.) are STRICTLY PROHIBITED.\\n\n- Third-party services (Firebase, AWS Amplify) are allowed ONLY if explicitly requested by the user.\\n\n\\n\nMAPS:\\n\n- OpenStreetMap is the default provider.\\n\n- Alternative providers (Google Maps, Mapbox) are allowed ONLY if explicitly requested by the user.\\n", "method": "POST", "path": "/api/horizons/v1/websites", "inputSchema": { "type": "object", "properties": { "message": { "type": "array", "description": "message parameter", "items": { "type": "object", "description": "message parameter", "properties": { "type": { "type": "string", "description": "type parameter", "enum": [ "text" ] }, "text": { "type": "string", "description": "Detailed project specification.\nInclude purpose, key features, user flows, data models, and design preferences.\nThe specification should be detailed and comprehensive, covering all aspects of the project." } }, "required": [ "type", "text" ] } } }, "required": [ "message" ] }, "security": [ { "apiToken": [] } ], "group": "horizons" }, { "name": "horizons_getWebsiteV1", "description": "Get a link for the user to edit their website in Hostinger Horizons interface.\\n\nUse this tool when user wants to modify, edit or add new features to an existing website.\\n\nWebsites can only be edited in Hostinger Horizons interface in the provided website URL.", "method": "GET", "path": "/api/horizons/v1/websites/{websiteId}", "inputSchema": { "type": "object", "properties": { "websiteId": { "type": "string", "description": "The website ID" } }, "required": [ "websiteId" ] }, "security": [ { "apiToken": [] } ], "group": "horizons" }, { "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" }, { "name": "mail_createAliasV1", "description": "Create an alias for the given mailbox. The alias address is formed\nfrom the given local part and the domain of the mailbox. Messages\nsent to the alias are delivered to the mailbox.", "method": "POST", "path": "/api/mail/v1/mailboxes/{mailboxId}/aliases", "inputSchema": { "type": "object", "properties": { "mailboxId": { "type": "string", "description": "Mailbox resource ID" }, "local_part": { "type": "string", "description": "Local part of the alias address (the part before the @). The domain is taken from the mailbox. Case-insensitive and stored lowercase; must start and end with a letter or digit; single dots, underscores and hyphens are allowed in between." } }, "required": [ "mailboxId", "local_part" ] }, "security": [ { "apiToken": [] } ], "group": "mail" }, { "name": "mail_deleteAliasV1", "description": "Delete an alias. Messages sent to the alias address are no longer\ndelivered to the mailbox.", "method": "DELETE", "path": "/api/mail/v1/aliases/{aliasId}", "inputSchema": { "type": "object", "properties": { "aliasId": { "type": "string", "description": "Alias resource ID" } }, "required": [ "aliasId" ] }, "security": [ { "apiToken": [] } ], "group": "mail" }, { "name": "mail_listAliasesV1", "description": "Retrieve a paginated list of aliases across all mailboxes of a mail\norder.", "method": "GET", "path": "/api/mail/v1/orders/{orderId}/aliases", "inputSchema": { "type": "object", "properties": { "orderId": { "type": "string", "description": "Order resource ID" }, "page": { "type": "integer", "description": "Page number" }, "per_page": { "type": "integer", "description": "Number of items per page" } }, "required": [ "orderId" ] }, "security": [ { "apiToken": [] } ], "group": "mail" }, { "name": "mail_createAPITokenV1", "description": "Create an API token for the given mail order. The token grants access\nto the [Hostinger Email API](https://api.mail.hostinger.com/), where\nyou can provision and manage the mailboxes it is scoped to.\n\nThe plaintext token is returned only in this response, never again.\nA maximum of 10 tokens can exist per order. Use\n`scope.has_all_mailboxes` to cover all current and future mailboxes,\nor list specific mailboxes in `scope.mailbox_ids`.", "method": "POST", "path": "/api/mail/v1/orders/{orderId}/api-tokens", "inputSchema": { "type": "object", "properties": { "orderId": { "type": "string", "description": "Order resource ID" }, "name": { "type": "string", "description": "Human-readable label for this token" }, "scope": { "type": "object", "description": "Mailbox scope this token can access", "properties": { "has_all_mailboxes": { "type": "boolean", "description": "Grant access to all current and future mailboxes of the order" }, "mailbox_ids": { "type": "array", "description": "Required when `has_all_mailboxes` is false. Mailbox resource IDs of this order.", "items": { "type": "string", "description": "mailbox_ids parameter" } } }, "required": [ "has_all_mailboxes" ] } }, "required": [ "orderId", "name", "scope" ] }, "security": [ { "apiToken": [] } ], "group": "mail" }, { "name": "mail_revokeAPITokenV1", "description": "Revoke an API token. The token immediately loses access to the\n[Hostinger Email API](https://api.mail.hostinger.com/). This action\ncannot be undone.", "method": "DELETE", "path": "/api/mail/v1/api-tokens/{tokenId}", "inputSchema": { "type": "object", "properties": { "tokenId": { "type": "string", "description": "API token ID (returned when the token was created)" } }, "required": [ "tokenId" ] }, "security": [ { "apiToken": [] } ], "group": "mail" }, { "name": "mail_listAPITokensV1", "description": "Retrieve a paginated list of\n[Hostinger Email API](https://api.mail.hostinger.com/) tokens across\nall your mail orders, optionally filtered by order. Plaintext tokens\nare never included; they are returned only when a token is created.", "method": "GET", "path": "/api/mail/v1/api-tokens", "inputSchema": { "type": "object", "properties": { "order_id": { "type": "string", "description": "Filter tokens by order resource ID. Single value or comma-separated list." }, "page": { "type": "integer", "description": "Page number" }, "per_page": { "type": "integer", "description": "Number of items per page" } }, "required": [] }, "security": [ { "apiToken": [] } ], "group": "mail" }, { "name": "mail_createAutoreplyV1", "description": "Create an automatic reply for the given mailbox. A mailbox can have\nonly one autoreply. Omit `starts_at` to activate the autoreply\nimmediately and omit `ends_at` to keep it active indefinitely.", "method": "POST", "path": "/api/mail/v1/mailboxes/{mailboxId}/autoreplies", "inputSchema": { "type": "object", "properties": { "mailboxId": { "type": "string", "description": "Mailbox resource ID" }, "subject": { "type": "string", "description": "Subject of the automatic reply" }, "body": { "type": "string", "description": "Body of the automatic reply" }, "display_name": { "type": "string", "description": "Sender display name used for the reply" }, "starts_at": { "type": "string", "description": "When the autoreply becomes active. Defaults to now." }, "ends_at": { "type": "string", "description": "When the autoreply stops. Omit for an indefinite autoreply." } }, "required": [ "mailboxId", "subject", "body" ] }, "security": [ { "apiToken": [] } ], "group": "mail" }, { "name": "mail_updateAutoreplyV1", "description": "Replace the autoreply with the given content and schedule. Omitted\noptional fields are cleared: omit `starts_at` to activate the\nautoreply immediately and omit `ends_at` to keep it active\nindefinitely.", "method": "PUT", "path": "/api/mail/v1/autoreplies/{autoreplyId}", "inputSchema": { "type": "object", "properties": { "autoreplyId": { "type": "string", "description": "Autoreply resource ID" }, "subject": { "type": "string", "description": "Subject of the automatic reply" }, "body": { "type": "string", "description": "Body of the automatic reply" }, "display_name": { "type": "string", "description": "Sender display name used for the reply" }, "starts_at": { "type": "string", "description": "When the autoreply becomes active. Defaults to now." }, "ends_at": { "type": "string", "description": "When the autoreply stops. Omit for an indefinite autoreply." } }, "required": [ "autoreplyId", "subject", "body" ] }, "security": [ { "apiToken": [] } ], "group": "mail" }, { "name": "mail_deleteAutoreplyV1", "description": "Delete the autoreply of a mailbox. The mailbox stops sending\nautomatic replies immediately.", "method": "DELETE", "path": "/api/mail/v1/autoreplies/{autoreplyId}", "inputSchema": { "type": "object", "properties": { "autoreplyId": { "type": "string", "description": "Autoreply resource ID" } }, "required": [ "autoreplyId" ] }, "security": [ { "apiToken": [] } ], "group": "mail" }, { "name": "mail_listAutorepliesV1", "description": "Retrieve a paginated list of autoreplies across all mailboxes of a\nmail order.", "method": "GET", "path": "/api/mail/v1/orders/{orderId}/autoreplies", "inputSchema": { "type": "object", "properties": { "orderId": { "type": "string", "description": "Order resource ID" }, "page": { "type": "integer", "description": "Page number" }, "per_page": { "type": "integer", "description": "Number of items per page" } }, "required": [ "orderId" ] }, "security": [ { "apiToken": [] } ], "group": "mail" }, { "name": "mail_createCatchAllV1", "description": "Create a catch-all that routes all messages sent to unknown addresses\nof the domain to the given mailbox. The mailbox address receives a\nconfirmation email and the catch-all becomes active only after it is\nconfirmed. A domain can have only one catch-all.", "method": "POST", "path": "/api/mail/v1/mailboxes/{mailboxId}/catchalls", "inputSchema": { "type": "object", "properties": { "mailboxId": { "type": "string", "description": "Mailbox resource ID" } }, "required": [ "mailboxId" ] }, "security": [ { "apiToken": [] } ], "group": "mail" }, { "name": "mail_deleteCatchAllV1", "description": "Delete a catch-all. Messages sent to unknown addresses of the domain\nare no longer routed to the mailbox.", "method": "DELETE", "path": "/api/mail/v1/catchalls/{catchallId}", "inputSchema": { "type": "object", "properties": { "catchallId": { "type": "string", "description": "Catch-all resource ID" } }, "required": [ "catchallId" ] }, "security": [ { "apiToken": [] } ], "group": "mail" }, { "name": "mail_listCatchAllsV1", "description": "Retrieve a paginated list of catch-alls across all mailboxes of a\nmail order.", "method": "GET", "path": "/api/mail/v1/orders/{orderId}/catchalls", "inputSchema": { "type": "object", "properties": { "orderId": { "type": "string", "description": "Order resource ID" }, "page": { "type": "integer", "description": "Page number" }, "per_page": { "type": "integer", "description": "Number of items per page" } }, "required": [ "orderId" ] }, "security": [ { "apiToken": [] } ], "group": "mail" }, { "name": "mail_resendCatchAllConfirmationV1", "description": "Resend the confirmation email to the mailbox address of an\nunconfirmed catch-all.", "method": "POST", "path": "/api/mail/v1/catchalls/{catchallId}/confirmation/resend", "inputSchema": { "type": "object", "properties": { "catchallId": { "type": "string", "description": "Catch-all resource ID" } }, "required": [ "catchallId" ] }, "security": [ { "apiToken": [] } ], "group": "mail" }, { "name": "mail_createForwarderV1", "description": "Create a forwarder from the given mailbox to the destination address.\nThe destination receives a confirmation email and forwarding becomes\nactive only after it is confirmed.", "method": "POST", "path": "/api/mail/v1/mailboxes/{mailboxId}/forwarders", "inputSchema": { "type": "object", "properties": { "mailboxId": { "type": "string", "description": "Mailbox resource ID" }, "destination": { "type": "string", "description": "Email address the messages will be forwarded to" }, "is_keep_copy_enabled": { "type": "boolean", "description": "Whether to keep a copy of forwarded messages in the mailbox. Defaults to false." } }, "required": [ "mailboxId", "destination" ] }, "security": [ { "apiToken": [] } ], "group": "mail" }, { "name": "mail_deleteForwarderV1", "description": "Delete a forwarder. The mailbox stops forwarding messages to the\ndestination address immediately.", "method": "DELETE", "path": "/api/mail/v1/forwarders/{forwarderId}", "inputSchema": { "type": "object", "properties": { "forwarderId": { "type": "string", "description": "Forwarder resource ID" } }, "required": [ "forwarderId" ] }, "security": [ { "apiToken": [] } ], "group": "mail" }, { "name": "mail_listForwardersV1", "description": "Retrieve a paginated list of forwarders across all mailboxes of a\nmail order.", "method": "GET", "path": "/api/mail/v1/orders/{orderId}/forwarders", "inputSchema": { "type": "object", "properties": { "orderId": { "type": "string", "description": "Order resource ID" }, "page": { "type": "integer", "description": "Page number" }, "per_page": { "type": "integer", "description": "Number of items per page" } }, "required": [ "orderId" ] }, "security": [ { "apiToken": [] } ], "group": "mail" }, { "name": "mail_resendForwarderConfirmationV1", "description": "Resend the confirmation email to the destination address of an\nunconfirmed forwarder.", "method": "POST", "path": "/api/mail/v1/forwarders/{forwarderId}/confirmation/resend", "inputSchema": { "type": "object", "properties": { "forwarderId": { "type": "string", "description": "Forwarder resource ID" } }, "required": [ "forwarderId" ] }, "security": [ { "apiToken": [] } ], "group": "mail" }, { "name": "mail_updateForwarderKeepCopySettingV1", "description": "Enable or disable keeping a copy of forwarded messages in the\nmailbox.", "method": "PATCH", "path": "/api/mail/v1/forwarders/{forwarderId}/keep-copy", "inputSchema": { "type": "object", "properties": { "forwarderId": { "type": "string", "description": "Forwarder resource ID" }, "is_keep_copy_enabled": { "type": "boolean", "description": "Whether to keep a copy of forwarded messages in the mailbox" } }, "required": [ "forwarderId", "is_keep_copy_enabled" ] }, "security": [ { "apiToken": [] } ], "group": "mail" }, { "name": "mail_listAccessLogsV1", "description": "Retrieve paginated access logs for the domain attached to the given\nmail order. Supports filtering by account, date range, protocol,\nstatus, and deletion flag. Results are sorted by timestamp descending.", "method": "GET", "path": "/api/mail/v1/orders/{orderId}/logs/access", "inputSchema": { "type": "object", "properties": { "orderId": { "type": "string", "description": "Order resource ID" }, "account": { "type": "string", "description": "Filter log entries by a specific email account" }, "date": { "type": "string", "description": "Exact date filter (YYYY-MM-DD). Takes precedence over `from_date`/`to_date` when both are given." }, "from_date": { "type": "string", "description": "Date range start (RFC 3339)" }, "to_date": { "type": "string", "description": "Date range end (RFC 3339)" }, "status": { "type": "string", "description": "Filter log entries by status", "enum": [ "Successful", "Failed" ] }, "protocol": { "type": "string", "description": "Filter access log entries by protocol", "enum": [ "imap", "pop3", "smtp" ] }, "has_deletions": { "type": "boolean", "description": "Filter access log entries by whether the session had deletions" }, "page": { "type": "integer", "description": "Page number" }, "per_page": { "type": "integer", "description": "Number of items per page" } }, "required": [ "orderId" ] }, "security": [ { "apiToken": [] } ], "group": "mail" }, { "name": "mail_listActionLogsV1", "description": "Retrieve paginated account action logs (administrative and user\nactions) for the given mail order. Supports filtering by account,\ndate range, and status. Results are sorted by timestamp descending.", "method": "GET", "path": "/api/mail/v1/orders/{orderId}/logs/action", "inputSchema": { "type": "object", "properties": { "orderId": { "type": "string", "description": "Order resource ID" }, "account": { "type": "string", "description": "Filter log entries by a specific email account" }, "date": { "type": "string", "description": "Exact date filter (YYYY-MM-DD). Takes precedence over `from_date`/`to_date` when both are given." }, "from_date": { "type": "string", "description": "Date range start (RFC 3339)" }, "to_date": { "type": "string", "description": "Date range end (RFC 3339)" }, "status": { "type": "string", "description": "Filter log entries by status", "enum": [ "Successful", "Failed" ] }, "page": { "type": "integer", "description": "Page number" }, "per_page": { "type": "integer", "description": "Number of items per page" } }, "required": [ "orderId" ] }, "security": [ { "apiToken": [] } ], "group": "mail" }, { "name": "mail_listInboundLogsV1", "description": "Retrieve paginated inbound (received mail) delivery logs for the\ndomain attached to the given mail order. Supports filtering by\naccount, date range, status, sender, and recipient. Results are\nsorted by timestamp descending.", "method": "GET", "path": "/api/mail/v1/orders/{orderId}/logs/inbound", "inputSchema": { "type": "object", "properties": { "orderId": { "type": "string", "description": "Order resource ID" }, "account": { "type": "string", "description": "Filter log entries by a specific email account" }, "date": { "type": "string", "description": "Exact date filter (YYYY-MM-DD). Takes precedence over `from_date`/`to_date` when both are given." }, "from_date": { "type": "string", "description": "Date range start (RFC 3339)" }, "to_date": { "type": "string", "description": "Date range end (RFC 3339)" }, "status": { "type": "string", "description": "Filter log entries by status", "enum": [ "Successful", "Failed" ] }, "sender": { "type": "string", "description": "Filter log entries by sender. Accepts a full email address or a domain." }, "recipient": { "type": "string", "description": "Filter log entries by recipient. Accepts a full email address or a domain." }, "page": { "type": "integer", "description": "Page number" }, "per_page": { "type": "integer", "description": "Number of items per page" } }, "required": [ "orderId" ] }, "security": [ { "apiToken": [] } ], "group": "mail" }, { "name": "mail_listMailboxActionLogsV1", "description": "Retrieve paginated mailbox action logs (message and mailbox events)\nfor a mailbox in the given mail order. The mailbox email must belong\nto the order's domain. Supports date range and event type filters.\nResults are sorted by timestamp descending.", "method": "GET", "path": "/api/mail/v1/orders/{orderId}/logs/mailbox-actions", "inputSchema": { "type": "object", "properties": { "orderId": { "type": "string", "description": "Order resource ID" }, "email": { "type": "string", "description": "Mailbox email address. Must belong to the order's domain." }, "date": { "type": "string", "description": "Exact date filter (YYYY-MM-DD). Takes precedence over `from_date`/`to_date` when both are given." }, "from_date": { "type": "string", "description": "Date range start (RFC 3339)" }, "to_date": { "type": "string", "description": "Date range end (RFC 3339)" }, "event": { "type": "string", "description": "Filter mailbox action log entries by event type", "enum": [ "MessageNew", "MessageRead", "MessageAppend", "MessageExpunge", "MailboxCreate", "MailboxDelete", "MailboxRename" ] }, "page": { "type": "integer", "description": "Page number" }, "per_page": { "type": "integer", "description": "Number of items per page" } }, "required": [ "orderId", "email" ] }, "security": [ { "apiToken": [] } ], "group": "mail" }, { "name": "mail_listOutboundLogsV1", "description": "Retrieve paginated outbound (sent mail) delivery logs for the domain\nattached to the given mail order. Supports filtering by account, date\nrange, status, sender, and recipient. Results are sorted by timestamp\ndescending.", "method": "GET", "path": "/api/mail/v1/orders/{orderId}/logs/outbound", "inputSchema": { "type": "object", "properties": { "orderId": { "type": "string", "description": "Order resource ID" }, "account": { "type": "string", "description": "Filter log entries by a specific email account" }, "date": { "type": "string", "description": "Exact date filter (YYYY-MM-DD). Takes precedence over `from_date`/`to_date` when both are given." }, "from_date": { "type": "string", "description": "Date range start (RFC 3339)" }, "to_date": { "type": "string", "description": "Date range end (RFC 3339)" }, "status": { "type": "string", "description": "Filter log entries by status", "enum": [ "Successful", "Failed" ] }, "sender": { "type": "string", "description": "Filter log entries by sender. Accepts a full email address or a domain." }, "recipient": { "type": "string", "description": "Filter log entries by recipient. Accepts a full email address or a domain." }, "page": { "type": "integer", "description": "Page number" }, "per_page": { "type": "integer", "description": "Number of items per page" } }, "required": [ "orderId" ] }, "security": [ { "apiToken": [] } ], "group": "mail" }, { "name": "mail_listMailboxesV1", "description": "Retrieve a paginated list of mailboxes belonging to a mail order.\n\nUse this endpoint to monitor mailboxes of your mail service, including\ntheir status, enabled protocols, attached resource counts, and\nperiodically synced usage numbers (usage may lag behind live values).", "method": "GET", "path": "/api/mail/v1/orders/{orderId}/mailboxes", "inputSchema": { "type": "object", "properties": { "orderId": { "type": "string", "description": "Order resource ID" }, "search": { "type": "string", "description": "Filter mailboxes whose email address contains the given string" }, "sort": { "type": "string", "description": "Sort mailboxes by field. Prefix with `-` for descending order.", "enum": [ "address", "-address" ] }, "page": { "type": "integer", "description": "Page number" }, "per_page": { "type": "integer", "description": "Number of items per page" } }, "required": [ "orderId" ] }, "security": [ { "apiToken": [] } ], "group": "mail" }, { "name": "mail_createMailboxV1", "description": "Create a mailbox under the given mail order. The full email address is\ncomposed from the given local part and the domain of the order.", "method": "POST", "path": "/api/mail/v1/orders/{orderId}/mailboxes", "inputSchema": { "type": "object", "properties": { "orderId": { "type": "string", "description": "Order resource ID" }, "local_part": { "type": "string", "description": "Local part of the mailbox address (the part before the @). The domain is taken from the order. Must start and end with a letter or digit; single dots, underscores and hyphens are allowed in between." }, "password": { "type": "string", "description": "Mailbox password. Minimum 8 characters with uppercase, lowercase, number and special character." } }, "required": [ "orderId", "local_part", "password" ] }, "security": [ { "apiToken": [] } ], "group": "mail" }, { "name": "mail_deleteMailboxV1", "description": "Delete a mailbox. The mailbox is soft-deleted and stays restorable\nfor a limited period before it is permanently removed.", "method": "DELETE", "path": "/api/mail/v1/mailboxes/{mailboxId}", "inputSchema": { "type": "object", "properties": { "mailboxId": { "type": "string", "description": "Mailbox resource ID" } }, "required": [ "mailboxId" ] }, "security": [ { "apiToken": [] } ], "group": "mail" }, { "name": "mail_changeMailboxPasswordV1", "description": "Change the password of a mailbox.", "method": "PATCH", "path": "/api/mail/v1/mailboxes/{mailboxId}/password", "inputSchema": { "type": "object", "properties": { "mailboxId": { "type": "string", "description": "Mailbox resource ID" }, "password": { "type": "string", "description": "New mailbox password. Minimum 8 characters with uppercase, lowercase, number and special character; must not be a commonly used password." } }, "required": [ "mailboxId", "password" ] }, "security": [ { "apiToken": [] } ], "group": "mail" }, { "name": "mail_listOrdersV1", "description": "Retrieve a paginated list of mail orders associated with your account.\n\nUse this endpoint to monitor your mail services, including their status,\nplan, attached domain, and expiration details.", "method": "GET", "path": "/api/mail/v1/orders", "inputSchema": { "type": "object", "properties": { "domain": { "type": "string", "description": "Filter orders by domain name (exact match)" }, "status": { "type": "string", "description": "Filter orders by status", "enum": [ "pending_setup", "active", "suspended" ] }, "is_trial": { "type": "boolean", "description": "Filter orders by trial state" }, "sort": { "type": "string", "description": "Sort orders by field. Prefix with `-` for descending order.", "enum": [ "created_at", "-created_at", "expires_at", "-expires_at" ] }, "page": { "type": "integer", "description": "Page number" }, "per_page": { "type": "integer", "description": "Number of items per page" } }, "required": [] }, "security": [ { "apiToken": [] } ], "group": "mail" }, { "name": "mail_getOrderPlanV1", "description": "Retrieve the plan the given mail order was purchased with, including\ndomain-level and mailbox-level quotas, limits, and protocol\navailability.", "method": "GET", "path": "/api/mail/v1/orders/{orderId}/plan", "inputSchema": { "type": "object", "properties": { "orderId": { "type": "string", "description": "Order resource ID" } }, "required": [ "orderId" ] }, "security": [ { "apiToken": [] } ], "group": "mail" }, { "name": "mail_createWebhookV1", "description": "Create a webhook for the given mailbox. The generated secret is\nreturned only in this response and is sent as a bearer token with\nevery delivery.", "method": "POST", "path": "/api/mail/v1/mailboxes/{mailboxId}/webhooks", "inputSchema": { "type": "object", "properties": { "mailboxId": { "type": "string", "description": "Mailbox resource ID" }, "name": { "type": "string", "description": "Human-readable name for this webhook" }, "description": { "type": "string", "description": "Optional description of the webhook's purpose" }, "events": { "type": "array", "description": "Events that trigger this webhook", "items": { "type": "string", "description": "events parameter", "enum": [ "message.received" ] } }, "status": { "type": "string", "description": "Initial status of the webhook", "enum": [ "active", "disabled", "paused" ] }, "url": { "type": "string", "description": "Publicly reachable URL that receives the webhook POST requests" } }, "required": [ "mailboxId", "name", "events", "url" ] }, "security": [ { "apiToken": [] } ], "group": "mail" }, { "name": "mail_listWebhookDeliveryLogsV1", "description": "Retrieve a paginated list of webhook delivery logs for the given mail\norder, including delivery outcome, duration, and retry counts.\nSupports filtering by mailbox.", "method": "GET", "path": "/api/mail/v1/orders/{orderId}/webhooks/delivery-logs", "inputSchema": { "type": "object", "properties": { "orderId": { "type": "string", "description": "Order resource ID" }, "mailbox_id": { "type": "string", "description": "Filter by the mailbox resource ID the webhooks are attached to" }, "page": { "type": "integer", "description": "Page number" }, "per_page": { "type": "integer", "description": "Number of items per page" } }, "required": [ "orderId" ] }, "security": [ { "apiToken": [] } ], "group": "mail" }, { "name": "mail_getWebhookV1", "description": "Retrieve the details of a single webhook. The webhook secret is never\nincluded; it is returned only when a webhook is created or its secret\nis regenerated.", "method": "GET", "path": "/api/mail/v1/webhooks/{webhookId}", "inputSchema": { "type": "object", "properties": { "webhookId": { "type": "string", "description": "Webhook ID (returned when the webhook was created)" } }, "required": [ "webhookId" ] }, "security": [ { "apiToken": [] } ], "group": "mail" }, { "name": "mail_deleteWebhookV1", "description": "Permanently delete a webhook. This action cannot be undone. After\ndeletion the URL no longer receives event notifications.", "method": "DELETE", "path": "/api/mail/v1/webhooks/{webhookId}", "inputSchema": { "type": "object", "properties": { "webhookId": { "type": "string", "description": "Webhook ID (returned when the webhook was created)" } }, "required": [ "webhookId" ] }, "security": [ { "apiToken": [] } ], "group": "mail" }, { "name": "mail_updateWebhookV1", "description": "Partially update a webhook. Only the fields included in the request\nbody are changed; omitted fields retain their current values. Pass\n`\"description\": null` to clear the description.", "method": "PATCH", "path": "/api/mail/v1/webhooks/{webhookId}", "inputSchema": { "type": "object", "properties": { "webhookId": { "type": "string", "description": "Webhook ID (returned when the webhook was created)" }, "name": { "type": "string", "description": "New human-readable name for the webhook" }, "description": { "type": "string", "description": "New description, or null to clear it" }, "events": { "type": "array", "description": "Replaces the full list of subscribed events", "items": { "type": "string", "description": "events parameter", "enum": [ "message.received" ] } }, "status": { "type": "string", "description": "New status for the webhook", "enum": [ "active", "disabled", "paused" ] }, "url": { "type": "string", "description": "New URL to deliver events to" } }, "required": [ "webhookId" ] }, "security": [ { "apiToken": [] } ], "group": "mail" }, { "name": "mail_listWebhooksV1", "description": "Retrieve a paginated list of webhooks belonging to the given mail\norder. Supports filtering by mailbox and status. The webhook secret\nis never included; it is returned only when a webhook is created or\nits secret is regenerated.", "method": "GET", "path": "/api/mail/v1/orders/{orderId}/webhooks", "inputSchema": { "type": "object", "properties": { "orderId": { "type": "string", "description": "Order resource ID" }, "mailbox_id": { "type": "string", "description": "Filter by the mailbox resource ID the webhooks are attached to" }, "status": { "type": "string", "description": "Filter webhooks by status", "enum": [ "active", "disabled", "paused" ] }, "page": { "type": "integer", "description": "Page number" }, "per_page": { "type": "integer", "description": "Number of items per page" } }, "required": [ "orderId" ] }, "security": [ { "apiToken": [] } ], "group": "mail" }, { "name": "mail_regenerateWebhookSecretV1", "description": "Regenerate the secret of a webhook. The previous secret is\nimmediately invalidated. The new secret is returned only in this\nresponse and is sent as a bearer token with every delivery.", "method": "POST", "path": "/api/mail/v1/webhooks/{webhookId}/regenerate-secret", "inputSchema": { "type": "object", "properties": { "webhookId": { "type": "string", "description": "Webhook ID (returned when the webhook was created)" } }, "required": [ "webhookId" ] }, "security": [ { "apiToken": [] } ], "group": "mail" }, { "name": "mail_testWebhookV1", "description": "Send a test delivery to the webhook URL and return the result. Test\nrequests are rate limited upstream.", "method": "POST", "path": "/api/mail/v1/webhooks/{webhookId}/test", "inputSchema": { "type": "object", "properties": { "webhookId": { "type": "string", "description": "Webhook ID (returned when the webhook was created)" } }, "required": [ "webhookId" ] }, "security": [ { "apiToken": [] } ], "group": "mail" }, { "name": "reach_getAutomationDetailsV1", "description": "Get a single automation with the counts of contacts that entered it, are moving through it,\nfinished it or failed on the way.\n\nThis describes the automation itself. To see the workflow it runs, use the steps endpoint.", "method": "GET", "path": "/api/reach/v1/profiles/{profileUuid}/automations/{automationUuid}", "inputSchema": { "type": "object", "properties": { "profileUuid": { "type": "string", "description": "Profile uuid parameter" }, "automationUuid": { "type": "string", "description": "Automation uuid parameter" } }, "required": [ "profileUuid", "automationUuid" ] }, "security": [ { "apiToken": [] } ], "group": "reach" }, { "name": "reach_listAutomationsV1", "description": "Get a paginated list of the automations in a profile.\n\nEvery automation comes with the counts of contacts that entered it, are moving through it,\nfinished it or failed on the way. Those counts describe the contact journey and are not\nemail engagement metrics - for opens, clicks and unsubscribes use the campaign statistics\nendpoint instead.", "method": "GET", "path": "/api/reach/v1/profiles/{profileUuid}/automations", "inputSchema": { "type": "object", "properties": { "profileUuid": { "type": "string", "description": "Profile uuid parameter" }, "status": { "type": "string", "description": "Filter automations by status.\n\nThere is no `completed` status. An automation that has finished for every contact still\nreports `active`.", "enum": [ "active", "paused", "draft" ] }, "sort_direction": { "type": "string", "description": "Order automations by creation date. Newest first unless set to `asc`.", "enum": [ "asc", "desc" ] }, "page": { "type": "integer", "description": "Page number" }, "per_page": { "type": "integer", "description": "Number of items per page" } }, "required": [ "profileUuid" ] }, "security": [ { "apiToken": [] } ], "group": "reach" }, { "name": "reach_listAutomationStepsV1", "description": "Get the workflow of an automation as a flat list of steps.\n\nThe steps form a tree rather than a straight line: follow `parent_uuid` to reconstruct the\nbranches, and use `step_order` to order the steps that share a parent. An automation with no\nsteps yet returns an empty list.", "method": "GET", "path": "/api/reach/v1/profiles/{profileUuid}/automations/{automationUuid}/steps", "inputSchema": { "type": "object", "properties": { "profileUuid": { "type": "string", "description": "Profile uuid parameter" }, "automationUuid": { "type": "string", "description": "Automation uuid parameter" } }, "required": [ "profileUuid", "automationUuid" ] }, "security": [ { "apiToken": [] } ], "group": "reach" }, { "name": "reach_getCampaignDetailsV1", "description": "Get a single campaign with its sender, subject, template reference, targeting and delivery\nprogress.\n\nThis describes how the campaign was set up and how far it has got. For opens, clicks and\nunsubscribes use the campaign statistics endpoint.", "method": "GET", "path": "/api/reach/v1/profiles/{profileUuid}/campaigns/{campaignUuid}", "inputSchema": { "type": "object", "properties": { "profileUuid": { "type": "string", "description": "Profile uuid parameter" }, "campaignUuid": { "type": "string", "description": "Campaign uuid parameter" } }, "required": [ "profileUuid", "campaignUuid" ] }, "security": [ { "apiToken": [] } ], "group": "reach" }, { "name": "reach_listCampaignsV1", "description": "Get a paginated list of the campaigns in a profile.\n\nEach campaign carries its headline engagement rates. Filter by status to find drafts,\nscheduled, sending or sent campaigns, keeping in mind that a fully sent campaign has the\nstatus `publish`. By default only regular campaigns are returned - pass `type` to get the\nemails sent by automations or the double opt-in confirmations instead.", "method": "GET", "path": "/api/reach/v1/profiles/{profileUuid}/campaigns", "inputSchema": { "type": "object", "properties": { "profileUuid": { "type": "string", "description": "Profile uuid parameter" }, "status": { "type": "string", "description": "Filter campaigns by status.\n\nA fully sent campaign has the status `publish`. There is no `sent` status, and campaigns can\nbe neither paused nor archived.", "enum": [ "draft", "scheduled", "sending", "publish", "failed" ] }, "type": { "type": "string", "description": "Filter campaigns by type.\n\nDefaults to `campaign`, which leaves out the emails sent by automations and the double\nopt-in confirmations.", "enum": [ "campaign", "automation", "double_opt_in" ] }, "sort_direction": { "type": "string", "description": "Order campaigns by creation date. Newest first unless set to `asc`.", "enum": [ "asc", "desc" ] }, "page": { "type": "integer", "description": "Page number" }, "per_page": { "type": "integer", "description": "Number of items per page" } }, "required": [ "profileUuid" ] }, "security": [ { "apiToken": [] } ], "group": "reach" }, { "name": "reach_getCampaignPerformanceV1", "description": "Get the performance of a campaign: delivery, opens, clicks and unsubscribes, with the\nmatching rates.\n\nEvery count is unique contacts rather than raw events, so a contact who opens the same email\nfive times is counted once.", "method": "GET", "path": "/api/reach/v1/profiles/{profileUuid}/campaigns/{campaignUuid}/statistics", "inputSchema": { "type": "object", "properties": { "profileUuid": { "type": "string", "description": "Profile uuid parameter" }, "campaignUuid": { "type": "string", "description": "Campaign uuid parameter" } }, "required": [ "profileUuid", "campaignUuid" ] }, "security": [ { "apiToken": [] } ], "group": "reach" }, { "name": "reach_deleteAContactV1", "description": "Delete a contact with the specified UUID.\n\nThis endpoint permanently removes a contact from the email marketing system.\n\n**Deprecated.** This endpoint cannot target a profile, so it always falls back to the\nclient's default profile and cannot delete contacts of any other profile. Use\n`DELETE /api/reach/v1/profiles/{profileUuid}/contacts/{contactUuid}` instead.", "method": "DELETE", "path": "/api/reach/v1/contacts/{uuid}", "inputSchema": { "type": "object", "properties": { "uuid": { "type": "string", "description": "UUID of the contact to delete" } }, "required": [ "uuid" ] }, "security": [ { "apiToken": [] } ], "group": "reach" }, { "name": "reach_deleteAContactFieldV1", "description": "Delete a custom contact field.\n\nEvery value contacts hold for the field is deleted with it, and for the choice types so\nare its options. The contacts themselves are not affected.", "method": "DELETE", "path": "/api/reach/v1/profiles/{profileUuid}/contacts/fields/{fieldUuid}", "inputSchema": { "type": "object", "properties": { "profileUuid": { "type": "string", "description": "Profile uuid parameter" }, "fieldUuid": { "type": "string", "description": "Contact field uuid parameter" } }, "required": [ "profileUuid", "fieldUuid" ] }, "security": [ { "apiToken": [] } ], "group": "reach" }, { "name": "reach_updateAContactFieldV1", "description": "Rename a custom contact field and, for the choice types, replace its option set.\n\nOptions carrying a uuid are kept and relabelled, options without one are created, and any\nexisting option left out of the list is deleted along with the values contacts hold for\nit. The field type and slug cannot be changed.", "method": "PATCH", "path": "/api/reach/v1/profiles/{profileUuid}/contacts/fields/{fieldUuid}", "inputSchema": { "type": "object", "properties": { "profileUuid": { "type": "string", "description": "Profile uuid parameter" }, "fieldUuid": { "type": "string", "description": "Contact field uuid parameter" }, "label": { "type": "string", "description": "label parameter" }, "options": { "type": "array", "description": "Replaces the option set when provided. Entries carrying a uuid are kept and relabelled, entries without one are created, and any existing option missing from the list is deleted along with the values contacts hold for it.", "items": { "type": "object", "description": "options parameter", "properties": { "uuid": { "type": "string", "description": "uuid parameter" }, "label": { "type": "string", "description": "label parameter" } }, "required": [ "label" ] } } }, "required": [ "profileUuid", "fieldUuid", "label" ] }, "security": [ { "apiToken": [] } ], "group": "reach" }, { "name": "reach_listContactFieldsV1", "description": "Get the custom contact fields defined in a profile.\n\nCustom fields let you store your own attributes on contacts. The returned uuids are what\nyou pass to the contact update endpoint to set values, and choice fields also list the\noptions available to pick from.", "method": "GET", "path": "/api/reach/v1/profiles/{profileUuid}/contacts/fields", "inputSchema": { "type": "object", "properties": { "profileUuid": { "type": "string", "description": "Profile uuid parameter" } }, "required": [ "profileUuid" ] }, "security": [ { "apiToken": [] } ], "group": "reach" }, { "name": "reach_createAContactFieldV1", "description": "Define a new custom contact field in a profile.\n\nThe `slug` is derived from the label and, like the field type, cannot be changed later.\nUse the returned uuid to set values on contacts.", "method": "POST", "path": "/api/reach/v1/profiles/{profileUuid}/contacts/fields", "inputSchema": { "type": "object", "properties": { "profileUuid": { "type": "string", "description": "Profile uuid parameter" }, "type": { "type": "string", "description": "Immutable once the field exists", "enum": [ "text", "number", "date", "single_choice", "multi_choice" ] }, "label": { "type": "string", "description": "label parameter" }, "options": { "type": "array", "description": "Required for single_choice and multi_choice, ignored for the scalar types. Labels must be unique regardless of casing.", "items": { "type": "string", "description": "options parameter" } } }, "required": [ "profileUuid", "type", "label" ] }, "security": [ { "apiToken": [] } ], "group": "reach" }, { "name": "reach_listContactGroupsV1", "description": "Get a list of all contact groups.\n\nThis endpoint returns a list of contact groups that can be used to organize contacts.", "method": "GET", "path": "/api/reach/v1/contacts/groups", "inputSchema": { "type": "object", "properties": {}, "required": [] }, "security": [ { "apiToken": [] } ], "group": "reach" }, { "name": "reach_listContactsV1", "description": "Get a list of contacts, optionally filtered by group and subscription status.\n\nThis endpoint returns a paginated list of contacts with their basic information.\nYou can filter contacts by group UUID and subscription status.\n\n**Deprecated.** This endpoint cannot target a profile, so it always falls back to the\nclient's default profile and cannot list contacts of any other profile. Use\n`GET /api/reach/v1/profiles/{profileUuid}/contacts` instead, which also replaces the\ngroup filter with a tag filter.", "method": "GET", "path": "/api/reach/v1/contacts", "inputSchema": { "type": "object", "properties": { "group_uuid": { "type": "string", "description": "Filter contacts by group UUID" }, "subscription_status": { "type": "string", "description": "Filter contacts by subscription status", "enum": [ "subscribed", "unsubscribed", "confirmed", "pending" ] }, "page": { "type": "integer", "description": "Page number" } }, "required": [] }, "security": [ { "apiToken": [] } ], "group": "reach" }, { "name": "reach_createANewContactV1", "description": "Create a new contact in the email marketing system.\n\nThis endpoint allows you to create a new contact with basic information like name, email, and surname.\n\nIf double opt-in is enabled,\nthe contact will be created with a pending status and a confirmation email will be sent.", "method": "POST", "path": "/api/reach/v1/contacts", "inputSchema": { "type": "object", "properties": { "email": { "type": "string", "description": "email parameter" }, "name": { "type": "string", "description": "name parameter" }, "surname": { "type": "string", "description": "surname parameter" }, "phone": { "type": "string", "description": "Phone number in E.164 format (leading \"+\" then 7-15 digits)" }, "note": { "type": "string", "description": "note parameter" }, "tag_uuids": { "type": "array", "description": "Existing tags to attach to the created contact", "items": { "type": "string", "description": "tag_uuids parameter" } } }, "required": [ "email" ] }, "security": [ { "apiToken": [] } ], "group": "reach" }, { "name": "reach_getContactDetailsV1", "description": "Get the full details of a single contact.\n\nAlongside the contact's own attributes this returns the tags assigned to it and the\nvalues it holds for the profile's custom contact fields.", "method": "GET", "path": "/api/reach/v1/profiles/{profileUuid}/contacts/{contactUuid}", "inputSchema": { "type": "object", "properties": { "profileUuid": { "type": "string", "description": "Profile uuid parameter" }, "contactUuid": { "type": "string", "description": "Contact uuid parameter" } }, "required": [ "profileUuid", "contactUuid" ] }, "security": [ { "apiToken": [] } ], "group": "reach" }, { "name": "reach_deleteAProfileContactV1", "description": "Permanently delete a contact from a profile.\n\nThe contact is removed together with its custom field values and tag assignments.", "method": "DELETE", "path": "/api/reach/v1/profiles/{profileUuid}/contacts/{contactUuid}", "inputSchema": { "type": "object", "properties": { "profileUuid": { "type": "string", "description": "Profile uuid parameter" }, "contactUuid": { "type": "string", "description": "Contact uuid parameter" } }, "required": [ "profileUuid", "contactUuid" ] }, "security": [ { "apiToken": [] } ], "group": "reach" }, { "name": "reach_updateAContactV1", "description": "Update a contact's attributes and custom field values.\n\nOnly the properties present in the request body are changed, so a partial body is enough\nto change a single attribute. Sending a property as `null` clears it.\n\nThe response carries the contact's core attributes. Read back its tags, custom field\nvalues, source and note with `GET /api/reach/v1/profiles/{profileUuid}/contacts/{contactUuid}`.", "method": "PATCH", "path": "/api/reach/v1/profiles/{profileUuid}/contacts/{contactUuid}", "inputSchema": { "type": "object", "properties": { "profileUuid": { "type": "string", "description": "Profile uuid parameter" }, "contactUuid": { "type": "string", "description": "Contact uuid parameter" }, "email": { "type": "string", "description": "email parameter" }, "name": { "type": "string", "description": "name parameter" }, "surname": { "type": "string", "description": "surname parameter" }, "phone": { "type": "string", "description": "Phone number in E.164 format (leading \"+\" then 7-15 digits)" }, "subscription_status": { "type": "string", "description": "subscription_status parameter", "enum": [ "subscribed", "unsubscribed", "confirmed", "pending" ] }, "note": { "type": "string", "description": "note parameter" }, "fields": { "type": "array", "description": "Set custom field values. Omit to leave untouched, send an empty array to clear them all.", "items": { "type": "object", "description": "fields parameter", "properties": { "uuid": { "type": "string", "description": "uuid parameter" }, "value": { "type": "string", "description": "For the scalar field types" }, "selected_option_uuids": { "type": "array", "description": "For the choice field types", "items": { "type": "string", "description": "selected_option_uuids parameter" } } }, "required": [ "uuid" ] } } }, "required": [ "profileUuid", "contactUuid" ] }, "security": [ { "apiToken": [] } ], "group": "reach" }, { "name": "reach_createContactsInBulkV1", "description": "Create many contacts in a profile in a single call.\n\nThe contacts are imported in the background, so a success response means the import was\naccepted rather than finished. Contacts whose email already exists in the profile are\nleft as they are. If double opt-in is enabled, new contacts start off pending and are\nsent a confirmation email.", "method": "POST", "path": "/api/reach/v1/profiles/{profileUuid}/contacts/bulk", "inputSchema": { "type": "object", "properties": { "profileUuid": { "type": "string", "description": "Profile uuid parameter" }, "contacts": { "type": "array", "description": "contacts parameter", "items": { "type": "object", "description": "contacts parameter", "properties": { "email": { "type": "string", "description": "email parameter" }, "name": { "type": "string", "description": "name parameter" }, "surname": { "type": "string", "description": "surname parameter" }, "phone": { "type": "string", "description": "Phone number in E.164 format (leading \"+\" then 7-15 digits)" } }, "required": [ "email" ] } }, "tag_uuids": { "type": "array", "description": "Existing tags to attach to every created contact", "items": { "type": "string", "description": "tag_uuids parameter" } }, "note": { "type": "string", "description": "Note applied to every created contact" } }, "required": [ "profileUuid", "contacts" ] }, "security": [ { "apiToken": [] } ], "group": "reach" }, { "name": "reach_listProfileContactsV1", "description": "Get a paginated list of contacts belonging to a profile.\n\nContacts can be filtered by subscription status, by tag, and by an email search term.\nThe `meta.total` field of the response is the number of contacts matching the filters,\nso calling this endpoint without filters gives the profile's total contact count.", "method": "GET", "path": "/api/reach/v1/profiles/{profileUuid}/contacts", "inputSchema": { "type": "object", "properties": { "profileUuid": { "type": "string", "description": "Profile uuid parameter" }, "subscription_status": { "type": "string", "description": "Filter contacts by subscription status", "enum": [ "subscribed", "unsubscribed", "confirmed", "pending" ] }, "tag_uuid": { "type": "string", "description": "Filter contacts by tag UUID" }, "search": { "type": "string", "description": "Search contacts by email" }, "page": { "type": "integer", "description": "Page number" }, "per_page": { "type": "integer", "description": "Number of items per page" } }, "required": [ "profileUuid" ] }, "security": [ { "apiToken": [] } ], "group": "reach" }, { "name": "reach_createNewContactsV1", "description": "Create a new contact in the email marketing system.\n\nThis endpoint allows you to create a new contact with basic information like name, email, and surname.\n\nIf double opt-in is enabled, the contact will be created with a pending status\nand a confirmation email will be sent.", "method": "POST", "path": "/api/reach/v1/profiles/{profileUuid}/contacts", "inputSchema": { "type": "object", "properties": { "profileUuid": { "type": "string", "description": "Profile uuid parameter" }, "email": { "type": "string", "description": "email parameter" }, "name": { "type": "string", "description": "name parameter" }, "surname": { "type": "string", "description": "surname parameter" }, "phone": { "type": "string", "description": "Phone number in E.164 format (leading \"+\" then 7-15 digits)" }, "note": { "type": "string", "description": "note parameter" }, "tag_uuids": { "type": "array", "description": "Existing tags to attach to the created contact", "items": { "type": "string", "description": "tag_uuids parameter" } } }, "required": [ "profileUuid", "email" ] }, "security": [ { "apiToken": [] } ], "group": "reach" }, { "name": "reach_listSegmentsV1", "description": "Get a list of all contact segments.\n\nThis endpoint returns a list of contact segments that can be used to organize contacts.\n\n**Deprecated.** This endpoint cannot target a profile, so it always falls back to\nthe client's default profile and cannot list the segments of any other profile. Use\n`GET /api/reach/v1/profiles/{profileUuid}/segmentation/segments` instead.", "method": "GET", "path": "/api/reach/v1/segmentation/segments", "inputSchema": { "type": "object", "properties": {}, "required": [] }, "security": [ { "apiToken": [] } ], "group": "reach" }, { "name": "reach_createANewContactSegmentV1", "description": "Create a new contact segment.\n\nThis endpoint allows creating a new contact segment that can be used to organize contacts.\nThe segment can be configured with specific criteria like email, name, subscription status, etc.\n\n**Deprecated.** This endpoint cannot target a profile, so it always falls back to\nthe client's default profile and cannot create segments in any other profile. Use\n`POST /api/reach/v1/profiles/{profileUuid}/segmentation/segments` instead.", "method": "POST", "path": "/api/reach/v1/segmentation/segments", "inputSchema": { "type": "object", "properties": { "name": { "type": "string", "description": "name parameter" }, "conditions": { "type": "array", "description": "conditions parameter", "items": { "type": "object", "description": "conditions parameter", "properties": { "operator": { "type": "string", "description": "operator parameter", "enum": [ "equals", "not_equals", "contains", "not_contains", "gte", "lte", "exists", "within_last_days", "not_within_last_days", "older_than_days", "processed", "not_processed", "delivered", "not_delivered", "dropped", "not_dropped", "bounced", "not_bounced", "soft_bounced", "not_soft_bounced", "opened", "not_opened", "clicked", "not_clicked", "unsubscribed", "not_unsubscribed" ] }, "value": { "type": "string", "description": "value parameter" }, "attribute": { "type": "string", "description": "attribute parameter", "enum": [ "note", "comment", "domain", "integration", "source", "name", "surname", "email", "subscribed_at", "unsubscribed_at", "subscription_status", "processed", "opened", "clicked", "delivered", "bounced", "unsubscribed", "dropped", "tag", "campaigns" ] } } } }, "logic": { "type": "string", "description": "logic parameter", "enum": [ "AND", "OR" ] } }, "required": [ "name", "conditions", "logic" ] }, "security": [ { "apiToken": [] } ], "group": "reach" }, { "name": "reach_countProfileSegmentContactsV1", "description": "Count the contacts currently matching a segment without listing them.\n\nCheaper than paging through the segment contacts endpoint when only the size is needed.", "method": "GET", "path": "/api/reach/v1/profiles/{profileUuid}/segmentation/segments/{segmentUuid}/count", "inputSchema": { "type": "object", "properties": { "profileUuid": { "type": "string", "description": "Profile uuid parameter" }, "segmentUuid": { "type": "string", "description": "Segment uuid parameter" } }, "required": [ "profileUuid", "segmentUuid" ] }, "security": [ { "apiToken": [] } ], "group": "reach" }, { "name": "reach_listProfileSegmentContactsV1", "description": "Retrieve contacts associated with a specific segment for a given profile.\n\nThis endpoint allows you to fetch and filter contacts that belong to a particular segment,\nidentified by its UUID, scoped to a specific profile.", "method": "GET", "path": "/api/reach/v1/profiles/{profileUuid}/segmentation/segments/{segmentUuid}/contacts", "inputSchema": { "type": "object", "properties": { "profileUuid": { "type": "string", "description": "Profile uuid parameter" }, "segmentUuid": { "type": "string", "description": "Segment uuid parameter" }, "page": { "type": "integer", "description": "Page number" }, "per_page": { "type": "integer", "description": "Number of items per page" } }, "required": [ "profileUuid", "segmentUuid" ] }, "security": [ { "apiToken": [] } ], "group": "reach" }, { "name": "reach_getProfileSegmentDetailsV1", "description": "Get a single segment of a profile, including the conditions that define it.\n\nTo retrieve the contacts currently matching those conditions, use the segment contacts\nendpoint instead.", "method": "GET", "path": "/api/reach/v1/profiles/{profileUuid}/segmentation/segments/{segmentUuid}", "inputSchema": { "type": "object", "properties": { "profileUuid": { "type": "string", "description": "Profile uuid parameter" }, "segmentUuid": { "type": "string", "description": "Segment uuid parameter" } }, "required": [ "profileUuid", "segmentUuid" ] }, "security": [ { "apiToken": [] } ], "group": "reach" }, { "name": "reach_updateAProfileSegmentV1", "description": "Rename a segment and/or replace the conditions that define it.\n\n`name` is always required. Omit `conditions` to rename without touching the conditions;\nsupply them and they replace the existing set entirely rather than being merged into it.\nContacts are never modified, but which of them match the segment can change immediately.", "method": "PUT", "path": "/api/reach/v1/profiles/{profileUuid}/segmentation/segments/{segmentUuid}", "inputSchema": { "type": "object", "properties": { "profileUuid": { "type": "string", "description": "Profile uuid parameter" }, "segmentUuid": { "type": "string", "description": "Segment uuid parameter" }, "name": { "type": "string", "description": "name parameter" }, "conditions": { "type": "array", "description": "Replaces the existing conditions entirely. Omit to keep the current ones.", "items": { "type": "object", "description": "conditions parameter", "properties": { "attribute": { "type": "string", "description": "A built-in contact attribute, or `cf:{fieldUuid}` to target a custom\ncontact field. Custom fields are addressed by field UUID; their slug\nis not accepted.\n\nBuilt-in attributes: `email`, `note`, `domain`, `source`,\n`opt_in_method`, `subscription_status`, `subscribed_at`,\n`unsubscribed_at`, `created_at`, `tag`, `campaigns`, `processed`,\n`opened`, `clicked`, `delivered`, `bounced`, `soft_bounced`,\n`dropped`.\n\nWhich operators are accepted depends on the attribute." }, "operator": { "type": "string", "description": "operator parameter", "enum": [ "equals", "not_equals", "contains", "not_contains", "gte", "lte", "exists", "within_last_days", "not_within_last_days", "older_than_days", "processed", "not_processed", "delivered", "not_delivered", "dropped", "not_dropped", "bounced", "not_bounced", "soft_bounced", "not_soft_bounced", "opened", "not_opened", "clicked", "not_clicked", "unsubscribed", "not_unsubscribed" ] }, "value": { "type": "string", "description": "Always a string, including for numeric and date comparisons" } }, "required": [ "attribute", "operator", "value" ] } }, "logic": { "type": "string", "description": "How to combine multiple conditions. Required when conditions are given.", "enum": [ "AND", "OR" ] } }, "required": [ "profileUuid", "segmentUuid", "name" ] }, "security": [ { "apiToken": [] } ], "group": "reach" }, { "name": "reach_deleteAProfileSegmentV1", "description": "Delete a segment.\n\nOnly the segment definition is removed. The contacts that matched it are left untouched.", "method": "DELETE", "path": "/api/reach/v1/profiles/{profileUuid}/segmentation/segments/{segmentUuid}", "inputSchema": { "type": "object", "properties": { "profileUuid": { "type": "string", "description": "Profile uuid parameter" }, "segmentUuid": { "type": "string", "description": "Segment uuid parameter" } }, "required": [ "profileUuid", "segmentUuid" ] }, "security": [ { "apiToken": [] } ], "group": "reach" }, { "name": "reach_listSegmentFilterAttributesV1", "description": "List every attribute a segment condition can filter on, with the operators each attribute\naccepts, the value format they expect and, where the value is constrained, the allowed\nvalues.\n\nThe list is profile specific: it includes the profile's custom contact fields, its tags and\nits 20 most recently published campaigns, so the valid attributes cannot be hardcoded. Read\nit before creating or updating a segment to discover the valid `attribute`, `operator` and\n`value` combinations.", "method": "GET", "path": "/api/reach/v1/profiles/{profileUuid}/segmentation/filters/attributes", "inputSchema": { "type": "object", "properties": { "profileUuid": { "type": "string", "description": "Profile uuid parameter" } }, "required": [ "profileUuid" ] }, "security": [ { "apiToken": [] } ], "group": "reach" }, { "name": "reach_previewContactsMatchingConditionsV1", "description": "Preview the contacts matching a set of conditions without saving a segment.\n\nThe body is the same set of conditions accepted when creating or updating a segment, so this\nis how to check who a filter reaches, and how many, before persisting it. Nothing is stored\nand no contact is modified.\n\nCall the segment filter attributes endpoint first to discover the valid `attribute`,\n`operator` and `value` combinations.", "method": "POST", "path": "/api/reach/v1/profiles/{profileUuid}/segmentation/filters/contacts", "inputSchema": { "type": "object", "properties": { "profileUuid": { "type": "string", "description": "Profile uuid parameter" }, "conditions": { "type": "array", "description": "Conditions a contact must satisfy to appear in the preview", "items": { "type": "object", "description": "conditions parameter", "properties": { "attribute": { "type": "string", "description": "A built-in contact attribute, or `cf:{fieldUuid}` to target a custom\ncontact field. Which operators are accepted depends on the attribute,\nso read the segment filter attributes endpoint for the authoritative\nlist." }, "operator": { "type": "string", "description": "operator parameter", "enum": [ "equals", "not_equals", "contains", "not_contains", "gte", "lte", "exists", "within_last_days", "not_within_last_days", "older_than_days", "processed", "not_processed", "delivered", "not_delivered", "dropped", "not_dropped", "bounced", "not_bounced", "soft_bounced", "not_soft_bounced", "opened", "not_opened", "clicked", "not_clicked", "unsubscribed", "not_unsubscribed" ] }, "value": { "type": "string", "description": "Always a string, including for numeric and date comparisons" } }, "required": [ "attribute", "operator", "value" ] } }, "logic": { "type": "string", "description": "How to combine multiple conditions", "enum": [ "AND", "OR" ] }, "page": { "type": "integer", "description": "Page number" }, "per_page": { "type": "integer", "description": "Number of items per page" }, "search": { "type": "string", "description": "Narrow the preview to contacts whose email matches" }, "sort_by": { "type": "string", "description": "sort_by parameter", "enum": [ "email", "name", "surname", "phone", "subscription_status" ] }, "sort_direction": { "type": "string", "description": "sort_direction parameter", "enum": [ "asc", "desc" ] } }, "required": [ "profileUuid", "conditions", "logic" ] }, "security": [ { "apiToken": [] } ], "group": "reach" }, { "name": "reach_listProfileSegmentsV1", "description": "Get a paginated list of the segments defined in a profile.\n\nEach entry carries the number of contacts currently matching it, which is recalculated on\nread rather than stored. Use `count_type` to count either every matching contact or only\nthe subscribed ones.", "method": "GET", "path": "/api/reach/v1/profiles/{profileUuid}/segmentation/segments", "inputSchema": { "type": "object", "properties": { "profileUuid": { "type": "string", "description": "Profile uuid parameter" }, "count_type": { "type": "string", "description": "Which matching contacts to count for each segment", "enum": [ "all", "subscribed" ] }, "page": { "type": "integer", "description": "Page number" }, "per_page": { "type": "integer", "description": "Number of items per page" } }, "required": [ "profileUuid" ] }, "security": [ { "apiToken": [] } ], "group": "reach" }, { "name": "reach_createAProfileSegmentV1", "description": "Create a segment in a profile.\n\nA segment is a saved set of conditions rather than a fixed list, so its membership changes\nas contacts change. Creating one does not modify any contact.", "method": "POST", "path": "/api/reach/v1/profiles/{profileUuid}/segmentation/segments", "inputSchema": { "type": "object", "properties": { "profileUuid": { "type": "string", "description": "Profile uuid parameter" }, "name": { "type": "string", "description": "name parameter" }, "conditions": { "type": "array", "description": "Conditions a contact must satisfy to fall into the segment", "items": { "type": "object", "description": "conditions parameter", "properties": { "attribute": { "type": "string", "description": "A built-in contact attribute, or `cf:{fieldUuid}` to target a custom\ncontact field. Custom fields are addressed by field UUID; their slug\nis not accepted.\n\nBuilt-in attributes: `email`, `note`, `domain`, `source`,\n`opt_in_method`, `subscription_status`, `subscribed_at`,\n`unsubscribed_at`, `created_at`, `tag`, `campaigns`, `processed`,\n`opened`, `clicked`, `delivered`, `bounced`, `soft_bounced`,\n`dropped`.\n\nWhich operators are accepted depends on the attribute." }, "operator": { "type": "string", "description": "operator parameter", "enum": [ "equals", "not_equals", "contains", "not_contains", "gte", "lte", "exists", "within_last_days", "not_within_last_days", "older_than_days", "processed", "not_processed", "delivered", "not_delivered", "dropped", "not_dropped", "bounced", "not_bounced", "soft_bounced", "not_soft_bounced", "opened", "not_opened", "clicked", "not_clicked", "unsubscribed", "not_unsubscribed" ] }, "value": { "type": "string", "description": "Always a string, including for numeric and date comparisons" } }, "required": [ "attribute", "operator", "value" ] } }, "logic": { "type": "string", "description": "How to combine multiple conditions", "enum": [ "AND", "OR" ] } }, "required": [ "profileUuid", "name", "conditions", "logic" ] }, "security": [ { "apiToken": [] } ], "group": "reach" }, { "name": "reach_listSegmentContactsV1", "description": "Retrieve contacts associated with a specific segment.\n\nThis endpoint allows you to fetch and filter contacts that belong to a particular segment,\nidentified by its UUID.\n\n**Deprecated.** This endpoint cannot target a profile, so it always falls back to\nthe client's default profile and cannot read segments of any other profile. Use\n`GET /api/reach/v1/profiles/{profileUuid}/segmentation/segments/{segmentUuid}/contacts` instead.", "method": "GET", "path": "/api/reach/v1/segmentation/segments/{segmentUuid}/contacts", "inputSchema": { "type": "object", "properties": { "segmentUuid": { "type": "string", "description": "Segment uuid parameter" }, "page": { "type": "integer", "description": "Page number" }, "per_page": { "type": "integer", "description": "Number of items per page" } }, "required": [ "segmentUuid" ] }, "security": [ { "apiToken": [] } ], "group": "reach" }, { "name": "reach_getSegmentDetailsV1", "description": "Get details of a specific segment.\n\nThis endpoint retrieves information about a single segment identified by UUID.\nSegments are used to organize and group contacts based on specific criteria.\n\n**Deprecated.** This endpoint cannot target a profile, so it always falls back to\nthe client's default profile and cannot read segments of any other profile. Use\n`GET /api/reach/v1/profiles/{profileUuid}/segmentation/segments/{segmentUuid}` instead.", "method": "GET", "path": "/api/reach/v1/segmentation/segments/{segmentUuid}", "inputSchema": { "type": "object", "properties": { "segmentUuid": { "type": "string", "description": "Segment uuid parameter" } }, "required": [ "segmentUuid" ] }, "security": [ { "apiToken": [] } ], "group": "reach" }, { "name": "reach_assignAContactToATagV1", "description": "Assign a tag to a single contact.\n\nUnlike the bulk endpoint this is applied immediately rather than queued. Assigning a tag\nthe contact already carries succeeds without duplicating it.", "method": "POST", "path": "/api/reach/v1/profiles/{profileUuid}/tags/{tagUuid}/contacts/{contactUuid}", "inputSchema": { "type": "object", "properties": { "profileUuid": { "type": "string", "description": "Profile uuid parameter" }, "tagUuid": { "type": "string", "description": "Tag uuid parameter" }, "contactUuid": { "type": "string", "description": "Contact uuid parameter" } }, "required": [ "profileUuid", "tagUuid", "contactUuid" ] }, "security": [ { "apiToken": [] } ], "group": "reach" }, { "name": "reach_removeAContactFromATagV1", "description": "Remove a tag from a single contact.\n\nUnlike the bulk endpoint this is applied immediately rather than queued. Neither the tag\nnor the contact is deleted.", "method": "DELETE", "path": "/api/reach/v1/profiles/{profileUuid}/tags/{tagUuid}/contacts/{contactUuid}", "inputSchema": { "type": "object", "properties": { "profileUuid": { "type": "string", "description": "Profile uuid parameter" }, "tagUuid": { "type": "string", "description": "Tag uuid parameter" }, "contactUuid": { "type": "string", "description": "Contact uuid parameter" } }, "required": [ "profileUuid", "tagUuid", "contactUuid" ] }, "security": [ { "apiToken": [] } ], "group": "reach" }, { "name": "reach_assignContactsToATagV1", "description": "Assign a tag to many contacts at once.\n\nPass `contact_uuids` to target specific contacts, or `all_contacts` to target every contact\nin the profile. The work is queued, so a success response means it was accepted rather than\nfinished. Contacts that already carry the tag are left alone.", "method": "POST", "path": "/api/reach/v1/profiles/{profileUuid}/tags/{tagUuid}/contacts", "inputSchema": { "type": "object", "properties": { "profileUuid": { "type": "string", "description": "Profile uuid parameter" }, "tagUuid": { "type": "string", "description": "Tag uuid parameter" }, "contact_uuids": { "type": "array", "description": "Contacts to apply the change to. Required unless all_contacts is true.", "items": { "type": "string", "description": "contact_uuids parameter" } }, "all_contacts": { "type": "boolean", "description": "Apply to every contact in the profile" } }, "required": [ "profileUuid", "tagUuid" ] }, "security": [ { "apiToken": [] } ], "group": "reach" }, { "name": "reach_removeContactsFromATagV1", "description": "Remove a tag from many contacts at once.\n\nPass `contact_uuids` to target specific contacts, or `all_contacts` to target every contact\nin the profile. The work is queued, so a success response means it was accepted rather than\nfinished. The tag itself and the contacts are not deleted.", "method": "DELETE", "path": "/api/reach/v1/profiles/{profileUuid}/tags/{tagUuid}/contacts", "inputSchema": { "type": "object", "properties": { "profileUuid": { "type": "string", "description": "Profile uuid parameter" }, "tagUuid": { "type": "string", "description": "Tag uuid parameter" } }, "required": [ "profileUuid", "tagUuid" ] }, "security": [ { "apiToken": [] } ], "group": "reach" }, { "name": "reach_deleteATagV1", "description": "Delete a tag and remove it from every contact carrying it.\n\nThe contacts themselves are not deleted. This is idempotent: deleting a tag that does not\nexist in the profile still succeeds.", "method": "DELETE", "path": "/api/reach/v1/profiles/{profileUuid}/tags/{tagUuid}", "inputSchema": { "type": "object", "properties": { "profileUuid": { "type": "string", "description": "Profile uuid parameter" }, "tagUuid": { "type": "string", "description": "Tag uuid parameter" } }, "required": [ "profileUuid", "tagUuid" ] }, "security": [ { "apiToken": [] } ], "group": "reach" }, { "name": "reach_renameATagV1", "description": "Rename a tag.\n\nThe contacts assigned to the tag are unaffected. Names are unique within a profile, so\nrenaming a tag to a name that is already taken is rejected.", "method": "PATCH", "path": "/api/reach/v1/profiles/{profileUuid}/tags/{tagUuid}", "inputSchema": { "type": "object", "properties": { "profileUuid": { "type": "string", "description": "Profile uuid parameter" }, "tagUuid": { "type": "string", "description": "Tag uuid parameter" }, "value": { "type": "string", "description": "New tag name" } }, "required": [ "profileUuid", "tagUuid", "value" ] }, "security": [ { "apiToken": [] } ], "group": "reach" }, { "name": "reach_listProfileTagsV1", "description": "Get all tags defined in a profile.\n\nTags are the way contacts are grouped in Reach, and can be used to filter the contact\nlist or to build segments.", "method": "GET", "path": "/api/reach/v1/profiles/{profileUuid}/tags", "inputSchema": { "type": "object", "properties": { "profileUuid": { "type": "string", "description": "Profile uuid parameter" } }, "required": [ "profileUuid" ] }, "security": [ { "apiToken": [] } ], "group": "reach" }, { "name": "reach_createOrFindTagsV1", "description": "Create tags in a profile.\n\nNames that already exist in the profile are not duplicated: the existing tag is returned\ninstead, so the call is safe to repeat. Every tag in the request is returned, whether it\nwas created now or already existed.", "method": "POST", "path": "/api/reach/v1/profiles/{profileUuid}/tags", "inputSchema": { "type": "object", "properties": { "profileUuid": { "type": "string", "description": "Profile uuid parameter" }, "names": { "type": "array", "description": "names parameter", "items": { "type": "string", "description": "names parameter" } } }, "required": [ "profileUuid", "names" ] }, "security": [ { "apiToken": [] } ], "group": "reach" }, { "name": "reach_getFormDetailsV1", "description": "Get a single form with the URL of its hosted template and the tags it applies to the contacts\nit captures.\n\nThere is no ready-made embed snippet in the response - either serve the template HTML yourself\nor build your own embed around the form uuid.", "method": "GET", "path": "/api/reach/v1/profiles/{profileUuid}/forms/{formUuid}", "inputSchema": { "type": "object", "properties": { "profileUuid": { "type": "string", "description": "Profile uuid parameter" }, "formUuid": { "type": "string", "description": "Form uuid parameter" } }, "required": [ "profileUuid", "formUuid" ] }, "security": [ { "apiToken": [] } ], "group": "reach" }, { "name": "reach_deleteFormV1", "description": "Permanently delete a form together with its template.\n\nA form that has already captured submissions cannot be deleted, so that the contacts it collected\nare never silently discarded - pause the form instead to stop it collecting new ones. Views alone\ndo not block deletion.", "method": "DELETE", "path": "/api/reach/v1/profiles/{profileUuid}/forms/{formUuid}", "inputSchema": { "type": "object", "properties": { "profileUuid": { "type": "string", "description": "Profile uuid parameter" }, "formUuid": { "type": "string", "description": "Form uuid parameter" } }, "required": [ "profileUuid", "formUuid" ] }, "security": [ { "apiToken": [] } ], "group": "reach" }, { "name": "reach_listFormsV1", "description": "Get a paginated list of the signup forms in a profile.\n\nEach form carries a reference to the template that renders it. Get the form details for a\ndirectly usable template URL and for the tags the form puts on the contacts it captures.", "method": "GET", "path": "/api/reach/v1/profiles/{profileUuid}/forms", "inputSchema": { "type": "object", "properties": { "profileUuid": { "type": "string", "description": "Profile uuid parameter" }, "page": { "type": "integer", "description": "Page number" }, "per_page": { "type": "integer", "description": "Number of items per page" } }, "required": [ "profileUuid" ] }, "security": [ { "apiToken": [] } ], "group": "reach" }, { "name": "reach_getProfileDomainDNSStatusV1", "description": "Retrieve the DNS configuration status for a profile's domain.\n\nThis endpoint reports the state of MX, SPF, DKIM and DMARC records, including the\nactual records found and the suggested records required for correct email delivery.", "method": "GET", "path": "/api/reach/v1/profiles/{profileUuid}/domains/dns-status", "inputSchema": { "type": "object", "properties": { "profileUuid": { "type": "string", "description": "Profile uuid parameter" } }, "required": [ "profileUuid" ] }, "security": [ { "apiToken": [] } ], "group": "reach" }, { "name": "reach_getConnectedSendingDomainV1", "description": "Get the sending domain connected to the profile, its verification status and any suspended\nsender addresses.\n\nCampaigns only go out once a domain is connected and active, so this is the cheapest way to\ncheck that precondition before building one. A profile with no domain connected returns the\nsame shape with every field set to `null`. For the individual MX, SPF, DKIM and DMARC records\nbehind the status, use the DNS status endpoint.", "method": "GET", "path": "/api/reach/v1/profiles/{profileUuid}/domains", "inputSchema": { "type": "object", "properties": { "profileUuid": { "type": "string", "description": "Profile uuid parameter" } }, "required": [ "profileUuid" ] }, "security": [ { "apiToken": [] } ], "group": "reach" }, { "name": "reach_listPlanFeatureAccessV1", "description": "List which plan features the profile can use.\n\nThis is the feature lock matrix, not a usage quota. `available` means the feature can be\nused right now and `locked` means it is not part of the base plan, so an upgrade is needed.\nFor remaining emails, recipients and AI credits use the limits endpoint instead.\n\nWorth checking before building something that cannot be activated afterwards, such as an\nautomation on a plan without automation activation.", "method": "GET", "path": "/api/reach/v1/profiles/{profileUuid}/features", "inputSchema": { "type": "object", "properties": { "profileUuid": { "type": "string", "description": "Profile uuid parameter" } }, "required": [ "profileUuid" ] }, "security": [ { "apiToken": [] } ], "group": "reach" }, { "name": "reach_getRemainingPlanLimitsV1", "description": "Get how much of the plan is left for the current period.\n\nTwo things to keep in mind before you build alerting on this. The period is a calendar month\nrather than a billing anniversary, so the counters reset on the 1st no matter when the\nsubscription started. And usage is tracked per order, so every profile on the same order shares\none pool and reports the same numbers here. Only the current period is available, past usage is\nnot kept.", "method": "GET", "path": "/api/reach/v1/profiles/{profileUuid}/limits", "inputSchema": { "type": "object", "properties": { "profileUuid": { "type": "string", "description": "Profile uuid parameter" } }, "required": [ "profileUuid" ] }, "security": [ { "apiToken": [] } ], "group": "reach" }, { "name": "reach_listProfilesV1", "description": "This endpoint returns all profiles available to the client, including their basic information.", "method": "GET", "path": "/api/reach/v1/profiles", "inputSchema": { "type": "object", "properties": {}, "required": [] }, "security": [ { "apiToken": [] } ], "group": "reach" }, { "name": "VPS_getDataCenterListV1", "description": "Retrieve all available data centers.\n\nUse this endpoint to view location options before deploying VPS instances.", "method": "GET", "path": "/api/vps/v1/data-centers", "inputSchema": { "type": "object", "properties": {}, "required": [] }, "security": [ { "apiToken": [] } ], "group": "vps" }, { "name": "VPS_getProjectContainersV1", "description": "Retrieves a list of all containers belonging to a specific Docker Compose project on the virtual machine. \n\nThis endpoint returns detailed information about each container including\ntheir current status, port mappings, and runtime configuration.\n\nUse this to monitor the health and state of all services within your Docker Compose project.", "method": "GET", "path": "/api/vps/v1/virtual-machines/{virtualMachineId}/docker/{projectName}/containers", "inputSchema": { "type": "object", "properties": { "virtualMachineId": { "type": "integer", "description": "Virtual Machine ID" }, "projectName": { "type": "string", "description": "Docker Compose project name using alphanumeric characters, dashes, and underscores only" } }, "required": [ "virtualMachineId", "projectName" ] }, "security": [ { "apiToken": [] } ], "group": "vps" }, { "name": "VPS_getProjectContentsV1", "description": "Retrieves the complete project information including the docker-compose.yml\nfile contents, project metadata, and current deployment status.\n\nThis endpoint provides the full configuration and state details of a specific Docker Compose project. \n\nUse this to inspect project settings, review the compose file, or check the overall project health.", "method": "GET", "path": "/api/vps/v1/virtual-machines/{virtualMachineId}/docker/{projectName}", "inputSchema": { "type": "object", "properties": { "virtualMachineId": { "type": "integer", "description": "Virtual Machine ID" }, "projectName": { "type": "string", "description": "Docker Compose project name using alphanumeric characters, dashes, and underscores only" } }, "required": [ "virtualMachineId", "projectName" ] }, "security": [ { "apiToken": [] } ], "group": "vps" }, { "name": "VPS_deleteProjectV1", "description": "Completely removes a Docker Compose project from the virtual machine, stopping all containers and cleaning up \nassociated resources including networks, volumes, and images. \n\nThis operation is irreversible and will delete all project data. \n\nUse this when you want to permanently remove a project and free up system resources.", "method": "DELETE", "path": "/api/vps/v1/virtual-machines/{virtualMachineId}/docker/{projectName}/down", "inputSchema": { "type": "object", "properties": { "virtualMachineId": { "type": "integer", "description": "Virtual Machine ID" }, "projectName": { "type": "string", "description": "Docker Compose project name using alphanumeric characters, dashes, and underscores only" } }, "required": [ "virtualMachineId", "projectName" ] }, "security": [ { "apiToken": [] } ], "group": "vps" }, { "name": "VPS_getProjectListV1", "description": "Retrieves a list of all Docker Compose projects currently deployed on the virtual machine. \n\nThis endpoint returns basic information about each project including name,\nstatus, file path and list of containers with details about their names,\nimage, status, health and ports. Container stats are omitted in this\nendpoint. If you need to get detailed information about container with\nstats included, use the `Get project containers` endpoint.\n\nUse this to get an overview of all Docker projects on your VPS instance.", "method": "GET", "path": "/api/vps/v1/virtual-machines/{virtualMachineId}/docker", "inputSchema": { "type": "object", "properties": { "virtualMachineId": { "type": "integer", "description": "Virtual Machine ID" } }, "required": [ "virtualMachineId" ] }, "security": [ { "apiToken": [] } ], "group": "vps" }, { "name": "VPS_createNewProjectV1", "description": "Deploy new project from docker-compose.yaml contents or download contents from URL. \n\nURL can be Github repository url in format https://github.com/[user]/[repo]\nand it will be automatically resolved to docker-compose.yaml file in\nmaster branch. Any other URL provided must return docker-compose.yaml\nfile contents.\n\nIf project with the same name already exists, existing project will be replaced.", "method": "POST", "path": "/api/vps/v1/virtual-machines/{virtualMachineId}/docker", "inputSchema": { "type": "object", "properties": { "virtualMachineId": { "type": "integer", "description": "Virtual Machine ID" }, "project_name": { "type": "string", "description": "Docker Compose project name using alphanumeric characters, dashes, and underscores only" }, "content": { "type": "string", "description": "URL pointing to docker-compose.yaml file, Github repository or raw YAML content of the compose file" }, "environment": { "type": "string", "description": "Project environment variables" } }, "required": [ "virtualMachineId", "project_name", "content" ] }, "security": [ { "apiToken": [] } ], "group": "vps" }, { "name": "VPS_getProjectLogsV1", "description": "Retrieves aggregated log entries from all services within a Docker Compose project. \n\nThis endpoint returns recent log output from each container, organized by service name with timestamps. \nThe response contains the last 300 log entries across all services. \n\nUse this for debugging, monitoring application behavior, and\ntroubleshooting issues across your entire project stack.", "method": "GET", "path": "/api/vps/v1/virtual-machines/{virtualMachineId}/docker/{projectName}/logs", "inputSchema": { "type": "object", "properties": { "virtualMachineId": { "type": "integer", "description": "Virtual Machine ID" }, "projectName": { "type": "string", "description": "Docker Compose project name using alphanumeric characters, dashes, and underscores only" } }, "required": [ "virtualMachineId", "projectName" ] }, "security": [ { "apiToken": [] } ], "group": "vps" }, { "name": "VPS_restartProjectV1", "description": "Restarts all services in a Docker Compose project by stopping and starting\ncontainers in the correct dependency order.\n\nThis operation preserves data volumes and network configurations while refreshing the running containers. \n\nUse this to apply configuration changes or recover from service failures.", "method": "POST", "path": "/api/vps/v1/virtual-machines/{virtualMachineId}/docker/{projectName}/restart", "inputSchema": { "type": "object", "properties": { "virtualMachineId": { "type": "integer", "description": "Virtual Machine ID" }, "projectName": { "type": "string", "description": "Docker Compose project name using alphanumeric characters, dashes, and underscores only" } }, "required": [ "virtualMachineId", "projectName" ] }, "security": [ { "apiToken": [] } ], "group": "vps" }, { "name": "VPS_startProjectV1", "description": "Starts all services in a Docker Compose project that are currently stopped. \n\nThis operation brings up containers in the correct dependency order as defined in the compose file. \n\nUse this to resume a project that was previously stopped or to start services after a system reboot.", "method": "POST", "path": "/api/vps/v1/virtual-machines/{virtualMachineId}/docker/{projectName}/start", "inputSchema": { "type": "object", "properties": { "virtualMachineId": { "type": "integer", "description": "Virtual Machine ID" }, "projectName": { "type": "string", "description": "Docker Compose project name using alphanumeric characters, dashes, and underscores only" } }, "required": [ "virtualMachineId", "projectName" ] }, "security": [ { "apiToken": [] } ], "group": "vps" }, { "name": "VPS_stopProjectV1", "description": "Stops all running services in a Docker Compose project while preserving\ncontainer configurations and data volumes.\n\nThis operation gracefully shuts down containers in reverse dependency order. \n\nUse this to temporarily halt a project without removing data or configurations.", "method": "POST", "path": "/api/vps/v1/virtual-machines/{virtualMachineId}/docker/{projectName}/stop", "inputSchema": { "type": "object", "properties": { "virtualMachineId": { "type": "integer", "description": "Virtual Machine ID" }, "projectName": { "type": "string", "description": "Docker Compose project name using alphanumeric characters, dashes, and underscores only" } }, "required": [ "virtualMachineId", "projectName" ] }, "security": [ { "apiToken": [] } ], "group": "vps" }, { "name": "VPS_updateProjectV1", "description": "Updates a Docker Compose project by pulling the latest image versions and\nrecreating containers with new configurations.\n\nThis operation preserves data volumes while applying changes from the compose file. \n\nUse this to deploy application updates, apply configuration changes, or\nrefresh container images to their latest versions.", "method": "POST", "path": "/api/vps/v1/virtual-machines/{virtualMachineId}/docker/{projectName}/update", "inputSchema": { "type": "object", "properties": { "virtualMachineId": { "type": "integer", "description": "Virtual Machine ID" }, "projectName": { "type": "string", "description": "Docker Compose project name using alphanumeric characters, dashes, and underscores only" } }, "required": [ "virtualMachineId", "projectName" ] }, "security": [ { "apiToken": [] } ], "group": "vps" }, { "name": "VPS_activateFirewallV1", "description": "Activate a firewall for a specified virtual machine.\n\nOnly one firewall can be active for a virtual machine at a time.\n\nUse this endpoint to apply firewall rules to VPS instances.", "method": "POST", "path": "/api/vps/v1/firewall/{firewallId}/activate/{virtualMachineId}", "inputSchema": { "type": "object", "properties": { "firewallId": { "type": "integer", "description": "Firewall ID" }, "virtualMachineId": { "type": "integer", "description": "Virtual Machine ID" } }, "required": [ "firewallId", "virtualMachineId" ] }, "security": [ { "apiToken": [] } ], "group": "vps" }, { "name": "VPS_deactivateFirewallV1", "description": "Deactivate a firewall for a specified virtual machine.\n\nUse this endpoint to remove firewall protection from VPS instances.", "method": "POST", "path": "/api/vps/v1/firewall/{firewallId}/deactivate/{virtualMachineId}", "inputSchema": { "type": "object", "properties": { "firewallId": { "type": "integer", "description": "Firewall ID" }, "virtualMachineId": { "type": "integer", "description": "Virtual Machine ID" } }, "required": [ "firewallId", "virtualMachineId" ] }, "security": [ { "apiToken": [] } ], "group": "vps" }, { "name": "VPS_getFirewallDetailsV1", "description": "Retrieve firewall by its ID and rules associated with it.\n\nUse this endpoint to view specific firewall configuration and rules.", "method": "GET", "path": "/api/vps/v1/firewall/{firewallId}", "inputSchema": { "type": "object", "properties": { "firewallId": { "type": "integer", "description": "Firewall ID" } }, "required": [ "firewallId" ] }, "security": [ { "apiToken": [] } ], "group": "vps" }, { "name": "VPS_deleteFirewallV1", "description": "Delete a specified firewall.\n\nAny virtual machine that has this firewall activated will automatically have it deactivated.\n\nUse this endpoint to remove unused firewall configurations.", "method": "DELETE", "path": "/api/vps/v1/firewall/{firewallId}", "inputSchema": { "type": "object", "properties": { "firewallId": { "type": "integer", "description": "Firewall ID" } }, "required": [ "firewallId" ] }, "security": [ { "apiToken": [] } ], "group": "vps" }, { "name": "VPS_getFirewallListV1", "description": "Retrieve all available firewalls.\n\nUse this endpoint to view existing firewall configurations.", "method": "GET", "path": "/api/vps/v1/firewall", "inputSchema": { "type": "object", "properties": { "page": { "type": "integer", "description": "Page number" } }, "required": [] }, "security": [ { "apiToken": [] } ], "group": "vps" }, { "name": "VPS_createNewFirewallV1", "description": "Create a new firewall.\n\nUse this endpoint to set up new firewall configurations for VPS security.", "method": "POST", "path": "/api/vps/v1/firewall", "inputSchema": { "type": "object", "properties": { "name": { "type": "string", "description": "name parameter" } }, "required": [ "name" ] }, "security": [ { "apiToken": [] } ], "group": "vps" }, { "name": "VPS_updateFirewallRuleV1", "description": "Update a specific firewall rule from a specified firewall.\n\nAny virtual machine that has this firewall activated will lose sync with the firewall\nand will have to be synced again manually.\n\nUse this endpoint to modify existing firewall rules.", "method": "PUT", "path": "/api/vps/v1/firewall/{firewallId}/rules/{ruleId}", "inputSchema": { "type": "object", "properties": { "firewallId": { "type": "integer", "description": "Firewall ID" }, "ruleId": { "type": "integer", "description": "Firewall Rule ID" }, "protocol": { "type": "string", "description": "protocol parameter", "enum": [ "TCP", "UDP", "ICMP", "GRE", "any", "ESP", "AH", "ICMPv6", "SSH", "HTTP", "HTTPS", "MySQL", "PostgreSQL" ] }, "port": { "type": "string", "description": "Port or port range, ex: 1024:2048" }, "source": { "type": "string", "description": "source parameter", "enum": [ "any", "custom" ] }, "source_detail": { "type": "string", "description": "IP range, CIDR, single IP or `any`" } }, "required": [ "firewallId", "ruleId", "protocol", "port", "source", "source_detail" ] }, "security": [ { "apiToken": [] } ], "group": "vps" }, { "name": "VPS_deleteFirewallRuleV1", "description": "Delete a specific firewall rule from a specified firewall.\n\nAny virtual machine that has this firewall activated will lose sync with the firewall\nand will have to be synced again manually.\n\nUse this endpoint to remove specific firewall rules.", "method": "DELETE", "path": "/api/vps/v1/firewall/{firewallId}/rules/{ruleId}", "inputSchema": { "type": "object", "properties": { "firewallId": { "type": "integer", "description": "Firewall ID" }, "ruleId": { "type": "integer", "description": "Firewall Rule ID" } }, "required": [ "firewallId", "ruleId" ] }, "security": [ { "apiToken": [] } ], "group": "vps" }, { "name": "VPS_createFirewallRuleV1", "description": "Create new firewall rule for a specified firewall.\n\nBy default, the firewall drops all incoming traffic,\nwhich means you must add accept rules for all ports you want to use.\n\nAny virtual machine that has this firewall activated will lose sync with the firewall\nand will have to be synced again manually.\n\nUse this endpoint to add new security rules to firewalls.", "method": "POST", "path": "/api/vps/v1/firewall/{firewallId}/rules", "inputSchema": { "type": "object", "properties": { "firewallId": { "type": "integer", "description": "Firewall ID" }, "protocol": { "type": "string", "description": "protocol parameter", "enum": [ "TCP", "UDP", "ICMP", "GRE", "any", "ESP", "AH", "ICMPv6", "SSH", "HTTP", "HTTPS", "MySQL", "PostgreSQL" ] }, "port": { "type": "string", "description": "Port or port range, ex: 1024:2048" }, "source": { "type": "string", "description": "source parameter", "enum": [ "any", "custom" ] }, "source_detail": { "type": "string", "description": "IP range, CIDR, single IP or `any`" } }, "required": [ "firewallId", "protocol", "port", "source", "source_detail" ] }, "security": [ { "apiToken": [] } ], "group": "vps" }, { "name": "VPS_syncFirewallV1", "description": "Sync a firewall for a specified virtual machine.\n\nFirewall can lose sync with virtual machine if the firewall has new rules added, removed or updated.\n\nUse this endpoint to apply updated firewall rules to VPS instances.", "method": "POST", "path": "/api/vps/v1/firewall/{firewallId}/sync/{virtualMachineId}", "inputSchema": { "type": "object", "properties": { "firewallId": { "type": "integer", "description": "Firewall ID" }, "virtualMachineId": { "type": "integer", "description": "Virtual Machine ID" } }, "required": [ "firewallId", "virtualMachineId" ] }, "security": [ { "apiToken": [] } ], "group": "vps" }, { "name": "VPS_getPostInstallScriptV1", "description": "Retrieve post-install script by its ID.\n\nUse this endpoint to view specific automation script details.", "method": "GET", "path": "/api/vps/v1/post-install-scripts/{postInstallScriptId}", "inputSchema": { "type": "object", "properties": { "postInstallScriptId": { "type": "integer", "description": "Post-install script ID" } }, "required": [ "postInstallScriptId" ] }, "security": [ { "apiToken": [] } ], "group": "vps" }, { "name": "VPS_updatePostInstallScriptV1", "description": "Update a specific post-install script.\n\nUse this endpoint to modify existing automation scripts.", "method": "PUT", "path": "/api/vps/v1/post-install-scripts/{postInstallScriptId}", "inputSchema": { "type": "object", "properties": { "postInstallScriptId": { "type": "integer", "description": "Post-install script ID" }, "name": { "type": "string", "description": "Name of the script" }, "content": { "type": "string", "description": "Content of the script" } }, "required": [ "postInstallScriptId", "name", "content" ] }, "security": [ { "apiToken": [] } ], "group": "vps" }, { "name": "VPS_deletePostInstallScriptV1", "description": "Delete a post-install script from your account.\n \nUse this endpoint to remove unused automation scripts.", "method": "DELETE", "path": "/api/vps/v1/post-install-scripts/{postInstallScriptId}", "inputSchema": { "type": "object", "properties": { "postInstallScriptId": { "type": "integer", "description": "Post-install script ID" } }, "required": [ "postInstallScriptId" ] }, "security": [ { "apiToken": [] } ], "group": "vps" }, { "name": "VPS_getPostInstallScriptsV1", "description": "Retrieve post-install scripts associated with your account.\n\nUse this endpoint to view available automation scripts for VPS deployment.", "method": "GET", "path": "/api/vps/v1/post-install-scripts", "inputSchema": { "type": "object", "properties": { "page": { "type": "integer", "description": "Page number" } }, "required": [] }, "security": [ { "apiToken": [] } ], "group": "vps" }, { "name": "VPS_createPostInstallScriptV1", "description": "Add a new post-install script to your account, which can then be used after virtual machine installation.\n\nThe script contents will be saved to the file `/post_install` with executable attribute set\nand will be executed once virtual machine is installed.\nThe output of the script will be redirected to `/post_install.log`. Maximum script size is 48KB.\n\nUse this endpoint to create automation scripts for VPS setup tasks.", "method": "POST", "path": "/api/vps/v1/post-install-scripts", "inputSchema": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of the script" }, "content": { "type": "string", "description": "Content of the script" } }, "required": [ "name", "content" ] }, "security": [ { "apiToken": [] } ], "group": "vps" }, { "name": "VPS_attachPublicKeyV1", "description": "Attach existing public keys from your account to a specified virtual machine.\n\nMultiple keys can be attached to a single virtual machine.\n\nUse this endpoint to enable SSH key authentication for VPS instances.", "method": "POST", "path": "/api/vps/v1/public-keys/attach/{virtualMachineId}", "inputSchema": { "type": "object", "properties": { "virtualMachineId": { "type": "integer", "description": "Virtual Machine ID" }, "ids": { "type": "array", "description": "Public Key IDs to attach", "items": { "type": "integer", "description": "ids parameter" } } }, "required": [ "virtualMachineId", "ids" ] }, "security": [ { "apiToken": [] } ], "group": "vps" }, { "name": "VPS_deletePublicKeyV1", "description": "Delete a public key from your account. \n\n**Deleting public key from account does not remove it from virtual machine** \n \nUse this endpoint to remove unused SSH keys from account.", "method": "DELETE", "path": "/api/vps/v1/public-keys/{publicKeyId}", "inputSchema": { "type": "object", "properties": { "publicKeyId": { "type": "integer", "description": "Public Key ID" } }, "required": [ "publicKeyId" ] }, "security": [ { "apiToken": [] } ], "group": "vps" }, { "name": "VPS_getPublicKeysV1", "description": "Retrieve public keys associated with your account.\n\nUse this endpoint to view available SSH keys for VPS authentication.", "method": "GET", "path": "/api/vps/v1/public-keys", "inputSchema": { "type": "object", "properties": { "page": { "type": "integer", "description": "Page number" } }, "required": [] }, "security": [ { "apiToken": [] } ], "group": "vps" }, { "name": "VPS_createPublicKeyV1", "description": "Add a new public key to your account.\n\nUse this endpoint to register SSH keys for VPS authentication.", "method": "POST", "path": "/api/vps/v1/public-keys", "inputSchema": { "type": "object", "properties": { "name": { "type": "string", "description": "name parameter" }, "key": { "type": "string", "description": "key parameter" } }, "required": [ "name", "key" ] }, "security": [ { "apiToken": [] } ], "group": "vps" }, { "name": "VPS_getTemplateDetailsV1", "description": "Retrieve detailed information about a specific OS template for virtual machines.\n\nUse this endpoint to view specific template specifications before deployment.", "method": "GET", "path": "/api/vps/v1/templates/{templateId}", "inputSchema": { "type": "object", "properties": { "templateId": { "type": "integer", "description": "Template ID" } }, "required": [ "templateId" ] }, "security": [ { "apiToken": [] } ], "group": "vps" }, { "name": "VPS_getTemplatesV1", "description": "Retrieve available OS templates for virtual machines.\n\nUse this endpoint to view operating system options before creating or recreating VPS instances.", "method": "GET", "path": "/api/vps/v1/templates", "inputSchema": { "type": "object", "properties": {}, "required": [] }, "security": [ { "apiToken": [] } ], "group": "vps" }, { "name": "VPS_getActionDetailsV1", "description": "Retrieve detailed information about a specific action performed on a specified virtual machine.\n\nUse this endpoint to monitor specific VPS operation status and details.", "method": "GET", "path": "/api/vps/v1/virtual-machines/{virtualMachineId}/actions/{actionId}", "inputSchema": { "type": "object", "properties": { "virtualMachineId": { "type": "integer", "description": "Virtual Machine ID" }, "actionId": { "type": "integer", "description": "Action ID" } }, "required": [ "virtualMachineId", "actionId" ] }, "security": [ { "apiToken": [] } ], "group": "vps" }, { "name": "VPS_getActionsV1", "description": "Retrieve actions performed on a specified virtual machine.\n\nActions are operations or events that have been executed on the virtual\nmachine, such as starting, stopping, or modifying the machine. This endpoint\nallows you to view the history of these actions, providing details about\neach action, such as the action name, timestamp, and status.\n\nUse this endpoint to view VPS operation history and troubleshoot issues.", "method": "GET", "path": "/api/vps/v1/virtual-machines/{virtualMachineId}/actions", "inputSchema": { "type": "object", "properties": { "virtualMachineId": { "type": "integer", "description": "Virtual Machine ID" }, "page": { "type": "integer", "description": "Page number" } }, "required": [ "virtualMachineId" ] }, "security": [ { "apiToken": [] } ], "group": "vps" }, { "name": "VPS_getAttachedPublicKeysV1", "description": "Retrieve public keys attached to a specified virtual machine.\n\nUse this endpoint to view SSH keys configured for specific VPS instances.", "method": "GET", "path": "/api/vps/v1/virtual-machines/{virtualMachineId}/public-keys", "inputSchema": { "type": "object", "properties": { "virtualMachineId": { "type": "integer", "description": "Virtual Machine ID" }, "page": { "type": "integer", "description": "Page number" } }, "required": [ "virtualMachineId" ] }, "security": [ { "apiToken": [] } ], "group": "vps" }, { "name": "VPS_getBackupsV1", "description": "Retrieve backups for a specified virtual machine.\n\nUse this endpoint to view available backup points for VPS data recovery.", "method": "GET", "path": "/api/vps/v1/virtual-machines/{virtualMachineId}/backups", "inputSchema": { "type": "object", "properties": { "virtualMachineId": { "type": "integer", "description": "Virtual Machine ID" }, "page": { "type": "integer", "description": "Page number" } }, "required": [ "virtualMachineId" ] }, "security": [ { "apiToken": [] } ], "group": "vps" }, { "name": "VPS_restoreBackupV1", "description": "Restore a backup for a specified virtual machine.\n\nThe system will then initiate the restore process, which may take some time depending on the size of the backup.\n\n**All data on the virtual machine will be overwritten with the data from the backup.**\n\nUse this endpoint to recover VPS data from backup points.", "method": "POST", "path": "/api/vps/v1/virtual-machines/{virtualMachineId}/backups/{backupId}/restore", "inputSchema": { "type": "object", "properties": { "virtualMachineId": { "type": "integer", "description": "Virtual Machine ID" }, "backupId": { "type": "integer", "description": "Backup ID" } }, "required": [ "virtualMachineId", "backupId" ] }, "security": [ { "apiToken": [] } ], "group": "vps" }, { "name": "VPS_setHostnameV1", "description": "Set hostname for a specified virtual machine.\n\nChanging hostname does not update PTR record automatically.\nIf you want your virtual machine to be reachable by a hostname, \nyou need to point your domain A/AAAA records to virtual machine IP as well.\n\nUse this endpoint to configure custom hostnames for VPS instances.", "method": "PUT", "path": "/api/vps/v1/virtual-machines/{virtualMachineId}/hostname", "inputSchema": { "type": "object", "properties": { "virtualMachineId": { "type": "integer", "description": "Virtual Machine ID" }, "hostname": { "type": "string", "description": "hostname parameter" } }, "required": [ "virtualMachineId", "hostname" ] }, "security": [ { "apiToken": [] } ], "group": "vps" }, { "name": "VPS_resetHostnameV1", "description": "Reset hostname and PTR record of a specified virtual machine to default value.\n\nUse this endpoint to restore default hostname configuration for VPS instances.", "method": "DELETE", "path": "/api/vps/v1/virtual-machines/{virtualMachineId}/hostname", "inputSchema": { "type": "object", "properties": { "virtualMachineId": { "type": "integer", "description": "Virtual Machine ID" } }, "required": [ "virtualMachineId" ] }, "security": [ { "apiToken": [] } ], "group": "vps" }, { "name": "VPS_getVirtualMachineDetailsV1", "description": "Retrieve detailed information about a specified virtual machine.\n\nUse this endpoint to view comprehensive VPS configuration and status.", "method": "GET", "path": "/api/vps/v1/virtual-machines/{virtualMachineId}", "inputSchema": { "type": "object", "properties": { "virtualMachineId": { "type": "integer", "description": "Virtual Machine ID" } }, "required": [ "virtualMachineId" ] }, "security": [ { "apiToken": [] } ], "group": "vps" }, { "name": "VPS_getVirtualMachinesV1", "description": "Retrieve all available virtual machines.\n\nUse this endpoint to view available VPS instances.", "method": "GET", "path": "/api/vps/v1/virtual-machines", "inputSchema": { "type": "object", "properties": {}, "required": [] }, "security": [ { "apiToken": [] } ], "group": "vps" }, { "name": "VPS_purchaseNewVirtualMachineV1", "description": "Purchase and setup a new virtual machine.\n\nIf virtual machine setup fails for any reason, login to\n[hPanel](https://hpanel.hostinger.com/) and complete the setup manually.\n\nIf no payment method is provided, your default payment method will be used automatically.\n\nUse this endpoint to create new VPS instances.", "method": "POST", "path": "/api/vps/v1/virtual-machines", "inputSchema": { "type": "object", "properties": { "item_id": { "type": "string", "description": "Catalog price item ID" }, "payment_method_id": { "type": "integer", "description": "Payment method ID, default will be used if not provided" }, "setup": { "type": "string", "description": "setup parameter" }, "coupons": { "type": "array", "description": "Discount coupon codes", "items": { "type": "string", "description": "coupons parameter" } } }, "required": [ "item_id", "setup" ] }, "security": [ { "apiToken": [] } ], "group": "vps" }, { "name": "VPS_getScanMetricsV1", "description": "Retrieve scan metrics for the [Monarx](https://www.monarx.com/) malware scanner\ninstalled on a specified virtual machine.\n\nThe scan metrics provide detailed information about malware scans performed\nby Monarx, including number of scans, detected threats, and other relevant\nstatistics. This information is useful for monitoring security status of the\nvirtual machine and assessing effectiveness of the malware scanner.\n\nUse this endpoint to monitor VPS security scan results and threat detection.", "method": "GET", "path": "/api/vps/v1/virtual-machines/{virtualMachineId}/monarx", "inputSchema": { "type": "object", "properties": { "virtualMachineId": { "type": "integer", "description": "Virtual Machine ID" } }, "required": [ "virtualMachineId" ] }, "security": [ { "apiToken": [] } ], "group": "vps" }, { "name": "VPS_installMonarxV1", "description": "Install the Monarx malware scanner on a specified virtual machine.\n\n[Monarx](https://www.monarx.com/) is a security tool designed to detect and\nprevent malware infections on virtual machines. By installing Monarx, users\ncan enhance the security of their virtual machines, ensuring that they are\nprotected against malicious software.\n\nUse this endpoint to enable malware protection on VPS instances.", "method": "POST", "path": "/api/vps/v1/virtual-machines/{virtualMachineId}/monarx", "inputSchema": { "type": "object", "properties": { "virtualMachineId": { "type": "integer", "description": "Virtual Machine ID" } }, "required": [ "virtualMachineId" ] }, "security": [ { "apiToken": [] } ], "group": "vps" }, { "name": "VPS_uninstallMonarxV1", "description": "Uninstall the Monarx malware scanner on a specified virtual machine.\n\nIf Monarx is not installed, the request will still be processed without any effect.\n\nUse this endpoint to remove malware scanner from VPS instances.", "method": "DELETE", "path": "/api/vps/v1/virtual-machines/{virtualMachineId}/monarx", "inputSchema": { "type": "object", "properties": { "virtualMachineId": { "type": "integer", "description": "Virtual Machine ID" } }, "required": [ "virtualMachineId" ] }, "security": [ { "apiToken": [] } ], "group": "vps" }, { "name": "VPS_getMetricsV1", "description": "Retrieve historical metrics for a specified virtual machine.\n\nIt includes the following metrics: \n- CPU usage\n- Memory usage\n- Disk usage\n- Network usage\n- Uptime\n\nUse this endpoint to monitor VPS performance and resource utilization over time.", "method": "GET", "path": "/api/vps/v1/virtual-machines/{virtualMachineId}/metrics", "inputSchema": { "type": "object", "properties": { "virtualMachineId": { "type": "integer", "description": "Virtual Machine ID" }, "date_from": { "type": "string", "description": "date_from parameter" }, "date_to": { "type": "string", "description": "date_to parameter" } }, "required": [ "virtualMachineId", "date_from", "date_to" ] }, "security": [ { "apiToken": [] } ], "group": "vps" }, { "name": "VPS_setNameserversV1", "description": "Set nameservers for a specified virtual machine.\n\nBe aware, that improper nameserver configuration can lead to the virtual\nmachine being unable to resolve domain names.\n\nUse this endpoint to configure custom DNS resolvers for VPS instances.", "method": "PUT", "path": "/api/vps/v1/virtual-machines/{virtualMachineId}/nameservers", "inputSchema": { "type": "object", "properties": { "virtualMachineId": { "type": "integer", "description": "Virtual Machine ID" }, "ns1": { "type": "string", "description": "ns1 parameter" }, "ns2": { "type": "string", "description": "ns2 parameter" }, "ns3": { "type": "string", "description": "ns3 parameter" } }, "required": [ "virtualMachineId", "ns1" ] }, "security": [ { "apiToken": [] } ], "group": "vps" }, { "name": "VPS_createPTRRecordV1", "description": "Create or update a PTR (Pointer) record for a specified virtual machine.\n\nUse this endpoint to configure reverse DNS lookup for VPS IP addresses.", "method": "POST", "path": "/api/vps/v1/virtual-machines/{virtualMachineId}/ptr/{ipAddressId}", "inputSchema": { "type": "object", "properties": { "virtualMachineId": { "type": "integer", "description": "Virtual Machine ID" }, "ipAddressId": { "type": "integer", "description": "IP Address ID" }, "domain": { "type": "string", "description": "Pointer record domain" } }, "required": [ "virtualMachineId", "ipAddressId", "domain" ] }, "security": [ { "apiToken": [] } ], "group": "vps" }, { "name": "VPS_deletePTRRecordV1", "description": "Delete a PTR (Pointer) record for a specified virtual machine.\n\nOnce deleted, reverse DNS lookups to the virtual machine's IP address will\nno longer return the previously configured hostname.\n\nUse this endpoint to remove reverse DNS configuration from VPS instances.", "method": "DELETE", "path": "/api/vps/v1/virtual-machines/{virtualMachineId}/ptr/{ipAddressId}", "inputSchema": { "type": "object", "properties": { "virtualMachineId": { "type": "integer", "description": "Virtual Machine ID" }, "ipAddressId": { "type": "integer", "description": "IP Address ID" } }, "required": [ "virtualMachineId", "ipAddressId" ] }, "security": [ { "apiToken": [] } ], "group": "vps" }, { "name": "VPS_setPanelPasswordV1", "description": "Set panel password for a specified virtual machine.\n\nIf virtual machine does not use panel OS, the request will still be processed without any effect.\nRequirements for password are same as in the [recreate virtual machine\nendpoint](/#tag/vps-virtual-machine/POST/api/vps/v1/virtual-machines/{virtualMachineId}/recreate).\n\nUse this endpoint to configure control panel access credentials for VPS instances.", "method": "PUT", "path": "/api/vps/v1/virtual-machines/{virtualMachineId}/panel-password", "inputSchema": { "type": "object", "properties": { "virtualMachineId": { "type": "integer", "description": "Virtual Machine ID" }, "password": { "type": "string", "description": "Panel password for the virtual machine" } }, "required": [ "virtualMachineId", "password" ] }, "security": [ { "apiToken": [] } ], "group": "vps" }, { "name": "VPS_startRecoveryModeV1", "description": "Initiate recovery mode for a specified virtual machine.\n\nRecovery mode is a special state that allows users to perform system rescue operations, \nsuch as repairing file systems, recovering data, or troubleshooting issues that prevent the virtual machine \nfrom booting normally. \n\nVirtual machine will boot recovery disk image and original disk image will be mounted in `/mnt` directory.\n\nUse this endpoint to enable system rescue operations on VPS instances.", "method": "POST", "path": "/api/vps/v1/virtual-machines/{virtualMachineId}/recovery", "inputSchema": { "type": "object", "properties": { "virtualMachineId": { "type": "integer", "description": "Virtual Machine ID" }, "root_password": { "type": "string", "description": "Temporary root password for recovery mode" } }, "required": [ "virtualMachineId", "root_password" ] }, "security": [ { "apiToken": [] } ], "group": "vps" }, { "name": "VPS_stopRecoveryModeV1", "description": "Stop recovery mode for a specified virtual machine.\n\nIf virtual machine is not in recovery mode, this operation will fail.\n\nUse this endpoint to exit system rescue mode and return VPS to normal operation.", "method": "DELETE", "path": "/api/vps/v1/virtual-machines/{virtualMachineId}/recovery", "inputSchema": { "type": "object", "properties": { "virtualMachineId": { "type": "integer", "description": "Virtual Machine ID" } }, "required": [ "virtualMachineId" ] }, "security": [ { "apiToken": [] } ], "group": "vps" }, { "name": "VPS_recreateVirtualMachineV1", "description": "Recreate a virtual machine from scratch.\n\nThe recreation process involves reinstalling the operating system and\nresetting the virtual machine to its initial state.\nSnapshots, if there are any, will be deleted.\n\n## Password Requirements\nPassword will be checked against leaked password databases. \nRequirements for the password are:\n- At least 12 characters long\n- At least one uppercase letter\n- At least one lowercase letter\n- At least one number\n- Is not leaked publicly\n\n**This operation is irreversible and will result in the loss of all data stored on the virtual machine!**\n\nUse this endpoint to completely rebuild VPS instances with fresh OS installation.", "method": "POST", "path": "/api/vps/v1/virtual-machines/{virtualMachineId}/recreate", "inputSchema": { "type": "object", "properties": { "virtualMachineId": { "type": "integer", "description": "Virtual Machine ID" }, "template_id": { "type": "integer", "description": "Template ID" }, "password": { "type": "string", "description": "Root password for the virtual machine. If not provided, random password will be generated.\nPassword will not be shown in the response." }, "panel_password": { "type": "string", "description": "Panel password for the panel-based OS template. If not provided, random password will be generated.\nIf OS does not support panel_password this field will be ignored.\nPassword will not be shown in the response." }, "post_install_script_id": { "type": "integer", "description": "Post-install script to execute after virtual machine was recreated" } }, "required": [ "virtualMachineId", "template_id" ] }, "security": [ { "apiToken": [] } ], "group": "vps" }, { "name": "VPS_restartVirtualMachineV1", "description": "Restart a specified virtual machine by fully stopping and starting it.\n\nIf the virtual machine was stopped, it will be started.\n\nUse this endpoint to reboot VPS instances.", "method": "POST", "path": "/api/vps/v1/virtual-machines/{virtualMachineId}/restart", "inputSchema": { "type": "object", "properties": { "virtualMachineId": { "type": "integer", "description": "Virtual Machine ID" } }, "required": [ "virtualMachineId" ] }, "security": [ { "apiToken": [] } ], "group": "vps" }, { "name": "VPS_setRootPasswordV1", "description": "Set root password for a specified virtual machine.\n\nRequirements for password are same as in the [recreate virtual machine\nendpoint](/#tag/vps-virtual-machine/POST/api/vps/v1/virtual-machines/{virtualMachineId}/recreate).\n\nUse this endpoint to update administrator credentials for VPS instances.", "method": "PUT", "path": "/api/vps/v1/virtual-machines/{virtualMachineId}/root-password", "inputSchema": { "type": "object", "properties": { "virtualMachineId": { "type": "integer", "description": "Virtual Machine ID" }, "password": { "type": "string", "description": "Root password for the virtual machine" } }, "required": [ "virtualMachineId", "password" ] }, "security": [ { "apiToken": [] } ], "group": "vps" }, { "name": "VPS_setupPurchasedVirtualMachineV1", "description": "Setup newly purchased virtual machine with `initial` state.\n\nUse this endpoint to configure and initialize purchased VPS instances.", "method": "POST", "path": "/api/vps/v1/virtual-machines/{virtualMachineId}/setup", "inputSchema": { "type": "object", "properties": { "virtualMachineId": { "type": "integer", "description": "Virtual Machine ID" }, "template_id": { "type": "integer", "description": "Template ID" }, "data_center_id": { "type": "integer", "description": "Data center ID" }, "post_install_script_id": { "type": "integer", "description": "Post-install script ID" }, "password": { "type": "string", "description": "Password for the virtual machine. If not provided, random password will be generated.\nPassword will not be shown in the response." }, "hostname": { "type": "string", "description": "Override default hostname of the virtual machine" }, "install_monarx": { "type": "boolean", "description": "Install Monarx malware scanner (if supported)" }, "enable_backups": { "type": "boolean", "description": "Enable weekly backup schedule" }, "ns1": { "type": "string", "description": "Name server 1" }, "ns2": { "type": "string", "description": "Name server 2" }, "public_key": { "type": "object", "description": "Use SSH key", "properties": { "name": { "type": "string", "description": "Name of the SSH key" }, "key": { "type": "string", "description": "Contents of the SSH key" } } } }, "required": [ "virtualMachineId", "data_center_id", "template_id" ] }, "security": [ { "apiToken": [] } ], "group": "vps" }, { "name": "VPS_getSnapshotV1", "description": "Retrieve snapshot for a specified virtual machine.\n\nUse this endpoint to view current VPS snapshot information.", "method": "GET", "path": "/api/vps/v1/virtual-machines/{virtualMachineId}/snapshot", "inputSchema": { "type": "object", "properties": { "virtualMachineId": { "type": "integer", "description": "Virtual Machine ID" } }, "required": [ "virtualMachineId" ] }, "security": [ { "apiToken": [] } ], "group": "vps" }, { "name": "VPS_createSnapshotV1", "description": "Create a snapshot of a specified virtual machine.\n\nA snapshot captures the state and data of the virtual machine at a specific point in time, \nallowing users to restore the virtual machine to that state if needed. \nThis operation is useful for backup purposes, system recovery, \nand testing changes without affecting the current state of the virtual machine.\n\n**Creating new snapshot will overwrite the existing snapshot!**\n\nUse this endpoint to capture VPS state for backup and recovery purposes.", "method": "POST", "path": "/api/vps/v1/virtual-machines/{virtualMachineId}/snapshot", "inputSchema": { "type": "object", "properties": { "virtualMachineId": { "type": "integer", "description": "Virtual Machine ID" } }, "required": [ "virtualMachineId" ] }, "security": [ { "apiToken": [] } ], "group": "vps" }, { "name": "VPS_deleteSnapshotV1", "description": "Delete a snapshot of a specified virtual machine.\n\nUse this endpoint to remove VPS snapshots.", "method": "DELETE", "path": "/api/vps/v1/virtual-machines/{virtualMachineId}/snapshot", "inputSchema": { "type": "object", "properties": { "virtualMachineId": { "type": "integer", "description": "Virtual Machine ID" } }, "required": [ "virtualMachineId" ] }, "security": [ { "apiToken": [] } ], "group": "vps" }, { "name": "VPS_restoreSnapshotV1", "description": "Restore a specified virtual machine to a previous state using a snapshot.\n\nRestoring from a snapshot allows users to revert the virtual machine to that state,\nwhich is useful for system recovery, undoing changes, or testing.\n\nUse this endpoint to revert VPS instances to previous saved states.", "method": "POST", "path": "/api/vps/v1/virtual-machines/{virtualMachineId}/snapshot/restore", "inputSchema": { "type": "object", "properties": { "virtualMachineId": { "type": "integer", "description": "Virtual Machine ID" } }, "required": [ "virtualMachineId" ] }, "security": [ { "apiToken": [] } ], "group": "vps" }, { "name": "VPS_startVirtualMachineV1", "description": "Start a specified virtual machine.\n\nIf the virtual machine is already running, the request will still be processed without any effect.\n\nUse this endpoint to power on stopped VPS instances.", "method": "POST", "path": "/api/vps/v1/virtual-machines/{virtualMachineId}/start", "inputSchema": { "type": "object", "properties": { "virtualMachineId": { "type": "integer", "description": "Virtual Machine ID" } }, "required": [ "virtualMachineId" ] }, "security": [ { "apiToken": [] } ], "group": "vps" }, { "name": "VPS_stopVirtualMachineV1", "description": "Stop a specified virtual machine.\n\nIf the virtual machine is already stopped, the request will still be processed without any effect.\n\nThis is a compute-only power state change and does not affect billing. To stop future charges,\ndisable auto-renewal on the owning subscription.\n\nUse this endpoint to power off running VPS instances.", "method": "POST", "path": "/api/vps/v1/virtual-machines/{virtualMachineId}/stop", "inputSchema": { "type": "object", "properties": { "virtualMachineId": { "type": "integer", "description": "Virtual Machine ID" } }, "required": [ "virtualMachineId" ] }, "security": [ { "apiToken": [] } ], "group": "vps" }, { "name": "hosting_showAIOptionStatusV1", "description": "Show the current AI option status for the Hostinger Tools plugin on the\nspecified WordPress installation. Filter by `option` to return a single\noption, or omit it to return all options.\n\nProvide the WordPress installation (software) identifier in the path. It can\nbe obtained from GET /api/hosting/v1/wordpress/installations (the `id` field).", "method": "GET", "path": "/api/hosting/v1/accounts/{username}/wordpress/{software}/hostinger-plugins/ai-option/status", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "software": { "type": "string", "description": "WordPress installation (software) identifier" }, "option": { "type": "string", "description": "Filter the status by a single AI option.", "enum": [ "llmstxt", "web2agent" ] } }, "required": [ "username", "software" ] }, "security": [ { "apiToken": [] } ], "group": "wordpress" }, { "name": "hosting_setAIOptionStatusV1", "description": "Enable or disable an AI option for the Hostinger Tools plugin on the specified\nWordPress installation.\n\nProvide the WordPress installation (software) identifier in the path. It can\nbe obtained from GET /api/hosting/v1/wordpress/installations (the `id` field).", "method": "PATCH", "path": "/api/hosting/v1/accounts/{username}/wordpress/{software}/hostinger-plugins/ai-option/status", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "software": { "type": "string", "description": "WordPress installation (software) identifier" }, "option": { "type": "string", "description": "AI option name", "enum": [ "llmstxt", "web2agent" ] }, "enable": { "type": "boolean", "description": "Enable (true) or disable (false) the AI option." } }, "required": [ "username", "software", "option", "enable" ] }, "security": [ { "apiToken": [] } ], "group": "wordpress" }, { "name": "hosting_checkIfWordPressInstallationsAreValidV1", "description": "Check whether one or more WordPress installations are valid and working\ncorrectly. Detects broken installations caused by missing files, broken\nplugins, themes and similar issues.\n\nProvide the WordPress installation (software) identifiers in the body. They\ncan be obtained from GET /api/hosting/v1/wordpress/installations (the `id`\nfield).", "method": "POST", "path": "/api/hosting/v1/accounts/{username}/wordpress/installations/check-is-valid", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "software_ids": { "type": "array", "description": "WordPress installation (software) identifiers to validate.", "items": { "type": "string", "description": "Software identifier" } }, "force": { "type": "boolean", "description": "Force fresh validation without cache. Preferable for troubleshooting purposes." } }, "required": [ "username", "software_ids" ] }, "security": [ { "apiToken": [] } ], "group": "wordpress" }, { "name": "hosting_deleteWordPressInstallationV1", "description": "Delete the specified WordPress installation, with optional file and database\nremoval. This removes all associated components including plugins, themes,\nstaging websites and any other related data.\n\nProvide the WordPress installation (software) identifier in the path. It can\nbe obtained from GET /api/hosting/v1/wordpress/installations (the `id` field).", "method": "DELETE", "path": "/api/hosting/v1/accounts/{username}/wordpress/{software}", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "software": { "type": "string", "description": "WordPress installation (software) identifier" } }, "required": [ "username", "software" ] }, "security": [ { "apiToken": [] } ], "group": "wordpress" }, { "name": "hosting_detectWordPressInstallationsV1", "description": "Trigger a background scan to detect WordPress installations for the account.\n\nThis operation is asynchronous: a successful response only means the scan has\nbeen queued. Poll GET /api/hosting/v1/wordpress/installations to fetch the\ndetected installations once the scan completes.", "method": "POST", "path": "/api/hosting/v1/accounts/{username}/wordpress/installations/detect", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" } }, "required": [ "username" ] }, "security": [ { "apiToken": [] } ], "group": "wordpress" }, { "name": "hosting_importWordPressWebsiteV1", "description": "Import WordPress website to the specified domain.\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 import a WordPress website from archive and\ndatabase files that have been uploaded to the website's directory.", "method": "POST", "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/wordpress/import", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "domain": { "type": "string", "description": "Domain name" }, "archive_path": { "type": "string", "description": "Path to the WordPress archive file (relative to website root)" }, "sql_path": { "type": "string", "description": "Path to the database SQL file (relative to website root)" } }, "required": [ "username", "domain", "archive_path", "sql_path" ] }, "security": [ { "apiToken": [] } ], "group": "wordpress" }, { "name": "hosting_installWordPressV1", "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.", "method": "POST", "path": "/api/hosting/v1/accounts/{username}/wordpress/installations", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "domain": { "type": "string", "description": "Domain of the existing website where WordPress will be installed" }, "site_title": { "type": "string", "description": "Title of the WordPress site" }, "language": { "type": "string", "description": "WordPress locale. Defaults to en_US when omitted." }, "directory": { "type": "string", "description": "Relative directory to install WordPress into. Defaults to the website root when omitted." }, "overwrite": { "type": "boolean", "description": "When false (default), does not replace an existing installation. If WordPress is already installed on the domain/path, the async install job fails unless true." }, "auto_updates": { "type": "string", "description": "WordPress core auto-update policy", "enum": [ "all", "none", "minor" ] }, "version": { "type": "string", "description": "WordPress core version to install. If omitted, the latest core version compatible with the account vhost PHP version is selected." }, "credentials": { "type": "object", "description": "WordPress admin credentials", "properties": { "email": { "type": "string", "description": "email parameter" }, "login": { "type": "string", "description": "WordPress admin username" }, "password": { "type": "string", "description": "password parameter" } }, "required": [ "email", "login", "password" ] }, "database": { "type": "object", "description": "Optional. If the named database already exists, it will be used for this WordPress install. Otherwise a new database is created with a generated name and random credentials.", "properties": { "name": { "type": "string", "description": "Database name (username prefix added if missing)" }, "password": { "type": "string", "description": "password parameter" } } } }, "required": [ "username", "domain", "site_title", "credentials" ] }, "security": [ { "apiToken": [] } ], "group": "wordpress" }, { "name": "hosting_listWordPressInstallationsV1", "description": "List WordPress installations accessible to the authenticated client.\n\nUse this endpoint to discover existing WordPress installations and to poll\nfor installation status after calling the install endpoint. When a newly\nrequested installation appears in this list, WordPress is ready. Filter by\nusername and domain to narrow results to a specific website.\n\nEach installation includes a `valid` flag and, when invalid, a\n`validationError` describing why.", "method": "GET", "path": "/api/hosting/v1/wordpress/installations", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "Filter by specific username" }, "domain": { "type": "string", "description": "Filter by domain name (case-insensitive substring match)" }, "ownership": { "type": "string", "description": "Filter by ownership type. Defaults to \"owned\". Use \"all\" to include both owned and managed installations.", "enum": [ "owned", "managed", "all" ] } }, "required": [] }, "security": [ { "apiToken": [] } ], "group": "wordpress" }, { "name": "hosting_listAvailableWordPressCoreUpdatesV1", "description": "List available WordPress core updates for the specified installation.\n\nProvide the WordPress installation (software) identifier in the path. It can\nbe obtained from GET /api/hosting/v1/wordpress/installations (the `id` field).", "method": "GET", "path": "/api/hosting/v1/accounts/{username}/wordpress/{software}/updates", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "software": { "type": "string", "description": "WordPress installation (software) identifier" } }, "required": [ "username", "software" ] }, "security": [ { "apiToken": [] } ], "group": "wordpress" }, { "name": "hosting_getInstallationJWTTokenV1", "description": "Return a JWT token used to authenticate requests against the specified\nWordPress installation, including its MCP (Model Context Protocol) endpoint.\n\nProvide the WordPress installation (software) identifier in the path. It can\nbe obtained from GET /api/hosting/v1/wordpress/installations (the `id` field).", "method": "GET", "path": "/api/hosting/v1/accounts/{username}/wordpress/{software}/jwt-token", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "software": { "type": "string", "description": "WordPress installation (software) identifier" } }, "required": [ "username", "software" ] }, "security": [ { "apiToken": [] } ], "group": "wordpress" }, { "name": "hosting_showWordPressCoreVersionV1", "description": "Show the WordPress core version for the specified installation, along with\nknown vulnerabilities affecting it.\n\nProvide the WordPress installation (software) identifier in the path. It can\nbe obtained from GET /api/hosting/v1/wordpress/installations (the `id` field).", "method": "GET", "path": "/api/hosting/v1/accounts/{username}/wordpress/{software}/version", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "software": { "type": "string", "description": "WordPress installation (software) identifier" } }, "required": [ "username", "software" ] }, "security": [ { "apiToken": [] } ], "group": "wordpress" }, { "name": "hosting_updateWordPressCoreV1", "description": "Update the WordPress core for the specified installation (minor update or a\nspecific version).\n\nProvide the WordPress installation (software) identifier in the path. It can\nbe obtained from GET /api/hosting/v1/wordpress/installations (the `id` field).\n\nThis operation is asynchronous: a successful response only means the update\njob has been queued.", "method": "POST", "path": "/api/hosting/v1/accounts/{username}/wordpress/{software}/update", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "software": { "type": "string", "description": "WordPress installation (software) identifier" }, "minor": { "type": "boolean", "description": "Update the minor version only." }, "version": { "type": "string", "description": "Update to a specific WordPress core version." } }, "required": [ "username", "software" ] }, "security": [ { "apiToken": [] } ], "group": "wordpress" }, { "name": "hosting_purgeLiteSpeedCacheV1", "description": "Purge the LiteSpeed Cache for the specified WordPress installation.\n\nProvide the WordPress installation (software) identifier in the path. It can\nbe obtained from GET /api/hosting/v1/wordpress/installations (the `id` field).", "method": "POST", "path": "/api/hosting/v1/accounts/{username}/wordpress/{software}/litespeed-cache/purge", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "software": { "type": "string", "description": "WordPress installation (software) identifier" } }, "required": [ "username", "software" ] }, "security": [ { "apiToken": [] } ], "group": "wordpress" }, { "name": "hosting_showLiteSpeedCacheStatusV1", "description": "Show the LiteSpeed Cache status for the specified WordPress installation.\n\nProvide the WordPress installation (software) identifier in the path. It can\nbe obtained from GET /api/hosting/v1/wordpress/installations (the `id` field).", "method": "GET", "path": "/api/hosting/v1/accounts/{username}/wordpress/{software}/litespeed-cache/status", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "software": { "type": "string", "description": "WordPress installation (software) identifier" } }, "required": [ "username", "software" ] }, "security": [ { "apiToken": [] } ], "group": "wordpress" }, { "name": "hosting_createLoginLinksV1", "description": "Create temporary auto-login links for the specified WordPress installation.\n\nProvide the WordPress installation (software) identifier in the path. It can\nbe obtained from GET /api/hosting/v1/wordpress/installations (the `id` field).", "method": "POST", "path": "/api/hosting/v1/accounts/{username}/wordpress/{software}/login/links", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "software": { "type": "string", "description": "WordPress installation (software) identifier" } }, "required": [ "username", "software" ] }, "security": [ { "apiToken": [] } ], "group": "wordpress" }, { "name": "hosting_showMaintenanceStatusV1", "description": "Show the maintenance mode status for the specified WordPress installation.\n\nProvide the WordPress installation (software) identifier in the path. It can\nbe obtained from GET /api/hosting/v1/wordpress/installations (the `id` field).", "method": "GET", "path": "/api/hosting/v1/accounts/{username}/wordpress/{software}/maintenance/status", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "software": { "type": "string", "description": "WordPress installation (software) identifier" } }, "required": [ "username", "software" ] }, "security": [ { "apiToken": [] } ], "group": "wordpress" }, { "name": "hosting_toggleMaintenanceModeV1", "description": "Enable or disable maintenance mode for the specified WordPress installation,\nbased on the `enabled` flag.\n\nProvide the WordPress installation (software) identifier in the path. It can\nbe obtained from GET /api/hosting/v1/wordpress/installations (the `id` field).", "method": "PATCH", "path": "/api/hosting/v1/accounts/{username}/wordpress/{software}/maintenance/toggle", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "software": { "type": "string", "description": "WordPress installation (software) identifier" }, "enabled": { "type": "boolean", "description": "Enable (true) or disable (false) maintenance mode for the WordPress installation." } }, "required": [ "username", "software", "enabled" ] }, "security": [ { "apiToken": [] } ], "group": "wordpress" }, { "name": "hosting_showMemcachedObjectCacheStatusV1", "description": "Show the Memcached object cache status for the specified WordPress\ninstallation.\n\nProvide the WordPress installation (software) identifier in the path. It can\nbe obtained from GET /api/hosting/v1/wordpress/installations (the `id` field).", "method": "GET", "path": "/api/hosting/v1/accounts/{username}/wordpress/{software}/memcached/status", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "software": { "type": "string", "description": "WordPress installation (software) identifier" } }, "required": [ "username", "software" ] }, "security": [ { "apiToken": [] } ], "group": "wordpress" }, { "name": "hosting_toggleMemcachedObjectCacheV1", "description": "Activate or deactivate the Memcached object cache for the specified WordPress\ninstallation, based on the `enabled` flag.\n\nProvide the WordPress installation (software) identifier in the path. It can\nbe obtained from GET /api/hosting/v1/wordpress/installations (the `id` field).", "method": "PATCH", "path": "/api/hosting/v1/accounts/{username}/wordpress/{software}/memcached/toggle", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "software": { "type": "string", "description": "WordPress installation (software) identifier" }, "enabled": { "type": "boolean", "description": "Activate (true) or deactivate (false) the Memcached object cache for the WordPress installation." } }, "required": [ "username", "software", "enabled" ] }, "security": [ { "apiToken": [] } ], "group": "wordpress" }, { "name": "hosting_activateWordPressPluginV1", "description": "Activate an installed plugin on a WordPress installation.\n\nProvide the WordPress installation (software) identifier in the path. It can\nbe obtained from GET /api/hosting/v1/wordpress/installations (the `id` field).\n\nThis operation is asynchronous: a successful response only means the activation\njob has been queued.", "method": "POST", "path": "/api/hosting/v1/accounts/{username}/wordpress/{software}/plugins/activate", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "software": { "type": "string", "description": "WordPress installation (software) identifier" }, "plugin": { "type": "string", "description": "Slug of the installed plugin to activate." } }, "required": [ "username", "software", "plugin" ] }, "security": [ { "apiToken": [] } ], "group": "wordpress" }, { "name": "hosting_deactivateWordPressPluginV1", "description": "Deactivate an installed plugin on a WordPress installation.\n\nProvide the WordPress installation (software) identifier in the path. It can\nbe obtained from GET /api/hosting/v1/wordpress/installations (the `id` field).\n\nThis operation is asynchronous: a successful response only means the\ndeactivation job has been queued.", "method": "POST", "path": "/api/hosting/v1/accounts/{username}/wordpress/{software}/plugins/deactivate", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "software": { "type": "string", "description": "WordPress installation (software) identifier" }, "plugin": { "type": "string", "description": "Slug of the installed plugin to deactivate." } }, "required": [ "username", "software", "plugin" ] }, "security": [ { "apiToken": [] } ], "group": "wordpress" }, { "name": "hosting_deployWordPressPluginV1", "description": "Deploy a WordPress plugin from an already uploaded directory.\n\nThis endpoint allows you to deploy a WordPress plugin that has been uploaded to the website's directory.\nThe plugin will be activated and made available in the WordPress admin panel.", "method": "POST", "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/wordpress/plugins/deploy", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "domain": { "type": "string", "description": "Domain name" }, "slug": { "type": "string", "description": "Slug of the plugin" }, "plugin_path": { "type": "string", "description": "Relative path to the plugin directory from wp-content/plugins" } }, "required": [ "username", "domain", "slug", "plugin_path" ] }, "security": [ { "apiToken": [] } ], "group": "wordpress" }, { "name": "hosting_installWordPressPluginsV1", "description": "Install one or more plugins on an existing WordPress installation.\n\nProvide the WordPress installation (software) identifier in the path. It can\nbe obtained from GET /api/hosting/v1/wordpress/installations (the `id`\nfield). Use GET /api/hosting/v1/wordpress/plugins to discover the plugin\nslugs available for installation.\n\nThis operation is asynchronous: a successful response only means the install\njob has been queued, not that the plugins are ready.", "method": "POST", "path": "/api/hosting/v1/accounts/{username}/wordpress/{software}/plugins/install", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "software": { "type": "string", "description": "WordPress installation (software) identifier" }, "plugins": { "type": "array", "description": "Plugin slugs to install. Use GET /api/hosting/v1/wordpress/plugins to discover available slugs.", "items": { "type": "string", "description": "Plugin slug" } } }, "required": [ "username", "software", "plugins" ] }, "security": [ { "apiToken": [] } ], "group": "wordpress" }, { "name": "hosting_listAvailableWordPressPluginsV1", "description": "List plugins recommended for installation on a WordPress installation that are\nnot yet installed.\n\nProvide the WordPress installation (software) identifier in the path. It can\nbe obtained from GET /api/hosting/v1/wordpress/installations (the `id` field).", "method": "GET", "path": "/api/hosting/v1/accounts/{username}/wordpress/{software}/plugins/available", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "software": { "type": "string", "description": "WordPress installation (software) identifier" } }, "required": [ "username", "software" ] }, "security": [ { "apiToken": [] } ], "group": "wordpress" }, { "name": "hosting_listInstalledWordPressPluginsV1", "description": "List plugins installed on a WordPress installation, including their status,\navailable updates and known vulnerabilities.\n\nProvide the WordPress installation (software) identifier in the path. It can\nbe obtained from GET /api/hosting/v1/wordpress/installations (the `id` field).", "method": "GET", "path": "/api/hosting/v1/accounts/{username}/wordpress/{software}/plugins", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "software": { "type": "string", "description": "WordPress installation (software) identifier" }, "category": { "type": "string", "description": "Filter installed plugins by category.", "enum": [ "cache" ] } }, "required": [ "username", "software" ] }, "security": [ { "apiToken": [] } ], "group": "wordpress" }, { "name": "hosting_searchWordPressPluginsV1", "description": "Search the WordPress.org plugin directory for plugins available to install.\n\nUse the returned `slug` values with\nPOST /api/hosting/v1/accounts/{username}/wordpress/{software}/plugins/install.", "method": "GET", "path": "/api/hosting/v1/wordpress/plugins", "inputSchema": { "type": "object", "properties": { "search": { "type": "string", "description": "Search term to match against plugin names. Minimum 3 characters." } }, "required": [ "search" ] }, "security": [ { "apiToken": [] } ], "group": "wordpress" }, { "name": "hosting_listSuggestedWordPressPluginsV1", "description": "List curated plugin suggestions grouped by website type.\n\nUse the returned `slug` values with\nPOST /api/hosting/v1/accounts/{username}/wordpress/{software}/plugins/install.", "method": "GET", "path": "/api/hosting/v1/wordpress/plugins/suggested", "inputSchema": { "type": "object", "properties": { "order_id": { "type": "integer", "description": "Optionally scope suggestions to a specific order." } }, "required": [] }, "security": [ { "apiToken": [] } ], "group": "wordpress" }, { "name": "hosting_checkIfWooCommerceIsInstalledV1", "description": "Check whether WooCommerce is installed on any WordPress installation of a\ndomain. Optionally filter by domain to scope the check.", "method": "GET", "path": "/api/hosting/v1/wordpress/plugins/is-woocommerce-installed", "inputSchema": { "type": "object", "properties": { "domain": { "type": "string", "description": "Filter by domain name (case-insensitive substring match)" } }, "required": [] }, "security": [ { "apiToken": [] } ], "group": "wordpress" }, { "name": "hosting_uninstallWordPressPluginsV1", "description": "Uninstall one or more plugins from a WordPress installation.\n\nProvide the WordPress installation (software) identifier in the path. It can\nbe obtained from GET /api/hosting/v1/wordpress/installations (the `id` field).\n\nThis operation is asynchronous: a successful response only means the uninstall\njob has been queued.", "method": "POST", "path": "/api/hosting/v1/accounts/{username}/wordpress/{software}/plugins/uninstall", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "software": { "type": "string", "description": "WordPress installation (software) identifier" }, "plugins": { "type": "array", "description": "Slugs of the installed plugins to uninstall.", "items": { "type": "string", "description": "Plugin slug" } } }, "required": [ "username", "software", "plugins" ] }, "security": [ { "apiToken": [] } ], "group": "wordpress" }, { "name": "hosting_updateHostingerWordPressPluginV1", "description": "Update a Hostinger plugin to its latest version on a WordPress installation.\n\nProvide the WordPress installation (software) identifier in the path. It can\nbe obtained from GET /api/hosting/v1/wordpress/installations (the `id` field).\n\nThis operation is asynchronous: a successful response only means the update job\nhas been queued.", "method": "POST", "path": "/api/hosting/v1/accounts/{username}/wordpress/{software}/plugins/hostinger/update", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "software": { "type": "string", "description": "WordPress installation (software) identifier" }, "slug": { "type": "string", "description": "Slug of the Hostinger plugin to update to its latest version.", "enum": [ "hostinger", "hostinger-ai-assistant", "hostinger-affiliate-plugin", "hostinger-easy-onboarding", "hostinger-reach" ] } }, "required": [ "username", "software", "slug" ] }, "security": [ { "apiToken": [] } ], "group": "wordpress" }, { "name": "hosting_updateWordPressPluginsV1", "description": "Update one or more installed plugins to their latest version on a WordPress\ninstallation.\n\nProvide the WordPress installation (software) identifier in the path. It can\nbe obtained from GET /api/hosting/v1/wordpress/installations (the `id` field).\n\nThis operation is asynchronous: a successful response only means the update job\nhas been queued.", "method": "POST", "path": "/api/hosting/v1/accounts/{username}/wordpress/{software}/plugins/update", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "software": { "type": "string", "description": "WordPress installation (software) identifier" }, "plugins": { "type": "array", "description": "Slugs of the installed plugins to update to their latest version.", "items": { "type": "string", "description": "Plugin slug" } } }, "required": [ "username", "software", "plugins" ] }, "security": [ { "apiToken": [] } ], "group": "wordpress" }, { "name": "hosting_activateWordPressThemeV1", "description": "Activate an installed theme on a WordPress installation.\n\nProvide the WordPress installation (software) identifier in the path. It can\nbe obtained from GET /api/hosting/v1/wordpress/installations (the `id` field).\n\nThis operation is asynchronous: a successful response only means the activation\njob has been queued.", "method": "POST", "path": "/api/hosting/v1/accounts/{username}/wordpress/{software}/themes/activate", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "software": { "type": "string", "description": "WordPress installation (software) identifier" }, "theme": { "type": "string", "description": "Slug of the installed theme to activate." } }, "required": [ "username", "software", "theme" ] }, "security": [ { "apiToken": [] } ], "group": "wordpress" }, { "name": "hosting_deployWordPressThemeV1", "description": "Deploy a WordPress theme from an already uploaded directory.\n\nThis endpoint allows you to deploy a WordPress theme that has been uploaded to the website's directory.\nThe theme can be optionally activated after deployment.", "method": "POST", "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/wordpress/themes/deploy", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "domain": { "type": "string", "description": "Domain name" }, "slug": { "type": "string", "description": "Slug of the theme" }, "theme_path": { "type": "string", "description": "Relative path to the theme directory from wp-content/themes" }, "is_activated": { "type": "boolean", "description": "Whether to activate the theme after deployment" } }, "required": [ "username", "domain", "slug", "theme_path" ] }, "security": [ { "apiToken": [] } ], "group": "wordpress" }, { "name": "hosting_installWordPressThemeV1", "description": "Install a theme on an existing WordPress installation.\n\nProvide the WordPress installation (software) identifier in the path. It can\nbe obtained from GET /api/hosting/v1/wordpress/installations (the `id`\nfield).\n\nWhen the theme is one of the Hostinger themes (hostinger-blog,\nhostinger-affiliate-theme, hostinger-ai-theme), the optional `palette`,\n`layout`, and `font` fields are forwarded to the custom installer (defaults:\npalette1, layout1, default). For any other theme they are ignored.\n\nThis operation is asynchronous: a successful response only means the install\njob has been queued, not that the theme is ready.", "method": "POST", "path": "/api/hosting/v1/accounts/{username}/wordpress/{software}/themes/install", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "software": { "type": "string", "description": "WordPress installation (software) identifier" }, "theme": { "type": "string", "description": "Slug of the theme to install. Hostinger theme slugs (hostinger-blog, hostinger-affiliate-theme, hostinger-ai-theme) trigger the custom installer and forward the optional palette/layout/font fields; any other WordPress theme slug uses the standard installer and ignores those fields." }, "palette": { "type": "string", "description": "Palette identifier. Only applied when the theme is a Hostinger theme; the default is used when omitted." }, "layout": { "type": "string", "description": "Layout identifier. Only applied when the theme is a Hostinger theme; the default is used when omitted." }, "font": { "type": "string", "description": "Font identifier. Only applied when the theme is a Hostinger theme; the default is used when omitted.", "enum": [ "professional", "modern", "elegant", "creative", "dynamic", "default" ] } }, "required": [ "username", "software", "theme" ] }, "security": [ { "apiToken": [] } ], "group": "wordpress" }, { "name": "hosting_listInstalledWordPressThemesV1", "description": "List themes installed on a WordPress installation, including their status,\navailable updates and known vulnerabilities.\n\nProvide the WordPress installation (software) identifier in the path. It can\nbe obtained from GET /api/hosting/v1/wordpress/installations (the `id` field).", "method": "GET", "path": "/api/hosting/v1/accounts/{username}/wordpress/{software}/themes", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "software": { "type": "string", "description": "WordPress installation (software) identifier" } }, "required": [ "username", "software" ] }, "security": [ { "apiToken": [] } ], "group": "wordpress" }, { "name": "hosting_listWordPressThemesV1", "description": "List WordPress themes available to install.\n\nUse the returned `slug` values with\nPOST /api/hosting/v1/accounts/{username}/wordpress/{software}/themes/install.", "method": "GET", "path": "/api/hosting/v1/wordpress/themes", "inputSchema": { "type": "object", "properties": { "order_id": { "type": "integer", "description": "Optionally scope themes to a specific order." }, "search": { "type": "string", "description": "Search term to match against theme names." } }, "required": [] }, "security": [ { "apiToken": [] } ], "group": "wordpress" }, { "name": "hosting_uninstallWordPressThemesV1", "description": "Uninstall one or more themes from a WordPress installation.\n\nProvide the WordPress installation (software) identifier in the path. It can\nbe obtained from GET /api/hosting/v1/wordpress/installations (the `id` field).\n\nThis operation is asynchronous: a successful response only means the uninstall\njob has been queued.", "method": "POST", "path": "/api/hosting/v1/accounts/{username}/wordpress/{software}/themes/uninstall", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "software": { "type": "string", "description": "WordPress installation (software) identifier" }, "themes": { "type": "array", "description": "Slugs of the installed themes to uninstall.", "items": { "type": "string", "description": "Theme slug" } } }, "required": [ "username", "software", "themes" ] }, "security": [ { "apiToken": [] } ], "group": "wordpress" }, { "name": "hosting_updateWordPressThemesV1", "description": "Update one or more installed themes to their latest version on a WordPress\ninstallation.\n\nProvide the WordPress installation (software) identifier in the path. It can\nbe obtained from GET /api/hosting/v1/wordpress/installations (the `id` field).\n\nThis operation is asynchronous: a successful response only means the update job\nhas been queued.", "method": "POST", "path": "/api/hosting/v1/accounts/{username}/wordpress/{software}/themes/update", "inputSchema": { "type": "object", "properties": { "username": { "type": "string", "description": "username parameter" }, "software": { "type": "string", "description": "WordPress installation (software) identifier" }, "themes": { "type": "array", "description": "Slugs of the installed themes to update to their latest version.", "items": { "type": "string", "description": "Theme slug" } } }, "required": [ "username", "software", "themes" ] }, "security": [ { "apiToken": [] } ], "group": "wordpress" } ]; export default tools;