Module and release scope
This guide covers KeyHelp Hosting Control Panel 1.0.0, Extension API 1, from the reviewed product source. Its declared core range is 1.3.6–1.3.99. Use the matching released core and signed provider package; a version label alone does not install the required contracts. Source availability does not mean the module is bundled in every currently downloadable product, installed on your server, enabled or certified for your merchant/server account. Nothing in this guide enables a provider or changes your existing connections.
Open System → Hosting servers (newer source may group these as Payments, Domain services or Hosting services). Install the reviewed signed package through Modules & addons or the integration workspace's Install tab, enable the module separately, add an account/connection, save its own credentials, run its stated Test and explicitly enable the connection. Saving or retesting disables the connection until you enable it again. Start with the provider's test environment where supported; otherwise use an isolated account or server.
Exact connection fields
These are the fields declared by this module. Secret values are entered privately and encrypted by the application. Defaults are configuration hints, not approved live merchant settings. Internal fields are populated by the module and are not operator-editable.
| Key / label | Type | Required | Default / guidance |
|---|---|---|---|
host — Panel hostname or IP |
text | Yes | Hostname or IP only. HTTPS and certificate verification are required. |
port — HTTPS port |
integer | No | Default: 443 |
api_key — API key |
secret | Yes | Create an IP restricted key in KeyHelp Configuration → API. Enable API v2. |
default_nameservers — Default nameservers |
text | No | Comma or space separated hostnames. |
allow_writes — Allow account changes |
boolean | No | Default: false |
automation — Allow automatic provisioning |
boolean | No | Default: false |
allow_automated_suspend — Allow automatic suspension |
boolean | No | Default: false |
allow_automated_unsuspend — Allow automatic unsuspension |
boolean | No | Default: false |
allow_automated_terminate — Allow automatic termination |
boolean | No | Default: false |
API 1 server module using the current KeyHelp REST API v2 (official schemas 2.14/2.15). Installed disabled, without connection details, accounts or business configuration. The obsolete v1 API is not used.
Configure
- In KeyHelp go to Configuration → API, enable the API and create an IP-restricted API key for the billing server. Allow reading/managing clients, domains and hosting plans. Do not enable password hash export; this module does not need it.
- Enable this module in Hosting servers → Available, then create a connection using the plain panel hostname or IP, HTTPS port (normally 443) and API key. The fixed API path is
/api/v2. A valid TLS certificate is required. Authentication uses theX-API-Keyheader. - Create hosting plans in KeyHelp. Run the read-only connection test and explicitly refresh packages. Select the exact numeric hosting plan ID, shown by the API, for each product.
- Configure default nameservers if required. Enable account changes only when ready, then independently enable each desired automatic lifecycle action. All switches default to off.
Supported lifecycle
Create a shared hosting client with the reserved username/password and real customer email; create its primary domain; synchronize; suspend; unsuspend; apply another hosting plan; delete the client and its owned resources. Login credentials are not automatically emailed by the API. Reseller, VPS and dedicated server provisioning are not advertised.
KeyHelp's id_hosting_plan field is write-only: the module never invents a returned plan association. It proves the requested plan by comparing the client's returned resource limits, permissions, PHP and PHP-FPM settings with the selected current plan. Missing or mismatched limits prevent confirmation. KeyHelp returns PHP environment variables only on plans, so empty values are ignored in client proof; plans with nonempty PHP environment variables are rejected before create/package-change submission because the client API cannot verify them. Changes made directly to the plan may therefore require updating the client to that plan again before synchronization succeeds.
KeyHelp exposes account/domain statuses: 1 is okay; 0, 2, 3 (new configuration) and 4 (configuration update) remain pending. HTTP 202 also remains pending. Both the exact client and its owned domain must become okay before activation is confirmed. Creating a client and domain requires two API writes; partial creation is retained for billing review, not repeated automatically.
The connection test reads only; no customer is created. No webhook is needed. Use a separate test server for write acceptance testing. After a timeout, API reload error or partial create, inspect the client/domain and synchronize the reserved username. Writes are never retried automatically, even though the vendor describes transient errors during webserver reloads.
Panel account confirmation does not certify public DNS, SSL issuance or website reachability. HTTPS verification is mandatory, redirects/compression are refused, replies are limited to 2 MiB and errors are redacted.
Provider documentation
Termination also requires a fresh API read showing that the exact remote hosting account is suspended. A local billing status alone does not authorize deleting an active remote account.

