---
title: DirectAdmin
description: "DirectAdmin appears in RackHelm's control-panel catalogue with the same connection form as the rest of the cPanel family. This article covers the DirectAdmin credentials you need, the RackHelm fields, and two specific problems in this build you should know about…"
url: "https://rackhelm.com/documentation/directadmin-integration/"
updated: "2026-09-24"
category: "Integrations: Control Panels"
---

# DirectAdmin

DirectAdmin appears in RackHelm's control-panel catalogue with the same connection form as the rest of the cPanel family. This article covers the DirectAdmin credentials you need, the RackHelm fields, and two specific problems in this build you should know about before you put a DirectAdmin product on sale.

## Before you start

- The `edit_integrations` permission. See [Roles & Permissions](/docs/roles-and-permissions/).
- A DirectAdmin server reachable from RackHelm on the public internet with a certificate that validates. DirectAdmin normally listens on port **2222**.
- A DirectAdmin login key or API token for a reseller or admin account with permission to create, suspend and delete users.

## Add the connection

1. Open **System → Integrations** and press **Configure** on the **DirectAdmin** card.
2. Set **Base URL** to the DirectAdmin origin including the port, for example `https://da.example.com:2222`.
3. Paste the credential into **API Key / Login Key**.
4. Press **Save**.

![The DirectAdmin panel form with a 2222 port placeholder and an API Key / Login Key field](/wp-content/uploads/rackhelm-docs/integrations-core-panel-edit-directadmin.png)
DirectAdmin's credential field is labelled **API Key / Login Key**.

### Fields

| Field | Rule | Notes |
| --- | --- | --- |
| **Name** | Optional, max 120 characters | Defaults to "DirectAdmin". |
| **Active** | Checkbox | Required for DirectAdmin to appear as an Integration Type. |
| **Base URL** | Required, http/https, publicly resolvable | Placeholder `https://da.example.com:2222`. |
| **API Key / Login Key** | Optional on edit | Blank keeps the stored value. Stored encrypted. |
| **HTTP Timeout (sec)** | Integer, minimum 1 (form minimum 5) | Applies to the **Test API** button. |
| **Verify SSL** | Yes / No | Stored but not read by any driver; TLS is always verified. |
| **cPGuard API Key** | Optional | Relocated into the encrypted credential block on save. |
| **Verify cPGuard SSL Certificate** | Checkbox, on by default | Untick for a self-signed certificate on port 9098. |

## Testing the connection

**Test API** sends `GET {base_url}/api/v2/server` with an `X-API-Key` header. That is the Plesk REST shape, shared by all five cPanel-family panels, and DirectAdmin does not serve that path — so a 404 here is expected and does not tell you anything about your key. A **timeout**, on the other hand, is real: it means port 2222 is not reachable from the RackHelm server.

Re-type the key before testing a saved connection; a blank box sends the literal word `KEEP`.

## Bind a product to DirectAdmin

Edit the product under **Catalogue → Catalogue & Groups**, open the **Provisioning** tab and choose **DirectAdmin**. The form offers **Panel**, **Package / Plan ID**, **Site Template ID**, **Region / Cluster**, **AutoSSL**, **Suspend after (days past due)** (default 1), **Terminate after (days after suspend)** (default 7) and **Provisioning Notes (internal)**.

> **Warning:** DirectAdmin products cannot be saved in this build. Validation requires a field named `package_name`, but the form posts the package under `package_id`, so saving always fails with "The integration.directadmin.package name field is required." and there is no box on the screen that satisfies it. Until this is corrected, use **None / Manual Processing** for DirectAdmin products.

## What the customer sees

A provisioned DirectAdmin item appears under **Sites** in the client portal, but the DirectAdmin site driver returns empty results for every query — databases, email, backups, applications, metrics and SSL — so the page has nothing to display. Only Enhance has a complete site driver in this build.

## Troubleshooting

| Symptom | Cause and fix |
| --- | --- |
| "The integration.directadmin.package name field is required." | A validation rule that no form field satisfies. Set the product's Integration Type to **None / Manual Processing** to save it. |
| Test API returns 404 | Expected — the shared tester requests a Plesk path DirectAdmin does not serve. |
| Test API times out | Port 2222 is closed to the RackHelm server's public IP, or the hostname is wrong. |
| Certificate error on test | TLS is always verified regardless of the **Verify SSL** setting. Install a valid certificate for the hostname. |
| Base URL rejected on save | The host resolves to a private, reserved or unresolvable address. See [Adding a control panel connection](/docs/adding-a-panel-connection/). |
| DirectAdmin missing from the Integration Type dropdown | The connection is saved but not marked **Active**. |
