InvAPI Control Panel API Documentation¶
This documentation describes the overall design and principles of the API, along with specific endpoints and usage examples.
Overview
The invapi.hostkey.com control panel is built on top of this API.
Making API Requests¶
All API requests must be made over HTTPS to ensure encryption of data in transit.
Use the POST method for all requests unless otherwise specified.
API Example Format¶
Examples in this documentation use curl, a command-line HTTP client. curl is pre-installed on most Linux and macOS systems and is available for download on all major platforms, including Windows.
Each example is split across multiple lines using the \ line continuation character, which is compatible with bash. A typical request looks like this:
Example POST Request:
The -X flag specifies the HTTP method. For consistency, the method is included in all examples, even when not explicitly required for GET requests.
Examples that require a JSON payload in the request body pass the data via the --data parameter.
All API responses are returned in JSON format and formatted in this documentation for readability.
Tip: Environment Variables
To avoid repeating your API token in every example, you can export it once as an environment variable in your terminal. On Linux or macOS:
The token will then be automatically substituted in your requests.
Disclaimer
All values shown in this documentation are for illustrative purposes only. Do not rely on operating system IDs, plan identifiers, or other example values. Always use your actual server, network, or domain identifiers when querying or creating resources. In some cases, only the account API key will work, not the specific server key (and vice versa), so if you encounter method authorization errors, try switching the API key type.
api_keys.php¶
API key management module: creation, editing, deletion, viewing history, and retrieving lists of keys for customers and servers.
| Method | Description |
|---|---|
add | Creates a new API key for a customer or a specific server. The customer must have active servers. |
delete | Deletes the specified API key from the system. |
edit | Modifies parameters of an existing API key (name, IP, status, expiration). |
history | Returns the history of actions performed on API keys (creation, modification, deletion). |
list | Returns a list of all API keys for the current customer. |
list_for_server | Returns a list of API keys bound to a specific server. |
view | Returns detailed information about a single API key. |
auth.php¶
Authentication and authorization module: session management, login via WHMCS, LDAP, API keys, and SSO (Google, GitHub, VK), 2FA verification, SMS and email, as well as customer tag management.
| Method | Description |
|---|---|
2fa_check | Verifies the correctness of the two-factor authentication code for the current user session. |
2fa_resend | Requests a resend of the two-factor authentication code for the user. If the user is in debug mode, the code is returned in the response. |
billing_list | Returns a list of available payment systems (billings) available to the current user or administrator. |
email_check | Verifies email validity, sends a verification code, or checks an existing code/token to confirm the address. |
flip_tag | Creates or removes the specified tag for the user. If the tag already exists, it will be removed; if it does not exist, it will be created. |
get_log | Returns an authorization event log for a specified period or by token. |
get_log_details | Returns detailed information about authentication events for the current user (via user_token). |
github_init | Returns the data required to initialize authorization via GitHub (client_id and redirect_uri). |
github_signin | Initiates the authorization process via GitHub. Generates a temporary state and token for subsequent code-to-session exchange. |
google_signin | Performs login using a Google ID Token. If the token is already linked to a user, the method links the current session with that account. |
info | Returns detailed information about the current user session, including role, permissions, customer data, and a list of active servers. |
login | Authorization via client API key. Returns an access token, user role, and a list of available servers. |
logout | Clears the current access token. |
session_reset | Terminates all active user sessions corresponding to the provided reset token and clears associated tags. |
set_tag | Creates or removes a tag for the customer. Allows setting values for specific parameters (e.g., auto_credit) or simply toggling the presence of a tag. |
tg_verify | Links a user's Telegram username to their account and returns a link to the bot for notifications. |
vk_init | Initiates the authorization process via the VKontakte social network, generating temporary OAuth2 parameters (code_challenge, state, etc.). |
vk_signin | Performs user authorization via the VK OAuth2 protocol. Exchanges the code for a token and links the account to the user. |
whmcslogin | Performs login using WHMCS credentials (email/password) or SSO (Google). Returns a session token, customer information, permissions, and 2FA status. |
eq.php¶
Equipment Management Module (eq.php): API for server deployment, power management, IPMI, backups, searching, and retrieving detailed hardware configuration information.
| Method | Description |
|---|---|
abort_reinstall | Interrupts the server reinstallation process, removes associated tags (reinstall_start, autodeploy_start, autodeploy_timeout), and restores VLAN settings. |
add_ipmi_admin | Creates a new user with administrator privileges for IPMI management. If admin_user is specified, a user with the given name is created; otherwise, a random login and password are generated. |
add_ipmi_user | Creates a new IPMI user for the server. If the user is an administrator, admin_user and admin_pass parameters are required. |
announceip | Requests announcement of a specified subnet or a specific server in the BGP network. |
backup_get_schedule | Returns the current automatic backup schedule for the specified server. |
backup_list | Returns a list of available backups for the specified equipment (server). |
backup_save_schedule | Saves the configured backup schedule for the specified server. |
boot_dev | Requests switching the server boot mode (PXE or disk), specifying the media type and boot mode. |
check_backup_lock | Checks for an active lock on backup operations for the specified server. |
check_pin | Checks the PIN code for operations. |
clear_pxe | Clears the current PXE configuration for the specified host. If the hostname parameter is not provided, the server id is used. |
console | Requests the launch of the server management console via IPMI/NoVNC. |
create_backup | Initiates the backup creation process for the specified server. The operation is performed asynchronously. |
create_pxe | Initializes the PXE configuration creation process for server reinstallation or deployment, specifying OS and boot parameters. |
delete_backup | Deletes the specified server backup. A backup name is required. |
deploy | Starts the server deployment (deploy) process by ID or from a preset, considering configuration, OS, and traffic parameters. |
get_ipmi | Returns the IP address and model (vendor) of available IPMI interfaces for the specified server. If there are multiple interfaces, an array is returned. |
get_traffic | Returns IPv4 traffic usage data for the specified equipment. |
get_upgrade_key | Returns an upgrade key linked to a specific invoice (invoice_id) via equipment tags. |
getserversforannounce | Returns a list of available user servers (with status rent or power_off) that have passed subnet mask checks (/23 and /24) to perform an announcement. |
groups | Returns the list of groups for a specific server. |
hard_off | Sends a request for immediate (hard) shutdown of the equipment via IPMI/BMC. |
history | Returns the server event history. |
list | Returns a list of available equipment with filtering by various parameters (group, location, status, IP, email, etc.). |
off | Shuts down the server. |
on | Powers on the server. |
order_instance | Starts the process of deploying a new server from a preset or reinstalling an existing server with OS and additional software selection. |
ovirt_novnc | Requests access to the NoVNC console for the server via the oVirt interface. Returns a callback key to initialize the session. |
reboot | Sends a request to reboot the server via IPMI or system tools. |
reinstall | Starts the server reinstallation preparation process, creates an operation key, and notifies the client. |
remove_ipmi_user | Deletes an additional IPMI user for the specified server. |
request_backup_link | Requests the generation of a temporary link to download a server backup. |
restore_backup | Starts the process of restoring the server from the specified backup. The method is asynchronous and returns a callback key. |
search | Returns a list of available equipment (servers, VPS, etc.) with filtering by various parameters: location, status, type, IP address, MAC address, group, and others. |
sensors | Returns sensor status data for the specified server. |
set_pin | Sets a PIN code for operations. |
show | Returns detailed server data, including hardware configuration (hwconfig), operating system, IP addresses, interfaces, and IPMI. |
status | Returns the current server status, its configuration, and related data (IP, interfaces, tags). |
status_check | Returns the current equipment state (status, configuration, tags). |
suspend | Suspends VPS or server operation (depending on resource type). |
traffic_add | Increases the outbound traffic limit for the server and generates an invoice in WHMCS. |
unified_server_search | Unified search for servers by query. |
unit_reset | Requests an IPMI settings reset for the specified server. If the request requires confirmation, a callback is returned. |
eq_callback.php¶
Module for processing asynchronous responses from workers for equipment (EQ) and virtual machine management. Handles task statuses (deploy, reinstall, backup, network), updates billing, and sends noti
| Method | Description |
|---|---|
check | Checks the current status of a task by key and returns the execution context if the task is completed or at an intermediate stage. |
reinstall | Callback handler from the worker after the reinstallation operation is completed. Updates the server status, clears temporary tags, sends an email to the client with access credentials, and updates billing. |
ip.php¶
IP address and network infrastructure management module: retrieving IP information, managing PTR records, traffic monitoring, working with subnets and VLANs.
| Method | Description |
|---|---|
get_client_ip | Returns the current IP address of the client making the request to the API |
get_ip | Returns full network configuration information for a specific IP address (mask, network, etc.) |
get_ptr | Checks if the IP address belongs to the server and returns the current reverse record (PTR) for this IP in the specified location. |
get_traffic | Returns inbound and outbound traffic data for a specified IP address for a selected period. Can return both summary information and detailed timestamps. |
list_free_ip | Returns a list of unused IPv4 addresses for a specific location based on Route Reflector tags. For clients, it is only available within their own subnets. |
set_main | Sets the specified IP address as the primary (main) IP for the server interface. Updates WHMCS data if necessary. |
update_ptr | Updates the reverse DNS record (PTR) for a specified IP address, provided that this IP is assigned to a server with the given ID. |
iso.php¶
ISO Image Management Module: uploading, deleting, mounting, and unmounting images on servers, as well as retrieving lists of available and uploaded images.
| Method | Description |
|---|---|
add | Adds a new ISO image or updates an existing one by name. |
delete | Deletes an ISO image by ID. |
list_iso | Returns a list of available ISO images. |
mount_iso | Mounts an ISO image on the specified server. |
unmount_iso | Unmounts an ISO image from the specified server. |
upload | Uploads an ISO image via URL. |
uploaded | Returns a list of uploaded ISO images for a client or staff member. |
jenkins.php¶
Jenkins integration module for task management: retrieving the list of available tasks and executing them for servers.
| Method | Description |
|---|---|
get_tasks | Returns the list of available Jenkins tasks accessible to the current user or client. |
jira.php¶
Jira integration module for creating support tickets related to server management (power, reboot, KVM) and sales assistance requests.
| Method | Description |
|---|---|
request_PXEboot | Creates a Jira ticket for manual server PXE boot if remote management is unavailable. |
request_assistance | Creates a Jira ticket for the sales department with details regarding service cancellation or modification. |
request_check | Creates a Jira ticket to check and boot the server into the OS if remote management is unavailable. |
request_kvm | Creates a Jira ticket to connect an IP KVM to the server. |
request_poff | Creates a Jira ticket for manual server power off. |
request_pon | Creates a Jira ticket for manual server power on. |
request_reboot | Creates a Jira ticket for manual server reboot. |
nat.php¶
Static NAT management module: adding and removing IP address forwarding rules via MikroTik.
| Method | Description |
|---|---|
add_static_nat | Creates a static NAT passthrough via Microtic for the specified server with ACL and TTL support. |
remove_static_nat | Removes the static NAT passthrough for the specified server or white IP. |
net.php¶
Network infrastructure management module: adding and removing IP addresses, blocking traffic, managing network port status, retrieving statistics, and displaying Cacti graphs.
| Method | Description |
|---|---|
add_ipv4 | Adds the specified number of IPv4 addresses to a server or assigns specific IP addresses. Supports automatic search for free IPs in a VLAN or manual specification of a list. |
block_ip | Blocks the specified IP address on the server via BIRD or blackhole. Requires authentication. |
get_status | Returns the current status and configuration of the server's network port. Requires authentication. |
port_off | Disables the specified server network port and adds a block tag with the specified reason. |
port_on | Enables the specified server network port, removing the block (tag 'block') if it was not set by an administrator. |
remove_ipv4 | Removes the specified IPv4 address from the server. If the remove_all flag is passed, all addresses are removed. |
show_cacti | Returns traffic monitoring graph data for the specified server and port from the Cacti system. |
show_ipv4_free | Returns a list of available IPv4 addresses for the specified server and interface in a given VLAN. Requires authentication. |
unblock_ip | Removes the block from the specified IP address on the server. Requires access rights verification. |
os.php¶
Operating system management module: provides methods for adding, removing, updating, and retrieving a list of OS with filtering by hardware compatibility and licenses.
| Method | Description |
|---|---|
list | Returns a list of operating systems. If id or instance_id is specified, filters OS by compatibility with hardware or preset. Also returns a list of excluded OS. |
pdns.php¶
DNS record and zone management module: adding, deleting, and viewing domains, subdomains, and zones, as well as retrieving callback-URL information.
| Method | Description |
|---|---|
add_dns | Adds a new DNS record to the specified zone. |
add_domain | Adds a new domain to the DNS system for the specified client. |
delete_dns | Deletes the specified DNS record. |
delete_domain | Deletes the domain and all associated records. |
get_cb_url | Returns the URL for callback notifications. |
list_domains | Returns the list of client domains. |
list_zones | Returns the list of DNS zones. |
view_zone | Returns details of the specified DNS zone. |
presets.php¶
Server preset management module: retrieving lists, grouping, searching for suitable servers, and detailing configurations with prices in different currencies.
| Method | Description |
|---|---|
groups | Returns a list of available preset groups |
info | Returns a list of available presets considering the selected currencies (default EUR, RUB) |
list | Returns a list of available server presets with filtering by location and access rights |
search | Returns a list of servers matching the parameters of the specified preset. If the user is not authorized, the search is limited to free offers only. |
show | Returns information about a preset by ID or name. Supports filtering and limits. |
rhr.php¶
Remote Hands Requests Management Module: creation, filtering, status updates, and communication regarding requests.
| Method | Description |
|---|---|
add | Creates a new Remote Hands Request (RHR) specifying the type and equipment. |
chat | Adds a client-visible message to the request history. |
discard | Recursively changes the request status to canceled or closed. |
list | Returns a list of available RHR tasks with filtering by location, status, and date. |
s3.php¶
S3 storage management module: creating and deleting accounts, managing buckets and files, obtaining usage statistics, managing pricing plans and billing.
| Method | Description |
|---|---|
cancel_payment_account_deletion | Cancels the service cancellation process for an S3 account, restoring its status. |
create_account | Creates a new S3 account (bucket) for the client, links it to a pricing plan, and creates an order in the billing system. |
create_bucket | Creates a new S3 bucket for the user. Verifies that s3uid belongs to the current client and creates the bucket via the provider API. |
create_order | Creates a new S3 account, a bucket, and links it to a pricing plan with automatic payment through billing. |
delete_account | Deletes the user's S3 account, performing action auditing and logging into history. |
delete_bucket | Deletes the specified bucket from S3 storage if it belongs to the user. |
delete_file | Deletes the specified file from the user's S3 bucket |
delete_payment_account | Requests S3 service cancellation and subsequent deletion of the payment account. Returns information about the cancellation date. |
get_buckets | Returns a list of the user's S3 buckets, including bandwidth usage and snapshots information |
get_buckets_rmq | Returns a list of the user's buckets, their usage information, billing data, metrics, and S3 access credentials. |
get_files | Returns a list of files and folders in the specified bucket with support for pagination and search. |
get_users | Returns a list of S3 users with details on traffic, storage, and service data (billing/status) |
history | Returns event history related to a specific S3 account or user |
list_plans | Returns a list of available S3 plans considering user permissions and location. For administrators, it returns the full list; for clients, only active plans with prices in their currency. |
show_key | Returns the decrypted secret key or access key for the specified S3 account |
software.php¶
Software management module: provides methods to get a list of available software filtered by server characteristics or preset, as well as selecting compatible presets and operating systems for specifi
| Method | Description |
|---|---|
list | Returns a list of software suitable for a specific server (id) or preset (instance_id), taking into account licenses, hardware specifications, and promotions. |
stocks.php¶
Server inventory management module: provides lists of available servers with filtering by locations and groups, as well as detailed information about a specific server.
| Method | Description |
|---|---|
list | Returns a list of available servers in inventory with the ability to filter by location and group. |
show | Returns detailed information about a specific server by its identifier. |
tags.php¶
Tag management module for infrastructure components: adding, removing, clearing, searching, and displaying tag lists for servers and variables.
| Method | Description |
|---|---|
add | Adds a custom tag to a server or component. Supports bulk addition via an ID list. |
clear | Clears all or non-essential tags from a component. For clients, only public tags are available. |
get | Retrieves tags for a component. (Implementation is empty in code, method is in whitelist) |
list | Returns a list of tags for a specific server or component. For clients, there is a restriction by component type (eq, vars). |
remove | Removes a tag by its name for a specific component or removes all specified tags from an ID list. If id_list is passed, the operation is performed in bulk. |
search | Searches for components matching a specific tag and value. |
search_user | Searches for user equipment by tag value. Used in global search form. |
show | Shows possible tags for a component. (Implementation is empty in code, method is in whitelist) |
traffic_plans.php¶
Traffic tariff plan management module: creation, deletion, updating, and retrieval of available plans with filtering by server or location and price conversion.
| Method | Description |
|---|---|
list | Returns a list of suitable traffic tariff plans for the specified server (id) or location. Supports filtering by hardware type and price conversion to EUR/USD. |
vm.php¶
Virtual Machine (VM) management module providing an API for creating, retrieving, deleting, and restoring snapshots, as well as loading statistics.
| Method | Description |
|---|---|
create_snapshot | Initiates the creation of a snapshot for the specified virtual machine. Returns a task key for status tracking. |
get_snapshot | Returns a list of snapshots and settings for the specified virtual machine. |
load_stats | Initiates the loading of resource usage statistics for the virtual machine. |
remove_snapshot | Initiates the deletion of a snapshot with the specified name. |
restore_snapshot | Initiates the restoration of the virtual machine state from a snapshot. |
update_restore_settings | Updates automatic restore and snapshot rotation settings for the specified virtual machine. |
whmcs.php¶
WHMCS integration module for managing customers, invoices, credit, order cancellations, and server billing data.
| Method | Description |
|---|---|
add_contact | Adds an additional contact person to an existing customer in WHMCS. If the type is not specified, a random contact is created. |
apply_credit | Applies the customer's available balance (credit) to pay a specific unpaid invoice. If the payment settles the debt, traffic overage is cleared. |
create_addfunds | Creates an invoice in WHMCS for topping up the customer's balance. If the subscribe option is enabled, automatic renewal is activated. |
delete_cancellation_request | Deletes a cancellation request for a specific server, restoring the invoice or generating a new one. |
delete_contact | Deletes an additional contact associated with a customer in WHMCS. |
download_invoice | Returns a PDF file of the invoice in base64 format. The viewpdf parameter allows displaying the file in an inline viewer or downloading it as an attachment. |
generate_due_invoice | Generates the next invoice for a server in WHMCS, provided the current billing cycle was completed more than 30 days ago and there are no unpaid invoices. |
get_billing_data | Returns detailed information about billing settings and the current status of a specific server (equipment). |
get_cancellation_requests | Returns a list of active service cancellation requests for a specific server or user, with filtering by date, type, and payment status. |
get_client | Returns detailed information about the authenticated client, including data from WHMCS and internal system tags. |
get_clientgroups | Returns a list of available customer groups from WHMCS for the specified location. |
get_contacts | Returns a list of contacts (subcontacts) associated with a customer in WHMCS. If an email is specified, it returns only those contacts that have the corresponding access rights. |
get_invoice | Returns detailed information about an invoice from WHMCS, including status, items, and client data. |
get_invoices | Returns a list of all invoices associated with a customer in WHMCS for the specified billing location. |
get_related_invoices | Returns a list of invoices associated with a specific server or account. |
getcredits | Returns information about available credits on a customer's balance in the specified WHMCS location. |
getpaymentgw | Returns a list of available payment methods (payment gateways) for a specific invoice with processed payment links. |
mass_pay | Allows bulk payment of several invoices simultaneously by creating one combined invoice for payment. |
request_cancellation | Initiates the process of canceling an order or subscription. It checks for active licenses, invoice payment status, and the possibility of an automatic refund depending on the service type and contract terms. |
request_subscription_cancellation | Sends a request to JIRA to cancel a server's bank subscription. It checks for active orders, payment status, and any open tickets regarding this operation. |
reset_password | Allows initiating the password reset process for a client. If no token is provided, a link is sent via email. If the token is valid, the password is changed or a 2FA code is requested. |
transactions | Returns a list of financial transactions for the user associated with an invoice or a specific transaction. |
update_client | Updates customer information in WHMCS, including personal data (name, email, phone), address details, and custom fields. Supports email uniqueness validation and change verification. |
update_contact | Updates additional contact data (first name, last name, email, phone) for an existing customer in WHMCS. |