DirectAdmin API

DirectAdmin API as documented publicly: 6 operations. Contract generated from the documentation by API Evangelist (2026-10-27); not the provider's own document.

Operations 6

GET /api/db-show/databases GET /api/db-show/databases #
GET /api/session GET /api/session #
GET /libcurl/c/libcurl-errors.html GET /libcurl/c/libcurl-errors.html #
GET /threads/{threadid} GET /threads/{threadId} #
POST /wp-login.php Brute Force Monitoring for xmlrpc.php #
GET /{cmdapilogintest} GET /{cmdApiLoginTest} #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/directadmin:directadmin-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

directadmin-openapi-generated.yml Raw ↑
openapi: 3.1.0
info:
  title: DirectAdmin API
  version: '2026-10-27'
  description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-10-27: 6 operation(s) read from 16 public documentation page(s) (each operation
    names its page in x-source). This is not the provider''s published contract; DirectAdmin has published no machine-readable contract that the
    pipeline could find. Engine: local.'
  x-evidence-tiers:
    code-example: 10
    documentation: -4
    pages-with-code: 15
    pages-read: 16
  x-generated-from: documentation
  x-provenance: generated
  x-authored-by: API Evangelist
  x-generated: '2026-10-27'
  x-generator: generate-contract-from-docs.py
  x-engine: local
  x-sources:
  - https://docs.directadmin.com/developer/api
  - https://docs.directadmin.com/getting-started/installation
  - https://docs.directadmin.com/directadmin/backup-restore-migration
  - https://docs.directadmin.com/developer/api/index.html
  - https://docs.directadmin.com/developer/api/examples.html
  - https://docs.directadmin.com/getting-started/installation/index.html
  - https://docs.directadmin.com/directadmin/backup-restore-migration/index.html
  - https://docs.directadmin.com/directadmin/backup-restore-migration/backup-to-remote.html
  - https://docs.directadmin.com/directadmin/customizing-workflow/index.html
  - https://docs.directadmin.com/directadmin/general-usage/index.html
  - https://docs.directadmin.com/directadmin/general-usage/securing-da-panel.html
  - https://docs.directadmin.com/directadmin/general-usage/updating-da.html
  - https://docs.directadmin.com/directadmin/general-usage/licensing.html
  - https://docs.directadmin.com/directadmin/general-usage/scripts.html
  - https://docs.directadmin.com/directadmin/general-usage/directadmin-binary.html
  - https://docs.directadmin.com/directadmin/general-usage/troubleshooting-da-service.html
servers:
- url: https://download.directadmin.com
paths:
  /api/db-show/databases:
    get:
      operationId: get_api_db_show_databases
      tags:
      - Api
      summary: GET /api/db-show/databases
      x-source: https://docs.directadmin.com/developer/api/examples.html
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: curl one-liner Bash PHP Python List all users (legacy API) Bash PHP Python Install a new wordpress Bash PHP Python Add a new
          user (legacy API) Bash PHP Python Discovering an endpoint General info ​ Here are some of the examples on how the API could be queried.
          While over the years directadmin has old and new endpoints, you should always prioritize the new ones. Pririoty list would be the follwoing
  /api/session:
    get:
      operationId: get_api_session
      tags:
      - Api
      summary: GET /api/session
      x-source: https://docs.directadmin.com/developer/api
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: curl tools does it. Login Keys ​ Accessing an API on behalf of some user requires to know user account password and pass it in
          the request. It is not a problem for testing but for production usage it is recommended to generate a login key. Login keys allows user
          to have additional passwords each dedicated for a special purpose. Login key password can be restricted to allow only limited set of
          acti
  /libcurl/c/libcurl-errors.html:
    get:
      operationId: get_libcurl_c_libcurl_errors_html
      tags:
      - Libcurl
      summary: GET /libcurl/c/libcurl-errors.html
      x-source: https://docs.directadmin.com/directadmin/backup-restore-migration
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl: (55) Send failure: Connection reset by peer ​ This error means the remote FTP server disconnected from the sending client.
          The best way to narrow down the cause is to login to that remote FTP server and check its logs. Some reported causes of this error:
          FTP User Over Quota Firewall is not set up correctly, ensure remote 20, 21, and 35000-35999 are open. Or test by shutting off the firewall '
  /threads/{threadid}:
    get:
      operationId: get_threads_threadid
      tags:
      - Threads
      summary: GET /threads/{threadId}
      x-source: https://docs.directadmin.com/directadmin/backup-restore-migration/backup-to-remote.html
      parameters:
      - name: threadid
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl = /usr/local/bin/curl \n result = ` $CURL --interface $ETH -T $ftp_local_file -u $ftp_username : $ftp_password_esc_double_quote\
          \ ftp:// $ftp_ip$ftp_path$ftp_remote_file 2>&1 ` \n if grep -q -o -i \"curl: (67) Access denied: 530.* $$ \" <<< \" $result \" ; then\
          \ \n echo \"FTP access denied. Please check your login details.\" \n exit 1 \n fi \n if grep -q -o -i \"curl: (6) Couldn't resolve host.*\
          \ $$ \" <<< \" $"
  /wp-login.php:
    post:
      operationId: post_wp_login_php
      tags:
      - Wp Login
      summary: Brute Force Monitoring for xmlrpc.php
      x-source: https://docs.directadmin.com/directadmin/general-usage/securing-da-panel.html
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /{cmdapilogintest}:
    get:
      operationId: get_cmdapilogintest
      tags:
      - Api
      summary: GET /{cmdApiLoginTest}
      x-source: https://docs.directadmin.com/directadmin/general-usage/index.html
      parameters:
      - name: cmdapilogintest
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl --config ${CONFIG} --silent --show-error http://127.0.0.1:2222/CMD_API_LOGIN_TEST\" \n if [ \"${DEBUG}\" -ge 2 ]; then\
          \ \n eval $RUN \n else "
tags:
- name: Api
- name: Libcurl
- name: Threads
- name: Wp Login