hostinger-api-mcp
v1.26.0
Published
MCP server for Hostinger API
Maintainers
Readme
hostinger-api-mcp
Model Context Protocol (MCP) server for Hostinger API.
Prerequisites
- Node.js version 24 or higher
If you don't have Node.js installed, you can download it from the official website. Alternatively, you can use a package manager like Homebrew (for macOS) or Chocolatey (for Windows) to install Node.js.
We recommend using NVM (Node Version Manager) to install and manage installed Node.js versions. After installing NVM, you can install Node.js with the following command:
nvm install v24
nvm use v24Installation
To install the MCP server, run one of the following command, depending on your package manager:
# Install globally from npm
npm install -g hostinger-api-mcp
# Or with yarn
yarn global add hostinger-api-mcp
# Or with pnpm
pnpm add -g hostinger-api-mcpUpdate
To update the MCP server to the latest version, use one of the following commands, depending on your package manager:
# Update globally from npm
npm update -g hostinger-api-mcp
# Or with yarn
yarn global upgrade hostinger-api-mcp
# Or with pnpm
pnpm update -g hostinger-api-mcpBinaries
This package installs the following MCP server commands:
hostinger-api-mcp— unified server with every tool (276 total)hostinger-agency-hosting-mcp— 27 tools for agency-hostinghostinger-billing-mcp— 9 tools for billinghostinger-dns-mcp— 8 tools for dnshostinger-domains-mcp— 23 tools for domainshostinger-ecommerce-mcp— 12 tools for ecommercehostinger-horizons-mcp— 2 tools for horizonshostinger-hosting-mcp— 48 tools for hostinghostinger-mail-mcp— 38 tools for mailhostinger-reach-mcp— 12 tools for reachhostinger-vps-mcp— 62 tools for vpshostinger-wordpress-mcp— 35 tools for wordpress
Pick the binary that matches your agent's scope. hostinger-api-mcp remains the backwards-compatible default.
Configuration
The following environment variables can be configured when running the server:
DEBUG: Enable debug logging (true/false) (default: false)HOSTINGER_API_TOKEN: Your API token, which will be sent in theAuthorizationheader. When set, OAuth is bypassed entirely.API_TOKEN: Deprecated alias forHOSTINGER_API_TOKEN. Will be removed in a future version — preferHOSTINGER_API_TOKEN.OAUTH_ISSUER: OAuth server base URL (default:https://auth.hostinger.com). Only used whenHOSTINGER_API_TOKENis not set.
Authentication
The server supports two authentication methods:
API Token (recommended for CI/scripts)
Set HOSTINGER_API_TOKEN in the environment or .env file. When present it always takes precedence — no OAuth code runs.
OAuth 2.0 with PKCE (interactive sign-in)
When HOSTINGER_API_TOKEN is not set and the server runs in stdio mode, OAuth 2.0 with PKCE is used automatically on the first authenticated tool call:
- A dynamic OAuth client is registered with the issuer (RFC 7591) — once per machine.
- A browser window opens to the authorization page.
- After sign-in, the server captures the redirect on a local ephemeral port, exchanges the code for tokens, and stores them.
- Subsequent calls reuse the stored access token; expired tokens are refreshed automatically. If a refresh token is revoked, the browser flow is re-launched.
Credentials are stored at:
- macOS / Linux:
~/.config/hostinger-mcp/credentials.json(mode 0600) - Windows:
%APPDATA%\hostinger-mcp\credentials.json
Credentials are shared across all Hostinger MCP binaries (hostinger-api-mcp, hostinger-vps-mcp, etc.).
Manual commands:
# Run the OAuth sign-in flow immediately (don't wait for the first tool call)
hostinger-api-mcp --login
# Revoke stored credentials
hostinger-api-mcp --logoutHTTP transport note: OAuth sign-in is not supported in --http mode. Set HOSTINGER_API_TOKEN before using --http.
Usage
JSON configuration for Claude, Cursor, etc.
{
"mcpServers": {
"hostinger-api": {
"command": "hostinger-api-mcp",
"env": {
"DEBUG": "false",
"HOSTINGER_API_TOKEN": "YOUR API TOKEN"
}
}
}
}Transport Options
The MCP server supports two transport modes:
Standard I/O Transport
The server can use standard input / output (stdio) transport (default). This provides local streaming:
Streamable HTTP Transport
The server can use HTTP streaming transport. This provides bidirectional streaming over HTTP:
# Default HTTP transport on localhost:8100
hostinger-api-mcp --http
# Specify custom host and port
hostinger-api-mcp --http --host 0.0.0.0 --port 8150Command Line Options
Options:
--http Use HTTP streaming transport (requires HOSTINGER_API_TOKEN env var)
--stdio Use Server-Sent Events transport (default)
--host {host} Hostname or IP address to listen on (default: 127.0.0.1)
--port {port} Port to bind to (default: 8100)
--login Run OAuth sign-in flow and exit
--logout Revoke stored OAuth credentials and exit
--help Show help messageUsing as an MCP Tool Provider
This server implements the Model Context Protocol (MCP) and can be used with any MCP-compatible consumer.
Example of connecting to this server using HTTP streaming transport:
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
// Create HTTP transport
const transport = new StreamableHTTPClientTransport({
url: "http://localhost:8100/",
headers: {
"Authorization": `Bearer ${process.env.HOSTINGER_API_TOKEN}`
}
});
// Connect to the MCP server
const client = new Client({
name: "my-client",
version: "1.0.0"
}, {
capabilities: {}
});
await client.connect(transport);
// List available tools
const { tools } = await client.listTools();
console.log("Available tools:", tools);
// Call a tool
const result = await client.callTool({
name: "billing_getCatalogItemListV1",
arguments: { category: "DOMAIN" }
});
console.log("Tool result:", result);Available Tools
This MCP server provides the following tools:
hostinger-agency-hosting-mcp
agencyHosting_deployNodeStaticWebsite
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. For plain PHP applications that should be extracted as-is, use agencyHosting_deployPhpApplication instead. The website UID is automatically resolved from the domain.
- Method:
custom - Path:
custom
agencyHosting_deployPhpApplication
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. For node-static websites that require a build step, use agencyHosting_deployNodeStaticWebsite instead. The website UID is automatically resolved from the domain.
- Method:
custom - Path:
custom
agency-hosting_listAvailableDatacentersForAnAgencyPlanOrderV1
Lists the datacenters available for provisioning a new website on the given Agency Plan hosting order.
Each datacenter includes a pinger_url you can ping from the client to measure round-trip
latency; comparing the results across datacenters lets you pick the nearest one (lowest
ping) before choosing its code as the datacenter_code when creating a website setup.
- Method:
GET - Path:
/api/agency-hosting/v1/orders/{order_id}/datacenters
agency-hosting_changeAgencyPlanWebsiteDomainV1
Changes the primary domain for an Agency Plan website.
Provide the current domain in the path and the new domain in the request body. Set domain to null to revert to the temporary domain.
- Method:
PUT - Path:
/api/agency-hosting/v1/websites/{website_uid}/domains/{from_domain}
agency-hosting_linkDomainToAgencyPlanWebsiteV1
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
agency-hosting_listAgencyPlanDomainsV1
Returns a paginated list of domains associated with Agency Plan websites accessible to the authenticated client.
Use the website_uuids filter to narrow results to specific websites.
- Method:
GET - Path:
/api/agency-hosting/v1/domains
agency-hosting_unlinkDomainFromAgencyPlanWebsiteV1
Unlinks a domain from the specified Agency Plan website.
The website stops serving traffic on this domain immediately.
Website files and database are preserved, and any other linked domains remain accessible.
If 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}
agency-hosting_importAgencyPlanWebsiteFromArchiveV1
Imports an Agency Plan website from an already-uploaded archive.
Upload the archive to the website's root directory via file browser first, then provide its filename in this request. Website contents are overwritten by the archive contents. Supported archive types: .zip, .tar, .tar.gz, .tgz.
- Method:
POST - Path:
/api/agency-hosting/v1/websites/{website_uid}/files/import-archive
agency-hosting_listAgencyPlanOrdersV1
Returns a paginated list of Agency Plan orders accessible to the authenticated client.
- Method:
GET - Path:
/api/agency-hosting/v1/orders
agency-hosting_provisionANewAgencyPlanWebsiteV1
Provisions a new website on one of your Agency Plan hosting orders.
Choose the datacenter, stack (flavor), and PHP version for the site. Optionally attach
your own domain — omit it, set it to null, or leave it unavailable and a free
*.hostingersite.com subdomain is generated instead — and/or install WordPress by
supplying the wordpress details (admin account, site title, and language).
Common setups:
- Plain PHP site:
flavorset tophp-fpm, withsettings.php.version; omitwordpressandtype. - WordPress site:
flavorset to the desired WordPress version (e.g.wp-7.0), plus thewordpressblock (admin account, title, language). - Static/Node.js frontend app:
flavorset tophp-fpmandtypeset tonode-static.
Provisioning runs in the background, so the response returns immediately with a setup UUID that identifies the job. The new website becomes reachable once provisioning finishes.
- Method:
POST - Path:
/api/agency-hosting/v1/orders/{order_id}/websites/setups
agency-hosting_getAgencyPlanWebsiteSetupStatusV1
Returns the current status of an Agency Plan website setup started via the setups endpoint.
Poll this endpoint using the setup_uuid returned from the provisioning request until
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}
agency-hosting_buildAgencyPlanWebsiteNodeJSAssetsV1
Builds and deploys a Node.js application for an Agency Plan website from an already-uploaded archive.
Upload the archive to file browser first, then provide its relative path from document root in this request. Website 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
agency-hosting_clearAgencyPlanWebsiteCacheV1
Clears cache for all domains associated with an Agency Plan website, including its preview domain.
This operation clears all cache types for the website.
- Method:
DELETE - Path:
/api/agency-hosting/v1/websites/{website_uid}/cache
agency-hosting_listAgencyPlanWebsiteCronJobsV1
Returns a paginated list of cron jobs configured for an Agency Plan website.
Each entry includes the schedule expression and the command executed on that schedule.
- Method:
GET - Path:
/api/agency-hosting/v1/websites/{website_uid}/cron-jobs
agency-hosting_createAgencyPlanWebsiteCronJobV1
Creates a cron job for an Agency Plan website from a schedule expression and a command.
Returns 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
agency-hosting_deleteAgencyPlanWebsiteCronJobV1
Permanently deletes the cron job identified by its uuid from an Agency Plan website.
The 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}
agency-hosting_listAgencyPlanWebsiteDatabasesV1
Returns a paginated list of MySQL databases created for an Agency Plan website.
Each entry includes the database's non-system users.
- Method:
GET - Path:
/api/agency-hosting/v1/websites/{website_uid}/databases
agency-hosting_createAgencyPlanWebsiteDatabaseV1
Creates a MySQL database with a dedicated user for an Agency Plan website.
The database name, username, and password must all be provided by the caller.
- Method:
POST - Path:
/api/agency-hosting/v1/websites/{website_uid}/databases
agency-hosting_deleteAgencyPlanWebsiteDatabaseV1
Permanently deletes a MySQL database and all its data from an Agency Plan website, including its users.
The 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}
agency-hosting_createAgencyPlanWebsiteDatabaseUserV1
Creates a user for an existing database on an Agency Plan website.
Each 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
agency-hosting_deleteAgencyPlanWebsiteDatabaseUserV1
Permanently deletes a database user from an Agency Plan website database, revoking all access it had.
The 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}
agency-hosting_getAgencyPlanWebsiteDetailsV1
Retrieves detailed information about a specific Agency Plan website, including configuration, status, metadata, hosting plan details, and resource quotas.
- Method:
GET - Path:
/api/agency-hosting/v1/websites/{website_uid}
agency-hosting_deleteAgencyPlanWebsiteV1
Deletes an Agency Plan website and schedules cleanup of its resources.
This action is irreversible. Website files, databases, and linked domains are removed.
- Method:
DELETE - Path:
/api/agency-hosting/v1/websites/{website_uid}
agency-hosting_listRunningAgencyPlanWebsiteProcessesV1
Lists active and recently completed asynchronous processes for an Agency Plan website.
Each process has a unique ID (for tracking), a type, and a status (running, completed, failed). Poll this endpoint after initiating async operations (SSL setup, backups, cloning) to track progress.
- Method:
GET - Path:
/api/agency-hosting/v1/websites/{website_uid}/processes
agency-hosting_changeAgencyPlanWebsiteWordPressCoreVersionV1
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
agency-hosting_getAgencyPlanWebsiteWordPressSettingsV1
Returns the current WordPress settings for an Agency Plan website: installed core version, LiteSpeed Cache plugin status, object cache status, and maintenance mode status.
- Method:
GET - Path:
/api/agency-hosting/v1/websites/{website_uid}/wordpress/settings
agency-hosting_listAvailableWordPressVersionsForAnAgencyPlanWebsiteV1
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
hostinger-billing-mcp
billing_getCatalogItemListV1
Retrieve catalog items available for order.
Prices in catalog items is displayed as cents (without floating point),
e.g: float 17.99 is displayed as integer 1799.
Use this endpoint to view available services and pricing before placing orders.
- Method:
GET - Path:
/api/billing/v1/catalog
billing_createPurchaseOrderV1
Create a purchase order for any Hostinger product.
This unified endpoint places an order for one or more catalog items and
works across all Hostinger products, leveraging the existing billing
infrastructure. Use the catalog endpoint to look
up the item_id values available for purchase.
If no payment method is provided, your default payment method will be used automatically.
This endpoint only places the order. Product-specific provisioning (e.g. VPS setup or domain registration) is not performed here — once the order completes, use the relevant product endpoints or hPanel to finalize setup.
Use this endpoint to purchase any product available in the catalog.
- Method:
POST - Path:
/api/billing/v1/orders
billing_setDefaultPaymentMethodV1
Set the default payment method for your account.
Use this endpoint to configure the primary payment method for future orders.
- Method:
POST - Path:
/api/billing/v1/payment-methods/{paymentMethodId}
billing_deletePaymentMethodV1
Delete a payment method from your account.
Use this endpoint to remove unused payment methods from user accounts.
- Method:
DELETE - Path:
/api/billing/v1/payment-methods/{paymentMethodId}
billing_getPaymentMethodListV1
Retrieve available payment methods that can be used for placing new orders.
If you want to add new payment method, please use hPanel.
Use this endpoint to view available payment options before creating orders.
- Method:
GET - Path:
/api/billing/v1/payment-methods
billing_getSubscriptionListV1
Retrieve a list of all subscriptions associated with your account.
Use this endpoint to monitor active services and billing status.
- Method:
GET - Path:
/api/billing/v1/subscriptions
billing_disableAutoRenewalV1
Disable auto-renewal for a subscription.
Use this endpoint when disable auto-renewal for a subscription.
- Method:
DELETE - Path:
/api/billing/v1/subscriptions/{subscriptionId}/auto-renewal/disable
billing_enableAutoRenewalV1
Enable auto-renewal for a subscription.
Use this endpoint when enable auto-renewal for a subscription.
- Method:
PATCH - Path:
/api/billing/v1/subscriptions/{subscriptionId}/auto-renewal/enable
billing_renewSubscriptionV1
Create a renewal order for an existing Hostinger subscription.
This endpoint places a renewal order for a single subscription, leveraging
the existing billing infrastructure. Use the
subscriptions endpoint to look up the
subscriptionId values available for renewal.
If no payment method is provided, your default payment method will be used automatically.
Use this endpoint to renew any subscription available in your account.
- Method:
POST - Path:
/api/billing/v1/subscriptions/{subscriptionId}/renew
hostinger-dns-mcp
DNS_getDNSSnapshotV1
Retrieve particular DNS snapshot with contents of DNS zone records.
Use this endpoint to view historical DNS configurations for domains.
- Method:
GET - Path:
/api/dns/v1/snapshots/{domain}/{snapshotId}
DNS_getDNSSnapshotListV1
Retrieve DNS snapshots for a domain.
Use this endpoint to view available DNS backup points for restoration.
- Method:
GET - Path:
/api/dns/v1/snapshots/{domain}
DNS_restoreDNSSnapshotV1
Restore DNS zone to the selected snapshot.
Use this endpoint to revert domain DNS to a previous configuration.
- Method:
POST - Path:
/api/dns/v1/snapshots/{domain}/{snapshotId}/restore
DNS_getDNSRecordsV1
Retrieve DNS zone records for a specific domain.
Use this endpoint to view current DNS configuration for domain management.
- Method:
GET - Path:
/api/dns/v1/zones/{domain}
DNS_updateDNSRecordsV1
Update DNS records for the selected domain.
Using overwrite = true will replace existing records with the provided ones.
Otherwise existing records will be updated and new records will be added.
Use this endpoint to modify domain DNS configuration.
- Method:
PUT - Path:
/api/dns/v1/zones/{domain}
DNS_deleteDNSRecordsV1
Delete DNS records for the selected domain.
To filter which records to delete, add the name of the record and type to the filter.
Multiple filters can be provided with single request.
If you have multiple records with the same name and type, and you want to delete only part of them,
refer to the Update zone records endpoint.
Use this endpoint to remove specific DNS records from domains.
- Method:
DELETE - Path:
/api/dns/v1/zones/{domain}
DNS_resetDNSRecordsV1
Reset DNS zone to the default records.
Use this endpoint to restore domain DNS to original configuration.
- Method:
POST - Path:
/api/dns/v1/zones/{domain}/reset
DNS_validateDNSRecordsV1
Validate DNS records prior to update for the selected domain.
If the validation is successful, the response will contain 200 Success code.
If there is validation error, the response will fail with 422 Validation error code.
Use this endpoint to verify DNS record validity before applying changes.
- Method:
POST - Path:
/api/dns/v1/zones/{domain}/validate
hostinger-domains-mcp
v2_getDomainVerificationsDIRECT
Retrieve a list of pending and completed domain verifications.
- Method:
GET - Path:
/api/v2/direct/verifications/active
domains_checkDomainAvailabilityV1
Check availability of domain names across multiple TLDs.
Multiple TLDs can be checked at once.
If you want alternative domains with response, provide only one TLD and set with_alternatives to true.
TLDs should be provided without leading dot (e.g. com, net, org).
Endpoint has rate limit of 10 requests per minute.
Use this endpoint to verify domain availability before purchase.
- Method:
POST - Path:
/api/domains/v1/availability
domains_getDomainForwardingV1
Retrieve domain forwarding data.
Use this endpoint to view current redirect configuration for domains.
- Method:
GET - Path:
/api/domains/v1/forwarding/{domain}
domains_updateDomainForwardingV1
Update domain forwarding configuration.
Use this endpoint to modify existing redirect configuration for domains.
- Method:
PUT - Path:
/api/domains/v1/forwarding/{domain}
domains_deleteDomainForwardingV1
Delete domain forwarding data.
Use this endpoint to remove redirect configuration from domains.
- Method:
DELETE - Path:
/api/domains/v1/forwarding/{domain}
domains_createDomainForwardingV1
Create domain forwarding configuration.
Use this endpoint to set up domain redirects to other URLs.
- Method:
POST - Path:
/api/domains/v1/forwarding
domains_getDomainAuthorizationCodeV1
Retrieve the authorization (EPP) code for a specified domain so it can be transferred away from Hostinger to another registrar.
Requesting a new code invalidates any code retrieved previously.
Use this endpoint to obtain the code required to transfer a domain to another registrar.
- Method:
GET - Path:
/api/domains/v1/portfolio/{domain}/auth-code
domains_enableDomainLockV1
Enable domain lock for the domain.
When domain lock is enabled, the domain cannot be transferred to another registrar without first disabling the lock.
Use this endpoint to secure domains against unauthorized transfers.
- Method:
PUT - Path:
/api/domains/v1/portfolio/{domain}/domain-lock
domains_disableDomainLockV1
Disable domain lock for the domain.
Domain lock needs to be disabled before transferring the domain to another registrar.
Use this endpoint to prepare domains for transfer to other registrars.
- Method:
DELETE - Path:
/api/domains/v1/portfolio/{domain}/domain-lock
domains_getDomainDetailsV1
Retrieve detailed information for specified domain.
Use this endpoint to view comprehensive domain configuration and status.
- Method:
GET - Path:
/api/domains/v1/portfolio/{domain}
domains_getDomainListV1
Retrieve all domains associated with your account.
Use this endpoint to view user's domain portfolio.
- Method:
GET - Path:
/api/domains/v1/portfolio
domains_purchaseNewDomainV1
Purchase and register a new domain name.
If registration fails, login to hPanel and check domain registration status.
If no payment method is provided, your default payment method will be used automatically.
If no WHOIS information is provided, default contact information for that TLD will be used. Before making request, ensure WHOIS information for desired TLD exists in your account.
Some TLDs require additional_details to be provided and these will be validated before completing purchase.
Use this endpoint to register new domains for users.
- Method:
POST - Path:
/api/domains/v1/portfolio
domains_enablePrivacyProtectionV1
Enable privacy protection for the domain.
When privacy protection is enabled, domain owner's personal information is hidden from public WHOIS database.
Use this endpoint to protect domain owner's personal information from public view.
- Method:
PUT - Path:
/api/domains/v1/portfolio/{domain}/privacy-protection
domains_disablePrivacyProtectionV1
Disable privacy protection for the domain.
When privacy protection is disabled, domain owner's personal information is visible in public WHOIS database.
Use this endpoint to make domain owner's information publicly visible.
- Method:
DELETE - Path:
/api/domains/v1/portfolio/{domain}/privacy-protection
domains_getDomainRenewalInformationV1
Retrieve renewal information for a specified domain, including its status and current expiration date.
Use this endpoint to build renewal automation and expiry monitoring for a single domain.
- Method:
GET - Path:
/api/domains/v1/portfolio/{domain}/renewal
domains_updateDomainNameserversV1
Set nameservers for a specified domain.
Be aware, that improper nameserver configuration can lead to the domain being unresolvable or unavailable.
Use this endpoint to configure custom DNS hosting for domains.
- Method:
PUT - Path:
/api/domains/v1/portfolio/{domain}/nameservers
domains_getTransferV1
Retrieve the transfer for a specified domain.
Use this endpoint to track an incoming or outgoing registrar transfer and its status.
- Method:
GET - Path:
/api/domains/v1/transfers/{domain}
domains_getTransferListV1
Retrieve all domain transfers in your portfolio.
Use this endpoint to monitor incoming and outgoing registrar transfers across your domains.
- Method:
GET - Path:
/api/domains/v1/transfers
domains_getWHOISProfileV1
Retrieve a WHOIS contact profile.
Use this endpoint to view domain registration contact information.
- Method:
GET - Path:
/api/domains/v1/whois/{whoisId}
domains_deleteWHOISProfileV1
Delete WHOIS contact profile.
Use this endpoint to remove unused contact profiles from account.
- Method:
DELETE - Path:
/api/domains/v1/whois/{whoisId}
domains_getWHOISProfileListV1
Retrieve WHOIS contact profiles.
Use this endpoint to view available contact profiles for domain registration.
- Method:
GET - Path:
/api/domains/v1/whois
domains_createWHOISProfileV1
Create WHOIS contact profile.
Use this endpoint to add new contact information for domain registration.
- Method:
POST - Path:
/api/domains/v1/whois
domains_getWHOISProfileUsageV1
Retrieve domain list where provided WHOIS contact profile is used.
Use this endpoint to view which domains use specific contact profiles.
- Method:
GET - Path:
/api/domains/v1/whois/{whoisId}/usage
hostinger-ecommerce-mcp
ecommerce_getCustomStorefrontSetupInstructionsV1
Retrieve step-by-step setup instructions, formatted as Markdown, for connecting a custom sales channel to your store and keeping your catalog, orders, shipping and payments in sync through the Ecommerce API.
- Method:
GET - Path:
/api/ecommerce/v1/miscellaneous/custom-storefront-instructions
ecommerce_enableManualPaymentMethodV1
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
ecommerce_createDigitalProductV1
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
ecommerce_createPhysicalProductV1
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
ecommerce_listSalesChannelsV1
List a store's active sales channels with their full metadata.
- Method:
GET - Path:
/api/ecommerce/v1/stores/{store_id}/sales-channels
ecommerce_createCustomSalesChannelV1
Create a custom sales channel for a store. Build your own frontend and keep your catalog, orders, shipping and payments in sync through the Ecommerce API.
- Method:
POST - Path:
/api/ecommerce/v1/stores/{store_id}/sales-channels
ecommerce_updateSalesChannelV1
Update a custom sales channel. The merchant-facing name and the public url
(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}
ecommerce_setStoreShippingV1
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
ecommerce_deleteStoreV1
Soft-delete a store owned by your account.
The underlying store data is preserved; only the store is marked as deleted.
- Method:
DELETE - Path:
/api/ecommerce/v1/stores/{store_id}
ecommerce_getStoresV1
Retrieve the stores associated with your account.
- Method:
GET - Path:
/api/ecommerce/v1/stores
ecommerce_createStoreV1
Create a new store for your account.
A primary sales channel is created alongside the store.
- Method:
POST - Path:
/api/ecommerce/v1/stores
ecommerce_getStoreMetadataV1
Get a store's readiness metadata: whether payment methods and shipping are configured, plus its default currency. Useful to verify prerequisites before building a storefront.
- Method:
GET - Path:
/api/ecommerce/v1/stores/{store_id}/metadata
hostinger-horizons-mcp
horizons_createWebsiteV1
Create new Hostinger Horizons website from the given message.\n Use this tool when user asks you to create a website, landing page, blog or any other type of application.\n This tool initiates the website creation process and returns a website URL and ID. The generation happens asynchronously.\n After invoking this tool, your chat reply must be EXACTLY 1 sentence summarizing that Hostinger Horizons is now creating their website and it will be ready in a few minutes and you should provide the website URL to the user immediately Do not write code.\n\nTo edit afterwards, users must go to Hostinger Horizons interface in the provided website URL. If the tool call fails with an error, you should provide a clear explanation of the error and do not generate code yourself in the chat. \n TECHNOLOGY STACK CONSTRAINTS (STRICTLY ENFORCED):\n The environment is limited to the following technologies. You MUST NOT use, suggest, or implement any technology outside this list:\n \n
Language: JavaScript ONLY.
Languages like TypeScript, Rust, Python, Java, PHP, etc., are STRICTLY PROHIBITED.\n
Framework: React.\n
Navigation: React Router.\n
Styling: TailwindCSS.\n
Components: shadcn/ui (built with @radix-ui primitives).\n
Icons: Lucide React.\n
Animations: Framer Motion.\n \n BACKEND & DATA STORAGE:\n
Horizons integrated backend is the EXCLUSIVE solution for persistent data storage, authentication, and database needs.\n
Local databases (SQLite, MySQL, etc.) are STRICTLY PROHIBITED.\n
Third-party services (Firebase, AWS Amplify) are allowed ONLY if explicitly requested by the user.\n \n MAPS:\n
OpenStreetMap is the default provider.\n
Alternative providers (Google Maps, Mapbox) are allowed ONLY if explicitly requested by the user.\n
Method:
POSTPath:
/api/horizons/v1/websites
horizons_getWebsiteV1
Get a link for the user to edit their website in Hostinger Horizons interface.\n Use this tool when user wants to modify, edit or add new features to an existing website.\n Websites can only be edited in Hostinger Horizons interface in the provided website URL.
- Method:
GET - Path:
/api/horizons/v1/websites/{websiteId}
hostinger-hosting-mcp
hosting_importWordpressWebsite
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. The username will be automatically resolved from the domain.
- Method:
custom - Path:
custom
hosting_deployWordpressPlugin
Deploy a WordPress plugin from a directory to a hosting server. This tool uploads all plugin files and triggers plugin deployment.
- Method:
custom - Path:
custom
hosting_deployWordpressTheme
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.
- Method:
custom - Path:
custom
hosting_deployJsApplication
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. After deployment, use the hosting_listJsDeployments tool to check deployment status and track build progress.
- Method:
custom - Path:
custom
hosting_deployStaticWebsite
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 archive will be extracted and deployed directly without any build steps. The username will be automatically resolved from the domain.
- Method:
custom - Path:
custom
hosting_listJsDeployments
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:
custom - Path:
custom
hosting_showJsDeploymentLogs
Retrieve logs for a specified JavaScript application deployment for debugging purposes in case of failure.
- Method:
custom - Path:
custom
hosting_clearWebsiteCacheV1
Permanently clears all server-side cache for the website at once. Use it when content was updated and needs to be visible immediately, or after making major changes.
Also purges the Hostinger CDN cache when CDN is enabled on the website. For a WordPress installation 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
hosting_toggleCachelessModeV1
Turns development (cacheless) mode on or off, based on the enabled flag. When enabled, nothing is cached, effectively turning off all caching for the website; use it while actively developing, testing changes, debugging issues, or when real-time updates must be visible. Disable it after finishing development work to restore the performance benefits of caching.
- Method:
PATCH - Path:
/api/hosting/v1/accounts/{username}/websites/{domain}/cacheless-mode/toggle
hosting_toggleWebsiteCacheV1
Turns server-side caching for the website on or off, based on the enabled flag. Enable it for faster page loads, reduced server load, and improved user experience; recommended for production websites. Disabling may impact performance; to temporarily bypass caching while developing or debugging, prefer toggling cacheless mode instead.
Does nothing if caching is already in the requested state.
- Method:
PATCH - Path:
/api/hosting/v1/accounts/{username}/websites/{domain}/cache/toggle
hosting_listAccountCronJobsV1
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
hosting_createAccountCronJobV1
Creates a cron job for the specified account from a schedule expression and a command.
Returns 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
hosting_deleteAccountCronJobV1
Permanently deletes the cron job identified by its uid.
The uid is returned by the list cron jobs endpoint.
- Method:
DELETE - Path:
/api/hosting/v1/accounts/{username}/cron-jobs/{uid}
hosting_getCronJobOutputV1
Returns the output captured from the last execution of the cron job identified by its uid.
The uid is returned by the list cron jobs endpoint.
- Method:
GET - Path:
/api/hosting/v1/accounts/{username}/cron-jobs/{uid}/output
hosting_changeDatabasePasswordV1
Changes the password for the specified database user.
The database name must be the full name returned by the list databases endpoint. The 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
hosting_listAccountDatabasesV1
Returns a paginated list of databases for the specified account.
Use the domain and is_assigned filters to find databases assigned to a specific domain.
- Method:
GET - Path:
/api/hosting/v1/accounts/{username}/databases
hosting_createAccountDatabaseV1
Creates a database with a database user and password for the specified account.
The database name and user are automatically prefixed with the account username when needed.
- Method:
POST - Path:
/api/hosting/v1/accounts/{username}/databases
hosting_deleteAccountDatabaseV1
Permanently deletes a database and its remote connections.
The database name must be the full name returned by the list databases endpoint.
- Method:
DELETE - Path:
/api/hosting/v1/accounts/{username}/databases/{name}
hosting_createDatabaseRemoteConnectionV1
Allows a remote host to connect to the specified database.
Provide an IPv4/IPv6 address, or "%" to allow any host. The database name must be the full name returned by the list databases endpoint.
- Method:
POST - Path:
/api/hosting/v1/accounts/{username}/databases/{name}/remote-connections
hosting_deleteDatabaseRemoteConnectionV1
Permanently removes a remote-access rule, revoking the given host's remote access to the database.
Identify the rule with the required ip query parameter (the IPv4/IPv6 address, or "%", exactly as returned by the list remote connections endpoint). The database name must be the full name returned by the list databases endpoint.
- Method:
DELETE - Path:
/api/hosting/v1/accounts/{username}/databases/{name}/remote-connections
hosting_listDatabaseRemoteConnectionsV1
Returns the remote-access rules for the specified account: the remote hosts (IPv4/IPv6 addresses, or "%" for any host) allowed to connect to the account databases.
Use 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
hosting_repairDatabaseV1
Repairs corrupted database tables asynchronously.
Use when database errors, crashes, or corruption are reported. The database name must be the full name returned by the list databases endpoint.
- Method:
PATCH - Path:
/api/hosting/v1/accounts/{username}/databases/{name}/repair
hosting_getPhpMyAdminLinkV1
Returns a direct sign-on link to phpMyAdmin for the specified database.
Use this when a visual database interface is needed for SQL queries, imports, exports, or table management. The 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
hosting_listAvailableDatacentersV1
Retrieve a list of datacenters available for setting up hosting plans based on available datacenter capacity and hosting plan of your order. The first item in the list is the best match for your specific order requirements.
- Method:
GET - Path:
/api/hosting/v1/datacenters
hosting_generateAFreeSubdomainV1
Generate a unique free subdomain that can be used for hosting services without purchasing custom domains. Free subdomains allow you to start using hosting services immediately and you can always connect a custom domain to your site later.
- Method:
POST - Path:
/api/hosting/v1/domains/free-subdomains
hosting_listWebsiteParkedDomainsV1
Retrieve all parked or alias domains created under the selected website.
Use this endpoint to inspect parked domain configuration for a specific website, including the parent domain and root directory assigned to each parked domain.
- Method:
GET - Path:
/api/hosting/v1/accounts/{username}/websites/{domain}/parked-domains
hosting_createWebsiteParkedDomainV1
Create a parked or alias domain for the selected website.
Provide a domain name or IP address to park on the website so it serves the same content as the parent domain.
- Method:
POST - Path:
/api/hosting/v1/accounts/{username}/websites/{domain}/parked-domains
hosting_deleteWebsiteParkedDomainV1
Delete an existing parked or alias domain from the selected website.
Use this endpoint to remove parked domains that are no longer needed.
- Method:
DELETE - Path:
/api/hosting/v1/accounts/{username}/websites/{domain}/parked-domains/{parkedDomain}
hosting_listWebsiteSubdomainsV1
Retrieve all subdomains created under the selected website.
Use this endpoint to inspect subdomain configuration for a specific website, including the parent domain and root directory assigned to each subdomain.
- Method:
GET - Path:
/api/hosting/v1/accounts/{username}/websites/{domain}/subdomains
hosting_createWebsiteSubdomainV1
Create a new subdomain for the selected website.
Provide a subdomain prefix and, optionally, a custom directory or the website public directory to use as the subdomain root.
- Method:
POST - Path:
/api/hosting/v1/accounts/{username}/websites/{domain}/subdomains
hosting_deleteWebsiteSubdomainV1
Delete an existing subdomain from the selected website.
Use this endpoint to remove subdomains that are no longer needed.
- Method:
DELETE - Path:
/api/hosting/v1/accounts/{username}/websites/{domain}/subdomains/{subdomain}
hosting_verifyDomainOwnershipV1
Verify ownership of a single domain and return the verification status.
Use this endpoint to check if a domain is accessible for you before using it for new websites.
If the domain is accessible, the response will have is_accessible: true.
If not, add the given TXT record to your domain's DNS records and try verifying again.
Keep in mind that it may take up to 10 minutes for new TXT DNS records to propagate.
Skip this verification when using Hostinger's free subdomains (*.hostingersite.com).
- Method:
POST - Path:
/api/hosting/v1/domains/verify-ownership
hosting_listNodeJSBuildsV1
Retrieve a paginated list of Node.js build processes for a specific website.
Each build represents a single run of the Node.js build pipeline. Use the states
query parameter to filter results by build state (pending, running, completed, failed).
Use 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
hosting_createNodeJSBuildFromArchiveV1
Upload a project archive, auto-detect build settings, and immediately start a Node.js build.
This is the recommended single-step approach for deploying a Node.js application. The archive is uploaded to the website's file storage, build settings are auto-detected from the package.json inside the archive, and the build process starts automatically. Optional override fields take precedence over auto-detected values. Maximum archive size is 50MB.
Before archiving, exclude node_modules/ and any build output directories
(e.g. dist/, .next/, build/) — they are not needed because the build
process runs the install step automatically, and including them unnecessarily
increases the archive size. This also helps keep the archive well under the 50MB limit.
Example (zip):
zip -r archive.zip . --exclude "node_modules/*" --exclude "dist/*"The returned build uuid can be used to poll progress and retrieve logs via
the Get Node.js Build Logs endpoint.
- Method:
POST - Path:
/api/hosting/v1/accounts/{username}/websites/{domain}/nodejs/builds/from-archive
hosting_getNodeJSBuildLogsV1
Retrieve logs from a specific Node.js build process.
To stream live output while a build is running, poll this endpoint repeatedly
while the build state is running, passing the previously returned lines count
as from_line to fetch only new output since the last call.
Log content may contain ANSI escape sequences (color codes).
- Method:
GET - Path:
/api/hosting/v1/accounts/{username}/websites/{domain}/nodejs/builds/{uuid}/logs
hosting_restartNode_jsApplicationV1
Restarts the Node.js server process for the website. Does not rebuild or redeploy the application. Use it to apply environment or configuration changes, or to recover a hung application.
Only applicable to server-side applications (Express, Next.js, NestJS, etc.). Static front-end apps (React, Vue, Vite) have no persistent server process, so restarting them has 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
hosting_listNode_jsVulnerabilitiesV1
Lists known npm package vulnerabilities detected on a Node.js website, enriched with
advisory metadata (severity, CVSS score, CVE, advisory URL). Results are sorted from
the most severe to the least severe, then by publish date (newest first). Use the
severities query parameter to filter.
Vulnerabilities with is_patchable set to true can be auto-fixed via the
Patch Node.js Vulnerabilities endpoint, which opens a GitHub pull request with
updated package versions. Auto-fix is only available for websites deployed from a
connected GitHub repository. Vulnerabilities with is_patching_in_progress set to
true are already included in an open patch pull request; while any patch pull
request is open, new patch requests for this website are rejected until it is merged
or closed.
Data comes from periodic dependency scans, so it may lag behind the latest deployment. An empty list means the most recent scan found no vulnerabilities; it does not guarantee the current deployment is vulnerability-free. Available on Business and Cloud Hosting plans.
- Method:
GET - Path:
/api/hosting/v1/accounts/{username}/websites/{domain}/nodejs/vulnerabilities
hosting_patchNode_jsVulnerabilitiesV1
Patches the selected Node.js vulnerabilities by updating the affected package versions
in package.json and opening a GitHub pull request in the connected repository. The
customer reviews and merges the pull request; merging triggers the automatic deployment.
Auto-fix is only available for websites deployed from a connected GitHub repository. Websites deployed from an archive have no auto-fix path and return a 404. The Hostinger GitHub App needs write access to the repository; without it the request fails with a 403 explaining the missing permission.
Only vulnerabilities with is_patchable set to true can be patched. Non-patchable
IDs in the selection are skipped; the pull request covers the patchable subset, listed
in patched_vulnerability_ids. Selections without any patchable vulnerability are
rejected with a 422. Only one patch pull request can be open at a time per website;
close 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
hosting_listOrdersV1
Retrieve a paginated list of orders accessible to the authenticated client.
This endpoint returns orders of your hosting accounts as well as orders of other client hosting accounts that have shared access with you.
Use the available query parameters to filter results by order statuses or specific order IDs for more targeted results.
- Method:
GET - Path:
/api/hosting/v1/orders
hosting_resetPHPExtensionsV1
Resets all PHP extensions of the website to their default state.
Use it to recover from extension conflicts or restore the original configuration.
- Method:
PATCH - Path:
/api/hosting/v1/accounts/{username}/websites/{domain}/php/extensions/reset
hosting_getPHPDetailsV1
Returns the full PHP configuration for the website: current version, available versions
(supported and unsupported), enabled/disabled extensions, options with their current value,
default, type and the plan limit (max), and conflicting extension groups.
Use 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
hosting_getPHPInfoV1
Returns the full phpinfo page (HTML) for the website.
Use 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
hosting_updatePHPExtensionsV1
Enables or disables PHP extensions (modules) for the website.
Use 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
hosting_updatePHPOptionsV1
Updates PHP options for the website (e.g. memory_limit, max_execution_time, upload_max_filesize).
Only provide the options you want to change, inside the options object.
Values above the account plan limit are silently capped to that limit, so the request can succeed with 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
hosting_updatePHPVersionV1
Changes the PHP version of the website.
Use 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
hosting_listWebsitesV1
Retrieve a paginated list of websites (main and addon types) accessible to the authenticated client.
This endpoint returns websites from your hosting accounts as well as websites from other client hosting accounts that have shared access with you.
Use the available query parameters to filter results by username, order ID, enabled status, or domain name for more targeted results.
- Method:
GET - Path:
/api/hosting/v1/websites
hosting_createWebsiteV1
Create a new website for the authenticated client.
Provide the domain name and associated order ID to create a new website. The datacenter_code parameter is required when creating the first website on a new hosting plan - this will set up and configure new hosting account in the selected datacenter.
Subsequent websites will be hosted on the same datacenter automatically.
Website creation takes up to a few minutes to complete. Check the websites list endpoint to see when your new website becomes available.
- Method:
POST - Path:
/api/hosting/v1/websites
hosting_deleteWebsiteV1
Permanently deletes a website and all of its data. This action is destructive and cannot be undone. Always ask the user for explicit confirmation before calling this endpoint.
All website files, databases and related configuration will be removed. The hosting plan itself is kept, so a new website can be created on it afterwards.
The confirm field must be boolean true, otherwise the request is rejected.
Supported websites: main and addon domain websites on web hosting plans, and Website Builder websites. Parked domains and subdomains cannot be deleted with this endpoint. The domain must be the exact website domain, not a preview domain or an alias.
Returns 404 when the domain does not exist or does not belong to the authenticated client.
Website removal is processed asynchronously and can take a few minutes to complete. The response returns before the removal finishes.
- Method:
DELETE - Path:
/api/hosting/v1/websites/{domain}
hostinger-mail-mcp
mail_createAliasV1
Create an alias for the given mailbox. The alias address is formed from the given local part and the domain of the mailbox. Messages sent to the alias are delivered to the mailbox.
- Method:
POST - Path:
/api/mail/v1/mailboxes/{mailboxId}/aliases
mail_deleteAliasV1
Delete an alias. Messages sent to the alias address are no longer delivered to the mailbox.
- Method:
DELETE - Path:
/api/mail/v1/aliases/{aliasId}
mail_listAliasesV1
Retrieve a paginated list of aliases across all mailboxes of a mail order.
- Method:
GET - Path:
/api/mail/v1/orders/{orderId}/aliases
mail_createAPITokenV1
Create an API token for the given mail order. The token grants access to the Hostinger Email API, where you can provision and manage the mailboxes it is scoped to.
The plaintext token is returned only in this response, never again.
A maximum of 10 tokens can exist per order. Use
scope.has_all_mailboxes to cover all current and future mailboxes,
or list specific mailboxes in scope.mailbox_ids.
- Method:
POST - Path:
/api/mail/v1/orders/{orderId}/api-tokens
mail_revokeAPITokenV1
Revoke an API token. The token immediately loses access to the Hostinger Email API. This action cannot be undone.
- Method:
DELETE - Path:
/api/mail/v1/api-tokens/{tokenId}
mail_listAPITokensV1
Retrieve a paginated list of Hostinger Email API tokens across all your mail orders, optionally filtered by order. Plaintext tokens are never included; they are returned only when a token is created.
- Method:
GET - Path:
/api/mail/v1/api-tokens
mail_createAutoreplyV1
Create an automatic reply for the given mailbox. A mailbox can have
only one autoreply. Omit starts_at to activate the autoreply
immediately and omit ends_at to keep it active indefinitely.
- Method:
POST - Path:
/api/mail/v1/mailboxes/{mailboxId}/autoreplies
mail_updateAutoreplyV1
Replace the autoreply with the given content and schedule. Omitted
optional fields are cleared: omit starts_at to activate the
autoreply immediately and omit ends_at to keep it active
indefinitely.
- Method:
PUT - Path:
/api/mail/v1/autoreplies/{autoreplyId}
mail_deleteAutoreplyV1
Delete the autoreply of a mailbox. The mailbox stops sending automatic replies immediately.
- Method:
DELETE - Path:
/api/mail/v1/autoreplies/{autoreplyId}
mail_listAutorepliesV1
Retrieve a paginated list of autoreplies across all mailboxes of a mail order.
- Method:
GET - Path:
/api/mail/v1/orders/{orderId}/autoreplies
mail_createCatchAllV1
Create a catch-all that routes all messages sent to unknown addresses of the domain to the given mailbox. The mailbox address receives a confirmation email and the catch-all becomes active only after it is confirmed. A domain can have only one catch-all.
- Method:
POST - Path:
/api/mail/v1/mailboxes/{mailboxId}/catchalls
mail_deleteCatchAllV1
Delete a catch-all. Messages sent to unknown addresses of the domain are no longer routed to the mailbox.
- Method:
DELETE - Path:
/api/mail/v1/catchalls/{catchallId}
mail_listCatchAllsV1
Retrieve a paginated list of catch-alls across all mailboxes of a mail order.
- Method:
GET - Path:
/api/mail/v1/orders/{orderId}/catchalls
mail_resendCatchAllConfirmationV1
Resend the confirmation email to the mailbox address of an unconfirmed catch-all.
- Method:
POST - Path:
/api/mail/v1/catchalls/{catchallId}/confirmation/resend
mail_createForwarderV1
Create a forwarder from the given mailbox to the destination address. The destination receives a confirmation email and forwarding becomes active only after it is confirmed.
- Method:
POST - Path:
/api/mail/v1/mailboxes/{mailboxId}/forwarders
mail_deleteForwarderV1
Delete a forwarder. The mailbox stops forwarding messages to the destination address immediately.
- Method:
DELETE - Path:
/api/mail/v1/forwarders/{forwarderId}
mail_listForwardersV1
Retrieve a paginated list of forwarders across all mailboxes of a mail order.
- Method:
GET - Path:
/api/mail/v1/orders/{orderId}/forwarders
mail_resendForwarderConfirmationV1
Resend the confirmation email to the destination address of an unconfirmed forwarder.
- Method:
POST - Path:
/api/mail/v1/forwarders/{forwarderId}/confirmation/resend
mail_updateForwarderKeepCopySettingV1
Enable or disable keeping a copy of forwarded messages in the mailbox.
- Method:
PATCH - Path:
/api/mail/v1/forwarders/{forwarderId}/keep-copy
mail_listAccessLogsV1
Retrieve paginated access logs for the domain attached to the given mail order. Supports filtering by account, date range, protocol, status, and deletion flag. Results are sorted by timestamp descending.
- Method:
GET - Path:
/api/mail/v1/orders/{orderId}/logs/access
mail_listActionLogsV1
Retrieve paginated account action logs (administrative and user actions) for the given mail order. Supports filtering by account, date range, and status. Results are sorted by timestamp descending.
- Method:
GET - Path:
/api/mail/v1/orders/{orderId}/logs/action
mail_listInboundLogsV1
Retrieve paginated inbound (received mail) delivery logs for the domain attached to the given mail order. Supports filtering by account, date range, status, sender, and recipient. Results are sorted by timestamp descending.
- Method:
GET - Path:
/api/mail/v1/orders/{orderId}/logs/inbound
mail_listMailboxActionLogsV1
Retrieve paginated mailbox action logs (message and mailbox events) for a mailbox in the given mail order. The mailbox email must belong to the order's domain. Supports date range and event type filters. Results are sorted by timestamp descending.
- Method:
GET - Path:
/api/mail/v1/orders/{orderId}/logs/mailbox-actions
mail_listOutboundLogsV1
Retrieve paginated outbound (sent mail) delivery logs for the domain attached to the given mail order. Supports filtering by account, date range, status, sender, and recipient. Results are sorted by timestamp descending.
- Method:
GET - Path:
/api/mail/v1/orders/{orderId}/logs/outbound
mail_listMailboxesV1
Retrieve a paginated list of mailboxes belonging to a mail order.
Use this endpoint to monitor mailboxes of your mail service, including their status, enabled protocols, attached resource counts, and periodically synced usage numbers (usage may lag behind live values).
- Method:
GET - Path:
/api/mail/v1/orders/{orderId}/mailboxes
mail_createMailboxV1
Create a mailbox under the given mail order. The full email address is composed from the given local part and the domain of the order.
- Method:
POST - Path:
/api/mail/v1/orders/{orderId}/mailboxes
mail_deleteMailboxV1
Delete a mailbox. The mailbox is soft-deleted and stays restorable for a limited period before it is permanently removed.
- Method:
DELETE - Path:
/api/mail/v1/mailboxes/{mailboxId}
mail_changeMailboxPasswordV1
Change the password of a mailbox.
- Method:
PATCH - Path:
/api/mail/v1/mailboxes/{mailboxId}/password
mail_listOrdersV1
Retrieve a paginated list of mail orders associated with your account.
Use this endpoint to monitor your mail services, including their status, plan, attached domain, and expiration details.
- Method:
GET - Path:
/api/mail/v1/orders
mail_getOrderPlanV1
Retrieve the plan the given mail order was purchased with, including domain-level and mailbox-level quotas, limits, and protocol availability.
- Method:
GET - Path:
/api/mail/v1/orders/{orderId}/plan
mail_createWebhookV1
Create a webhook for the given mailbox. The generated secret is returned only in this response and is sent as a bearer token with every delivery.
- Method:
POST - Path:
/api/mail/v1/mailboxes/{mailboxId}/webhooks
mail_listWebhookDeliveryLogsV1
Retrieve a paginated list of webhook delivery logs for the given mail order, including delivery outcome, duration, and retry counts. Supports filtering by mailbox.
- Method:
GET - Path:
/api/mail/v1/orders/{orderId}/webhooks/delivery-logs
mail_getWebhookV1
Retrieve the details of a single webhook. The webhook secret is never included; it is returned only when a webhook is c
