unified-platform-gateway-mcp
Centralized access point for interacting with Hostinger services, encompassing capabilities for automated billing operations, domain lifecycle management, DNS record manipulation, and Virtual Private Server (VPS) administration via a Model Context Protocol (MCP) facade.
Author

hostinger
Quick Info
Actions
Tags
Hostinger Unified Management Protocol Server (MCP)
This service functions as an MCP endpoint to orchestrate administrative tasks against the core Hostinger infrastructure APIs.
System Requirements
- Execution environment requires Node.js, version 24 or newer.
To acquire Node.js, please visit the official distribution site. Package managers like Homebrew or Chocolatey are also viable installation paths.
We strongly suggest leveraging NVM (Node Version Manager) for simplified version control. Installation via NVM can be achieved with:
nvm install v24
nvm use v24
Deployment Procedure
Install the MCP server globally using your preferred package manager:
# Using npm
npm install -g hostinger-api-mcp
# Using yarn
yarn global add hostinger-api-mcp
# Using pnpm
pnpm add -g hostinger-api-mcp
Version Refreshment
To bring the server installation to the latest iteration, execute the corresponding upgrade command:
# npm upgrade
npm update -g hostinger-api-mcp
# yarn upgrade
yarn global upgrade hostinger-api-mcp
# pnpm upgrade
pnpm update -g hostinger-api-mcp
Environmental Configuration Variables
Server runtime behavior is tunable via the following environment settings:
- DEBUG: Boolean flag to toggle verbose logging (Default: false).
- API_TOKEN: Secret credential required for authorization header transmission.
Operational Usage Scenarios
Configuration Schema for AI Agents (e.g., Claude, Cursor)
{
"mcpServers": {
"hostinger-api": {
"command": "hostinger-api-mcp",
"env": {
"DEBUG": "false",
"API_TOKEN": "YOUR API TOKEN"
}
}
}
}
Communication Modalities
The gateway supports two distinct communication protocols for context exchange:
Standard Input/Output (I/O) Transport
This is the default mechanism, facilitating direct local process streaming.
Streamable HTTP Transport
Enables bi-directional communication channels established over HTTP streams.
# Default configuration: listens on localhost port 8100
hostinger-api-mcp --http
# Custom network binding
hostinger-api-mcp --http --host 0.0.0.0 --port 8150
Command Line Interface Flags
Options:
--http Activate HTTP streaming modality
--stdio Engage Server-Sent Events transport (the default)
--host {host} Specify the listening interface (Default: 127.0.0.1)
--port {port} Define the network port for binding (Default: 8100)
--help Display this assistance message
Utilization as an MCP Service Provider
This daemon adheres to the Model Context Protocol specification, making it consumable by any compatible client.
Example of initiating a connection using HTTP streaming transport:
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
// Construct the HTTP communication channel
const transport = new StreamableHTTPClientTransport({
url: "http://localhost:8100/",
headers: {
"Authorization": `Bearer ${process.env.API_TOKEN}`
}
});
// Initialize the client context
const client = new Client({
name: "my-client",
version: "1.0.0"
}, {
capabilities: {}
});
await client.connect(transport);
// Query for available functional modules
const { tools } = await client.listTools();
console.log("Exposed functionalities:", tools);
// Invoke a specific tool
const result = await client.callTool({
name: "billing_getCatalogItemListV1",
arguments: { category: "DOMAIN" }
});
console.log("Operation outcome:", result);
Available Functionalities (Tools)
This service exposes the following operational endpoints:
billing_getCatalogItemListV1
Fetches purchasable catalog entries.
Note: Monetary values are presented as integers representing cents (e.g., 17.99 USD becomes 1799). This is vital for price discovery prior to commitment.
- Method:
GET - Path:
/api/billing/v1/catalog
Arguments:
category: Segmentation filter for catalog entries.name: Pattern matching for item names (wildcard*supported, e.g.,.COM*).
billing_createServiceOrderV1
Initiates a service procurement transaction.
STATUS: DEPRECATED
For domain acquisitions, refer to POST /api/domains/v1/portfolio.
For VPS acquisition, refer to POST /api/vps/v1/virtual-machines.
Order finalization requires a valid payment identifier and a list of catalog items with quantities. Discount vouchers can be applied. All transactions executed here mandate automatic service renewal settings.
Be advised that credit_card transactions may trigger secondary verification steps, potentially delaying provisioning. Alternative payment instruments are suggested to mitigate this risk.
- Method:
POST - Path:
/api/billing/v1/orders
Arguments:
payment_method_id: Mandatory identifier for payment source.items: Mandatory payload detailing ordered items.coupons: Optional array of applicable discount codes.
billing_setDefaultPaymentMethodV1
Designates a primary payment instrument for future account charges.
This establishes the default financial resource for subsequent transactions.
- Method:
POST - Path:
/api/billing/v1/payment-methods/{paymentMethodId}
Arguments:
paymentMethodId: The identifier of the method to elevate to default status (Mandatory).
billing_deletePaymentMethodV1
Eradicates a registered payment instrument from the user's profile.
This function is for housekeeping of obsolete payment details.
- Method:
DELETE - Path:
/api/billing/v1/payment-methods/{paymentMethodId}
Arguments:
paymentMethodId: The ID referencing the method slated for removal (Mandatory).
billing_getPaymentMethodListV1
Retrieves all active payment facilities accessible for new service acquisition.
To incorporate a new payment method, users must utilize the hPanel interface. This provides the necessary context for transaction setup.
- Method:
GET - Path:
/api/billing/v1/payment-methods
billing_cancelSubscriptionV1
Terminates an active service agreement, ceasing recurring charges.
Invoke this to permanently cease service provisioning.
- Method:
DELETE - Path:
/api/billing/v1/subscriptions/{subscriptionId}
Arguments:
subscriptionId: Identifier of the commitment to be terminated (Mandatory).
billing_getSubscriptionListV1
Fetches an enumeration of all currently managed service subscriptions.
Used for oversight of active resources and their billing lifecycle.
- Method:
GET - Path:
/api/billing/v1/subscriptions
DNS_getDNSSnapshotV1
Retrieves the historical configuration content of a specific DNS zone snapshot.
Enables forensic examination of prior zone states.
- Method:
GET - Path:
/api/dns/v1/snapshots/{domain}/{snapshotId}
Arguments:
domain: The target domain name (Required).snapshotId: Identifier for the specific backup point (Required).
DNS_getDNSSnapshotListV1
Fetches available historical snapshots for a designated domain's DNS zone.
Provides accessible points for potential rollback.
- Method:
GET - Path:
/api/dns/v1/snapshots/{domain}
Arguments:
domain: The domain under scrutiny (Required).
DNS_restoreDNSSnapshotV1
Reverts the live DNS zone configuration to match a selected snapshot's state.
This action implements a system rollback for the domain's resolution settings.
- Method:
POST - Path:
/api/dns/v1/snapshots/{domain}/{snapshotId}/restore
Arguments:
domain: Target domain identifier (Required).snapshotId: The specific snapshot to enforce (Required).
DNS_getDNSRecordsV1
Retrieves the currently active resource records (RRs) for a specified domain.
Used for current configuration auditing and verification.
- Method:
GET - Path:
/api/dns/v1/zones/{domain}
Arguments:
domain: The domain whose records are being queried (Required).
DNS_updateDNSRecordsV1
Applies modifications to the DNS records set for the active domain.
If overwrite is set to true, all pre-existing records matching name/type are purged before new records are inserted. Otherwise, TTL values are adjusted, and new records are appended.
This is the primary method for altering domain resolution paths.
- Method:
PUT - Path:
/api/dns/v1/zones/{domain}
Arguments:
domain: The domain being modified (Required).overwrite: Boolean flag dictating replacement versus additive update strategy (Required).zone: The complete set of new or modified DNS records payload (Required).
DNS_deleteDNSRecordsV1
Removes specific entries from the domain's DNS zone file.
Filtering criteria (name, type) can be supplied to target deletion. Multiple filter sets are permissible in one invocation.
For granular deletion among identical records, investigate the record update endpoint.
This is utilized for precise cleanup of zone content.
- Method:
DELETE - Path:
/api/dns/v1/zones/{domain}
Arguments:
domain: The domain housing the records targeted for elimination (Required).
DNS_resetDNSRecordsV1
Reverts the DNS zone to its system-default set of records.
This immediately restores foundational internet connectivity records.
- Method:
POST - Path:
/api/dns/v1/zones/{domain}/reset
Arguments:
domain: Target domain identifier (Required).sync: Flag to mandate synchronous processing of the reset operation.reset_email_records: Flag to explicitly include or exclude reset of MX/TXT records related to mail service.whitelisted_record_types: Enumeration of record types that should be preserved during the reset procedure.
DNS_validateDNSRecordsV1
Pre-flight check on a proposed set of DNS records for a domain.
Success is signaled by a 200 HTTP status. Validation failure results in a 422 error code. This acts as a safeguard against configuration errors before live application.
- Method:
POST - Path:
/api/dns/v1/zones/{domain}/validate
Arguments:
domain: The domain under validation (Required).overwrite: Specifies if proposed records should replace or augment existing ones.zone: The payload of resource records to be checked (Required).
domains_checkDomainAvailabilityV1
Determines the registration status for one or more proposed domain names across specified TLDs.
Multiple Top-Level Domains can be evaluated concurrently. Setting with_alternatives to true, when checking a single TLD, yields suggestions for similar names.
TLDs must exclude the leading period (e.g., com, net).
Note: This function is subject to a throttle limit of 10 queries per minute.
This is essential for preliminary registration screening.
- Method:
POST - Path:
/api/domains/v1/availability
Arguments:
domain: The base name part of the domain (Required).tlds: A list defining the TLD extensions to check (Required).with_alternatives: Boolean flag to request name suggestions.
domains_getDomainForwardingV1
Fetches the current URL redirection settings configured for a domain.
Inspects established web forwarding rules.
- Method:
GET - Path:
/api/domains/v1/forwarding/{domain}
Arguments:
domain: The domain whose forwarding configuration is requested (Required).
domains_deleteDomainForwardingV1
Removes any existing URL forwarding rule applied to a domain.
Clears redirection policies.
- Method:
DELETE - Path:
/api/domains/v1/forwarding/{domain}
Arguments:
domain: The domain associated with the forwarding rule to be purged (Required).
domains_createDomainForwardingV1
Establishes a new URL redirection setting for a domain.
Configures the domain to point web traffic to a specified target URL.
- Method:
POST - Path:
/api/domains/v1/forwarding
Arguments:
domain: The domain name to receive the redirect (Required).redirect_type: The HTTP status code type for the redirect (e.g., 301, 302) (Required).redirect_url: The destination address for the traffic forwarding (Required).
domains_enableDomainLockV1
Activates the registrar lock mechanism on a domain.
This security measure prevents unauthorized transfers to external registrars unless explicitly disabled. Use this to safeguard domain ownership.
- Method:
PUT - Path:
/api/domains/v1/portfolio/{domain}/domain-lock
Arguments:
domain: The target domain for locking (Required).
domains_disableDomainLockV1
Deactivates the registrar lock feature on a domain.
Required prerequisite before initiating a registrar transfer request. Prepare the domain for potential external migration.
- Method:
DELETE - Path:
/api/domains/v1/portfolio/{domain}/domain-lock
Arguments:
domain: The domain name to be unlocked (Required).
domains_getDomainDetailsV1
Retrieves an exhaustive data structure detailing the configuration and status of a specific domain asset.
Provides deep insight into the domain's current state.
- Method:
GET - Path:
/api/domains/v1/portfolio/{domain}
Arguments:
domain: The domain identifier for which details are requested (Required).
domains_getDomainListV1
Returns a complete inventory of all domain assets registered under the account.
Comprehensive portfolio view of managed domains.
- Method:
GET - Path:
/api/domains/v1/portfolio
domains_purchaseNewDomainV1
Executes the process of new domain name registration and provisioning.
Should the automated registration phase encounter failure, manual intervention via hPanel is necessary to check status.
If a payment identifier is omitted, the account's default financial selection will be employed.
WHOIS contact records default to account settings if not supplied; ensure the necessary TLD-specific contact information is pre-registered.
Certain TLDs mandate the inclusion of additional_details for validation completion.
This is the entry point for acquiring novel domain names.
- Method:
POST - Path:
/api/domains/v1/portfolio
Arguments:
domain: The fully qualified domain name sought (Required).item_id: The specific catalog identifier corresponding to the desired price point (Required).payment_method_id: Identifier for payment; defaults to primary if absent.domain_contacts: Structured data for registrant and administrative contacts.additional_details: TLD-specific supplemental data required for registration.coupons: Optional discount vouchers applicable to the purchase.
domains_enablePrivacyProtectionV1
Activates the WHOIS privacy feature for the specified domain.
This shields the domain owner's personal contact data from public directory listings. Shields registrant information from public disclosure.
- Method:
PUT - Path:
/api/domains/v1/portfolio/{domain}/privacy-protection
Arguments:
domain: The domain name to protect (Required).
domains_disablePrivacyProtectionV1
Deactivates the WHOIS privacy feature for the domain.
Resultantly, the owner's contact information becomes visible in public WHOIS lookups. Reverses the privacy shielding, making contact data public.
- Method:
DELETE - Path:
/api/domains/v1/portfolio/{domain}/privacy-protection
Arguments:
domain: The domain name undergoing privacy deactivation (Required).
domains_updateDomainNameserversV1
Assigns a new set of nameservers to govern the specified domain's delegation.
Caution: Incorrect nameserver assignments can lead to DNS resolution failure or complete domain inaccessibility. This function directs domain traffic to specified DNS hosting providers.
- Method:
PUT - Path:
/api/domains/v1/portfolio/{domain}/nameservers
Arguments:
domain: The domain identity being re-delegated (Required).ns1: Primary nameserver address (Required).ns2: Secondary nameserver address (Required).ns3: Tertiary nameserver address (Optional).ns4: Quaternary nameserver address (Optional).
domains_getWHOISProfileV1
Fetches the detailed contact structure associated with a given WHOIS profile identifier.
View the specific contact information set referenced by an ID.
- Method:
GET - Path:
/api/domains/v1/whois/{whoisId}
Arguments:
whoisId: The unique identifier for the contact profile (Required).
domains_deleteWHOISProfileV1
Permanently removes a stored WHOIS contact profile from the account records.
Used for cleanup of stale or unused contact information templates.
- Method:
DELETE - Path:
/api/domains/v1/whois/{whoisId}
Arguments:
whoisId: The identifier of the profile to be eradicated (Required).
domains_getWHOISProfileListV1
Retrieves a list of all saved WHOIS contact profiles.
Optionally filters the results based on a specific TLD association. View all pre-configured contact templates available for use.
- Method:
GET - Path:
/api/domains/v1/whois
Arguments:
tld: Filter list to only show profiles valid for this TLD (omit the leading dot).
domains_createWHOISProfileV1
Registers a new structured contact profile for domain registration purposes.
This profile must specify the TLD context, location, entity type, and core contact details. Creates reusable contact templates for future domain acquisitions.
- Method:
POST - Path:
/api/domains/v1/whois
Arguments:
tld: The TLD this profile is intended for (e.g.,com) (Required).country: ISO 3166 two-letter code for the jurisdiction (Required).entity_type: Declaration of the legal structure (e.g., Individual, Corporation) (Required).tld_details: TLD-specific registration metadata.whois_details: Core contact information (names, addresses, etc.) (Required).
domains_getWHOISProfileUsageV1
Determines which registered domains are currently utilizing a specified WHOIS contact profile.
Audits the application of a specific contact template across the domain registry.
- Method:
GET - Path:
/api/domains/v1/whois/{whoisId}/usage
Arguments:
whoisId: The profile identifier being checked for usage (Required).
reach_deleteAContactV1
Irreversibly purges an individual contact entry from the email marketing database, identified by its unique UUID.
This constitutes a permanent removal from all mailing lists.
- Method:
DELETE - Path:
/api/reach/v1/contacts/{uuid}
Arguments:
uuid: The unique universal identifier for the contact record slated for deletion (Required).
reach_listContactGroupsV1
Retrieves the complete roster of defined organizational groupings (groups) within the contact management system.
This provides context for structuring audience segments.
- Method:
GET - Path:
/api/reach/v1/contacts/groups
reach_listContactsV1
Fetches a paginated dataset of contacts, optionally restricted by group affiliation or current subscription status.
Returns condensed contact details. Filter parameters allow for targeted audience retrieval.
- Method:
GET - Path:
/api/reach/v1/contacts
Arguments:
group_uuid: UUID used to restrict results to members of a specific group.subscription_status: Filter based on the opt-in/opt-out state of communications.page: Index specifying the result set page number to retrieve.
reach_createANewContactV1
Registers a fresh subscriber entry into the email marketing platform.
Accepts essential details (email, name, surname). Assignment to specified groups and annotation with notes are optional. Upon successful creation, the contact is automatically opted-in for future correspondence. Adds a new entity to the outreach database.
- Method:
POST - Path:
/api/reach/v1/contacts
Arguments:
email: The primary email address for the contact (Required).name: First name of the contact.surname: Last name of the contact.group_uuids: Identifiers for groups the contact should immediately join.note: Any supplementary internal commentary on the contact record.
VPS_getDataCenterListV1
Retrieves a comprehensive catalogue of all physical infrastructure locations available for Virtual Machine deployment.
Informs provisioning decisions regarding geographical deployment.
- Method:
GET - Path:
/api/vps/v1/data-centers
VPS_getProjectContainersV1
Lists the operational status and runtime details of every container orchestrated by a named Docker Compose project on a specified VPS.
This enumeration includes current operational state, port mappings, and resource configurations for each service instance within the project scope. Essential for granular health monitoring of component services.
- Method:
GET - Path:
/api/vps/v1/virtual-machines/{virtualMachineId}/docker/{projectName}/containers
Arguments:
virtualMachineId: Unique identifier for the host machine (Required).projectName: The designated name of the Docker Compose structure; restricted to alphanumeric, hyphen, and underscore characters (Required).
VPS_getProjectContentsV1
Fetches the entirety of a Docker Compose project's definition, including the docker-compose.yml file content, associated metadata, and deployment status.
Provides a full configuration audit trail and current operational posture for the defined project. Facilitates inspection of the project definition file and overall health check.
- Method:
GET - Path:
/api/vps/v1/virtual-machines/{virtualMachineId}/docker/{projectName}
Arguments:
virtualMachineId: The host VPS identifier (Required).projectName: The identifier for the Docker Compose set; restricted characters apply (Required).
VPS_deleteProjectV1
Executes a total teardown of a Docker Compose project on the host VPS, encompassing stopping all containers and purging associated network fabric and storage volumes.
Warning: This action results in permanent, non-recoverable data loss for the project's artifacts. Use this when absolute resource reclamation is necessary.
- Method:
DELETE - Path:
/api/vps/v1/virtual-machines/{virtualMachineId}/docker/{projectName}/down
Arguments:
virtualMachineId: The target VPS identifier (Required).projectName: The name of the Docker Compose project to dismantle (Required).
VPS_getProjectListV1
Retrieves a summary roster of all Docker Compose projects currently managed on the specified VPS.
This output includes project names, statuses, file paths, and container summaries (excluding performance statistics). For detailed container metrics, utilize the 'Get project containers' method. Provides a high-level inventory of containerized workloads on the instance.
- Method:
GET - Path:
/api/vps/v1/virtual-machines/{virtualMachineId}/docker
Arguments:
virtualMachineId: The host VPS identifier (Required).
VPS_createNewProjectV1
Deploys a new Docker Compose project onto the VPS, sourced either from inline YAML content or a remote URL.
If a URL points to a GitHub repository (e.g., https://github.com/[user]/[repo]), the system automatically seeks the docker-compose.yml in the main branch. Any other URL must serve the YAML file content directly.
If a project name conflict exists, the existing deployment will be superseded by the new definition.
Provisions a new containerized environment.
- Method:
POST - Path:
/api/vps/v1/virtual-machines/{virtualMachineId}/docker
Arguments:
virtualMachineId: The host VPS identifier (Required).project_name: The desired name for the Docker Compose project (Required).content: Source specification: a URL pointing to the compose file, a GitHub repo link, or raw YAML text (Required).environment: A map of environment variables to inject into the project containers.
VPS_getProjectLogsV1
Aggregates and returns the most recent log entries emitted across all services composing a specified Docker project.
This response encompasses the last 300 lines of output for every container, time-stamped and grouped by service name. Crucial for unified debugging and rapid issue tracing across the application stack.
- Method:
GET - Path:
/api/vps/v1/virtual-machines/{virtualMachineId}/docker/{projectName}/logs
Arguments:
virtualMachineId: The identifier of the hosting VPS (Required).projectName: The Docker Compose project identifier (Required).
VPS_restartProjectV1
Orchestrates a controlled restart of all dependent services within a Docker Compose project, respecting established service startup order.
This refreshes containers while ensuring data persistence via volume preservation. Apply this to enforce configuration updates or recover from transient service stalls.
- Method:
POST - Path:
/api/vps/v1/virtual-machines/{virtualMachineId}/docker/{projectName}/restart
Arguments:
virtualMachineId: The hosting VPS ID (Required).projectName: The project name defining the services scope (Required).
VPS_startProjectV1
Initiates the execution of all services within a Docker Compose project that are currently in a stopped state.
Containers are brought online following dependency logic defined in the configuration file. Use this to resume operations after an intentional halt or system recovery.
- Method:
POST - Path:
/api/vps/v1/virtual-machines/{virtualMachineId}/docker/{projectName}/start
Arguments:
virtualMachineId: The host VPS ID (Required).projectName: The project identifier (Required).
VPS_stopProjectV1
Gracefully terminates all actively running services within a Docker Compose project, maintaining container state and persistent volumes.
Shutdown sequence follows reverse dependency rules. This provides a method for temporary project suspension without data eradication.
- Method:
POST - Path:
/api/vps/v1/virtual-machines/{virtualMachineId}/docker/{projectName}/stop
Arguments:
virtualMachineId: The host VPS ID (Required).projectName: The project identifier (Required).
VPS_updateProjectV1
Applies updates to a Docker Compose project by fetching the newest container images and redeploying containers using the revised configuration.
Data volumes are retained throughout this upgrade process. This is the mechanism for deploying application upgrades or applying changes embedded in the compose specification.
- Method:
POST - Path:
/api/vps/v1/virtual-machines/{virtualMachineId}/docker/{projectName}/update
Arguments:
virtualMachineId: The host VPS ID (Required).projectName: The project identifier undergoing modification (Required).
VPS_activateFirewallV1
Applies a pre-configured firewall entity to a specified virtual machine.
Note: A VPS can only have one active firewall simultaneously; activation of a new one implicitly deactivates any prior assignment. Enables network protection policies on the instance.
- Method:
POST - Path:
/api/vps/v1/firewall/{firewallId}/activate/{virtualMachineId}
Arguments:
firewallId: The identifier of the firewall configuration to apply (Required).virtualMachineId: The target VPS identifier (Required).
VPS_deactivateFirewallV1
Removes an active firewall policy from a specified virtual machine.
Disables all network security rules associated with that firewall ID on the instance. Stops the application of firewall protection.
- Method:
POST - Path:
/api/vps/v1/firewall/{firewallId}/deactivate/{virtualMachineId}
Arguments:
firewallId: The ID of the firewall to disengage (Required).virtualMachineId: The target VPS identifier (Required).
VPS_getFirewallDetailsV1
Retrieves the full rule set and associated metadata for a firewall identified by its unique ID.
Examines the specific security blueprint defined for firewall operations.
- Method:
GET - Path:
/api/vps/v1/firewall/{firewallId}
Arguments:
firewallId: The identifier of the desired firewall configuration (Required).
VPS_deleteFirewallV1
Permanently erases a firewall configuration entity.
If the deleted firewall was active on any VPS, it is automatically deactivated on those machines. Used to retire obsolete or superseded security policies.
- Method:
DELETE - Path:
/api/vps/v1/firewall/{firewallId}
Arguments:
firewallId: The identifier of the firewall to remove (Required).
VPS_getFirewallListV1
Fetches a list of all firewall configurations currently defined within the system.
Provides an overview of all existing network security templates.
- Method:
GET - Path:
/api/vps/v1/firewall
Arguments:
page: Pagination index for fetching large result sets.
VPS_createNewFirewallV1
Establishes a new, empty firewall configuration entity, requiring a name for identification.
New firewalls, by default, implement a deny-all incoming traffic policy until rules are added. Initializes a new security boundary for potential application.
- Method:
POST - Path:
/api/vps/v1/firewall
Arguments:
name: A descriptive label for the new firewall instance (Required).
VPS_updateFirewallRuleV1
Modifies an existing, specific rule within a designated firewall structure.
Crucially, any VPS currently using this firewall will transition to a de-synchronized state, requiring a manual sync operation to enforce the updated rule. Modify specific ingress/egress parameters for an existing rule.
- Method:
PUT - Path:
/api/vps/v1/firewall/{firewallId}/rules/{ruleId}
Arguments:
firewallId: The firewall containing the rule (Required).ruleId: The specific rule identifier within the firewall (Required).protocol: Network protocol specification (e.g., TCP, UDP) (Required).port: The target port number or range (e.g., 80, 1024:2048) (Required).source: Rule direction/type indicator (Required).source_detail: Specific IP address, CIDR notation, or 'any' source designator (Required).
VPS_deleteFirewallRuleV1
Removes a singular, identified rule from a specified firewall configuration.
Synchronization loss occurs for any actively attached VPS, necessitating a manual synchronization step to reflect the change. Retire a specific network access permission.
- Method:
DELETE - Path:
/api/vps/v1/firewall/{firewallId}/rules/{ruleId}
Arguments:
firewallId: The firewall housing the rule (Required).ruleId: The rule identifier to be purged (Required).
VPS_createFirewallRuleV1
Introduces a new acceptance or denial rule into a specified firewall policy.
Since the default posture is restrictive (blocking ingress), this function is critical for permitting necessary traffic. Synchronization is required for active VPSs. Adds a new security constraint or allowance to a policy set.
- Method:
POST - Path:
/api/vps/v1/firewall/{firewallId}/rules
Arguments:
firewallId: The firewall to augment (Required).protocol: Network protocol (e.g., ICMP, TCP) (Required).port: The port specification (Required).source: Rule classification (Required).source_detail: Detailed source address specification (Required).
VPS_syncFirewallV1
Forces the immediate application of the current firewall configuration rules onto a designated virtual machine.
This is necessary if the firewall entity was modified (rules added/removed/changed) while attached to the VPS. Ensures the instance reflects the latest security posture.
- Method:
POST - Path:
/api/vps/v1/firewall/{firewallId}/sync/{virtualMachineId}
Arguments:
firewallId: The firewall definition identifier (Required).virtualMachineId: The VPS instance requiring configuration update (Required).
VPS_getPostInstallScriptV1
Retrieves the content and metadata for an automation script identified by its ID.
View the precise code of a specific post-installation task.
- Method:
GET - Path:
/api/vps/v1/post-install-scripts/{postInstallScriptId}
Arguments:
postInstallScriptId: The unique identifier for the script resource (Required).
VPS_updatePostInstallScriptV1
Modifies the name or execution content of an existing post-installation automation script.
Updates the logic or label associated with a saved script.
- Method:
PUT - Path:
/api/vps/v1/post-install-scripts/{postInstallScriptId}
Arguments:
postInstallScriptId: The script identifier to modify (Required).name: The new descriptive name for the script (Required).content: The updated script source code payload (Required).
VPS_deletePostInstallScriptV1
Removes a post-installation script from the user's available automation library.
Retires unused setup routines.
- Method:
DELETE - Path:
/api/vps/v1/post-install-scripts/{postInstallScriptId}
Arguments:
postInstallScriptId: The script ID targeted for removal (Required).
VPS_getPostInstallScriptsV1
Fetches a list of all post-installation scripts currently stored under the user's account.
Review the complete collection of available automation routines for new deployments.
- Method:
GET - Path:
/api/vps/v1/post-install-scripts
Arguments:
page: Pagination index for navigating the script list.
VPS_createPostInstallScriptV1
Registers a new script intended for execution immediately following a VPS installation.
The script content is persisted and set to be executable at /post_install, logging output to /post_install.log. Maximum size constraint is 48KB.
Define new automation sequences for setup tasks.
- Method:
POST - Path:
/api/vps/v1/post-install-scripts
Arguments:
name: The label assigned to the script (Required).content: The executable body of the script (Required).
VPS_attachPublicKeyV1
Links one or more existing SSH public keys from the account inventory to a specific virtual machine.
Multiple keys can be associated with a single VPS for access control. Integrates specified SSH keys for secure access to the instance.
- Method:
POST - Path:
/api/vps/v1/public-keys/attach/{virtualMachineId}
Arguments:
virtualMachineId: The target VPS identifier (Required).ids: A collection of Public Key identifiers to link (Required).
VPS_deletePublicKeyV1
Removes a public key from the user's general account key repository.
Crucially: This action does not sever the association if the key is currently active on any running virtual machine. Clean up obsolete key material from the general SSH key vault.
- Method:
DELETE - Path:
/api/vps/v1/public-keys/{publicKeyId}
Arguments:
publicKeyId: The ID of the SSH public key to be deleted from the account (Required).
VPS_getPublicKeysV1
Retrieves the complete collection of SSH public keys stored under the user's management.
Allows auditing of all keys available for VPS SSH access configuration.
- Method:
GET - Path:
/api/vps/v1/public-keys
Arguments:
page: Pagination index for result navigation.
VPS_createPublicKeyV1
Registers a new SSH public key credential within the user's account for future use.
This key must be provided in standard OpenSSH public key format. Adds a new cryptographic credential for securing VPS logins.
- Method:
POST - Path:
/api/vps/v1/public-keys
Arguments:
name: A descriptive title for the public key (Required).key: The raw public key string (Required).
VPS_getTemplateDetailsV1
Fetches the comprehensive specifications for a specific operating system template.
Used to verify resource requirements or OS versioning before provisioning.
- Method:
GET - Path:
/api/vps/v1/templates/{templateId}
Arguments:
templateId: The identifier for the OS template record (Required).
VPS_getTemplatesV1
Retrieves a listing of all available operating system images suitable for VPS deployment.
Provides the catalogue of OS choices for initial setup or recreation.
- Method:
GET - Path:
/api/vps/v1/templates
VPS_getActionDetailsV1
Retrieves exhaustive status and contextual data pertaining to a single, specific operation executed on a VPS.
Provides forensic detail on past or in-progress VPS activities.
- Method:
GET - Path:
/api/vps/v1/virtual-machines/{virtualMachineId}/actions/{actionId}
Arguments:
virtualMachineId: The host VPS identifier (Required).actionId: The identifier for the specific logged operation (Required).
VPS_getActionsV1
Fetches a chronological sequence of significant operations executed against a specified virtual machine.
This log details events like power state changes, reconfigurations, or updates, including timestamps and completion status. Review the operational history of the VPS for auditing or diagnostic purposes.
- Method:
GET - Path:
/api/vps/v1/virtual-machines/{virtualMachineId}/actions
Arguments:
virtualMachineId: The host VPS identifier (Required).page: Pagination index for retrieving older action records.
VPS_getAttachedPublicKeysV1
Lists all SSH public keys currently authorized for access on a given virtual machine.
Shows which credentials have permission to connect via SSH.
- Method:
GET - Path:
/api/vps/v1/virtual-machines/{virtualMachineId}/public-keys
Arguments:
virtualMachineId: The host VPS identifier (Required).page: Pagination index for extensive key lists.
VPS_getBackupsV1
Retrieves a manifest of all existing backup points available for recovery of a specified VPS.
Shows recoverable states based on creation timestamp and associated ID.
- Method:
GET - Path:
/api/vps/v1/virtual-machines/{virtualMachineId}/backups
Arguments:
virtualMachineId: The host VPS identifier (Required).page: Pagination index for large backup archives.
VPS_restoreBackupV1
Initiates the process to roll back the entire state of a VPS to a previously saved backup image.
CRITICAL WARNING: All current data residing on the VPS will be permanently overwritten by the contents of the selected backup. Execute this procedure only when data restoration from a prior state is the desired outcome.
- Method:
POST - Path:
/api/vps/v1/virtual-machines/{virtualMachineId}/backups/{backupId}/restore
Arguments:
virtualMachineId: The target VPS identifier (Required).backupId: The identifier of the recovery image to deploy (Required).
VPS_setHostnameV1
Modifies the assigned hostname for the virtual machine.
Note: This operation does not automatically synchronize the corresponding PTR (reverse DNS) record. For external resolution, the domain's A/AAAA records must also be updated to point to the VPS IP address. Configures a custom network identity for the instance.
- Method:
PUT - Path:
/api/vps/v1/virtual-machines/{virtualMachineId}/hostname
Arguments:
virtualMachineId: The target VPS identifier (Required).hostname: The desired new hostname string (Required).
VPS_resetHostnameV1
Reverts the hostname and associated PTR record of the VPS back to the system's default configuration.
Clears any custom name assignments.
- Method:
DELETE - Path:
/api/vps/v1/virtual-machines/{virtualMachineId}/hostname
Arguments:
virtualMachineId: The target VPS identifier (Required).
VPS_getVirtualMachineDetailsV1
Fetches a comprehensive data structure detailing the current configuration, status, resource allocation, and network details of a specific VPS.
Access deep technical specifications and operational status of the instance.
- Method:
GET - Path:
/api/vps/v1/virtual-machines/{virtualMachineId}
Arguments:
virtualMachineId: The identifier for the VPS being queried (Required).
VPS_getVirtualMachinesV1
Retrieves a summary list of all provisioned virtual machines associated with the account.
Provides an overview of all active and inactive VPS assets.
- Method:
GET - Path:
/api/vps/v1/virtual-machines
VPS_purchaseNewVirtualMachineV1
Provisions and finalizes the deployment of a brand new virtual machine instance.
If the automated initial provisioning fails for any reason, manual recovery via hPanel is required to finalize the setup. If no payment method is explicitly nominated, the account's preferred payment method will be automatically utilized. This is the primary action for launching new compute resources.
- Method:
POST - Path:
/api/vps/v1/virtual-machines
Arguments:
item_id: The required catalog identifier for the desired VPS specification (Required).payment_method_id: Payment source identifier; falls back to default if omitted.setup: Defines the initial setup configuration parameters (Required).coupons: Optional list of discount codes applicable to the purchase.
VPS_getScanMetricsV1
Retrieves performance and threat detection statistics from the Monarx malware scanning agent installed on the VPS.
These metrics detail scan frequency, identified threats, and overall security efficacy provided by Monarx. Monitor the security posture and effectiveness of malware detection on the instance.
- Method:
GET - Path:
/api/vps/v1/virtual-machines/{virtualMachineId}/monarx
Arguments:
virtualMachineId: The identifier of the VPS being scanned (Required).
VPS_installMonarxV1
Deploys the Monarx security scanner onto a designated virtual machine.
Monarx offers proactive malware defense capabilities for server environments. Installation enhances the VPS's protection layer against malicious software. Activates integrated malware surveillance on the VPS.
- Method:
POST - Path:
/api/vps/v1/virtual-machines/{virtualMachineId}/monarx
Arguments:
virtualMachineId: The target VPS identifier for security agent installation (Required).
VPS_uninstallMonarxV1
Removes the Monarx malware scanning agent from the specified virtual machine.
If the agent is not currently resident, the request completes silently without error. Strips the malware scanning capability from the instance.
- Method:
DELETE - Path:
/api/vps/v1/virtual-machines/{virtualMachineId}/monarx
Arguments:
virtualMachineId: The target VPS identifier from which to remove the scanner (Required).
VPS_getMetricsV1
Fetches time-series performance data for the VPS over a specified historical window.
Includes resource consumption statistics: CPU utilization, RAM usage, I/O throughput, and network traffic volumes, alongside system uptime metrics. Essential for performance baseline establishment and capacity planning.
- Method:
GET - Path:
/api/vps/v1/virtual-machines/{virtualMachineId}/metrics
Arguments:
virtualMachineId: The host VPS identifier (Required).date_from: The starting timestamp for the metrics aggregation (Required).date_to: The ending timestamp for the metrics aggregation (Required).
VPS_setNameserversV1
Assigns custom DNS resolver addresses to a specific virtual machine.
Improper configuration here can break the VPS's ability to resolve external domain names. Directs VPS network queries to specified DNS infrastructure.
- Method:
PUT - Path:
/api/vps/v1/virtual-machines/{virtualMachineId}/nameservers
Arguments:
virtualMachineId: The target VPS identifier (Required).ns1: Primary nameserver address (Required).ns2: Secondary nameserver address (Optional).ns3: Tertiary nameserver address (Optional).
VPS_createPTRRecordV1
Registers or overwrites the reverse DNS lookup record (PTR) associated with a specific IP address assigned to the VPS.
This maps the IP back to a hostname via reverse lookup queries. Configures reverse DNS mapping for the specified IP address.
- Method:
POST - Path:
/api/vps/v1/virtual-machines/{virtualMachineId}/ptr/{ipAddressId}
Arguments:
virtualMachineId: The host VPS identifier (Required).ipAddressId: Identifier for the IP address subject to PTR change (Required).domain: The fully qualified domain name to resolve to (Required).
VPS_deletePTRRecordV1
Deletes the existing PTR record linked to a specific IP address on the VPS.
Reverse DNS queries for that IP will subsequently fail to resolve to a hostname. Removes the reverse resolution mapping.
- Method:
DELETE - Path:
/api/vps/v1/virtual-machines/{virtualMachineId}/ptr/{ipAddressId}
Arguments:
virtualMachineId: The host VPS identifier (Required).ipAddressId: The IP address identifier whose PTR record is to be removed (Required).
VPS_setPanelPasswordV1
Assigns or updates the administrative password for the integrated control panel, if the OS supports one.
If the VPS utilizes a non-panel OS image, this command is executed harmlessly. Password complexity must adhere to the standards defined for the recreation endpoint. Sets credentials for the management interface.
- Method:
PUT - Path:
/api/vps/v1/virtual-machines/{virtualMachineId}/panel-password
Arguments:
virtualMachineId: The target VPS identifier (Required).password: The new panel access credential (Required).
VPS_startRecoveryModeV1
Activates a specialized rescue environment for the VPS, booting from a recovery disk image.
The existing primary disk will be mounted read-only at /mnt for data access.
Initiates an emergency boot state for system diagnostics or repair.
- Method:
POST - Path:
/api/vps/v1/virtual-machines/{virtualMachineId}/recovery
Arguments:
virtualMachineId: The target VPS identifier (Required).root_password: A temporary, required password for root access within the recovery environment (Required).
VPS_stopRecoveryModeV1
Terminates the special recovery mode session and attempts a normal boot sequence for the VPS.
This operation is contingent on the VPS currently being in recovery mode; otherwise, it will fail. Restores the VPS to its standard operational state.
- Method:
DELETE - Path:
/api/vps/v1/virtual-machines/{virtualMachineId}/recovery
Arguments:
virtualMachineId: The target VPS identifier (Required).
VPS_recreateVirtualMachineV1
Performs a full, destructive OS reinstallation on the virtual machine, based on a specified template.
This process erases all existing data, including any current snapshots.
Password Compliance Directives
Root passwords are checked against known compromised credentials databases. Minimum requirements include: - Minimum length of 8 characters. - Inclusion of at least one uppercase character. - Inclusion of at least one lowercase character. - Inclusion of at least one numeral. - Must not be present in public breach datasets.
WARNING: This process irrevocably destroys all current data on the target VPS. Rebuilds the VPS from the ground up using a fresh OS image.
- Method:
POST - Path:
/api/vps/v1/virtual-machines/{virtualMachineId}/recreate
Arguments:
virtualMachineId: The VPS instance ID to be rebuilt (Required).template_id: The identifier for the OS image to deploy (Required).password: The desired root password. A random one is generated if omitted. The generated password is never returned in the response.panel_password: Password for panel-based OS setups. Ignored for non-panel images. Randomly generated if missing. Not returned in output.post_install_script_id: Optional ID of a script to run post-reinstallation.
VPS_restartVirtualMachineV1
Performs a complete power cycle (stop then start) on the specified virtual machine.
If the VPS is already powered off, this command will function as a 'start' command. Standard reboot procedure for the instance.
- Method:
POST - Path:
/api/vps/v1/virtual-machines/{virtualMachineId}/restart
Arguments:
virtualMachineId: The target VPS identifier (Required).
VPS_setRootPasswordV1
Updates the primary administrative password for the VPS root user.
Password criteria match those documented for the 'recreate virtual machine' operation. Changes the top-level administrator access credential.
- Method:
PUT - Path:
/api/vps/v1/virtual-machines/{virtualMachineId}/root-password
Arguments:
virtualMachineId: The target VPS identifier (Required).password: The new root password string (Required).
VPS_setupPurchasedVirtualMachineV1
Initializes a newly procured VPS instance to an 'initial' operational state.
If configuration data is missing (e.g., data center ID), the operation will fail initialization checks. Configures and finalizes the deployment of a purchased server.
- Method:
POST - Path:
/api/vps/v1/virtual-machines/{virtualMachineId}/setup
Arguments:
virtualMachineId: The identifier for the new VPS (Required).template_id: The OS image ID to use for initial deployment (Required).data_center_id: The physical location identifier for hosting (Required).post_install_script_id: Optional ID linking a setup script.password: Initial root password; random if omitted. Password is not echoed in response.hostname: An optional override for the default hostname.install_monarx: Flag to mandate Monarx installation (if supported by template).enable_backups: Flag to activate the default weekly backup schedule.ns1: Custom primary nameserver.ns2: Custom secondary nameserver.public_key: Flag indicating if an account SSH key should be associated.
VPS_getSnapshotV1
Retrieves the current state representation (snapshot) associated with the VPS.
View the latest captured image data for the instance.
- Method:
GET - Path:
/api/vps/v1/virtual-machines/{virtualMachineId}/snapshot
Arguments:
virtualMachineId: The host VPS identifier (Required).
VPS_createSnapshotV1
Generates a point-in-time capture of the VPS's current disk state and configuration.
This snapshot serves as a rollback point for future restoration or testing. It will supersede any pre-existing snapshot on the VPS. Captures the current live state for safety and rollback capability.
- Method:
POST - Path:
/api/vps/v1/virtual-machines/{virtualMachineId}/snapshot
Arguments:
virtualMachineId: The VPS instance to snapshot (Required).
VPS_deleteSnapshotV1
Removes the existing snapshot resource associated with the specified virtual machine.
Frees up storage allocated to the snapshot data.
- Method:
DELETE - Path:
/api/vps/v1/virtual-machines/{virtualMachineId}/snapshot
Arguments:
virtualMachineId: The host VPS identifier whose snapshot is to be removed (Required).
VPS_restoreSnapshotV1
Reverts the VPS environment to the exact state captured in the specified snapshot.
This restores the operating system, files, and configuration as they existed at the snapshot time. Apply this to undo recent system modifications or recover from errors.
- Method:
POST - Path:
/api/vps/v1/virtual-machines/{virtualMachineId}/snapshot/restore
Arguments:
virtualMachineId: The VPS instance to be reverted (Required).
VPS_startVirtualMachineV1
Powers on a virtual machine that is currently powered off.
If the VPS is already running, this command executes without effect. Energizes a stopped server instance.
- Method:
POST - Path:
/api/vps/v1/virtual-machines/{virtualMachineId}/start
Arguments:
virtualMachineId: The identifier of the VPS to start (Required).
VPS_stopVirtualMachineV1
Powers down a running virtual machine in a controlled manner.
If the VPS is already halted, this command executes without effect. Shuts down an active server instance.
- Method:
POST - Path:
/api/vps/v1/virtual-machines/{virtualMachineId}/stop
Arguments:
virtualMachineId: The identifier of the VPS to stop (Required).
