Skip to main content

Integrations

ISPmanager Integration

NexDNS is fully compatible with the DNSmanager API, so you can connect NexDNS to ISPmanager as a secondary (slave) DNS server. ISPmanager stays the primary and, once you allow zone transfer (AXFR) from the NexDNS source IP, transfers each zone to NexDNS, so you keep managing records in ISPmanager. The full DNSmanager domain and record API is also available for direct use through a single compatibility endpoint.

Endpoint

All compatibility API calls are routed through a single endpoint:

https://api.nexdns.tech/dnsmgr

Authentication

The compatibility API authenticates with a dedicated integration login and secret that you generate in NexDNS under Account → Integrations (not your account password). ISPmanager sends them on every request; you can also open a session manually with the func=auth function and reuse the returned token.

curl -X POST "https://api.nexdns.tech/dnsmgr?func=auth" \
    -d "username=your_integration_login" \
    -d "password=your_integration_secret"

Successful response (XML):

<doc><auth id="SESSION_ID"/></doc>

You can request JSON output by adding out=json to any request. Repeated failed logins are temporarily throttled.

Supported Functions

The compatibility API dispatches operations based on the func query parameter:

Function Description
auth Open a session with the integration login and secret
domain List all domains for the authenticated account
domain.edit Create or update a domain (with sok=ok); when ISPmanager sends its master IP, NexDNS creates a secondary zone that transfers from ISPmanager. Without sok, returns domain info
domain.delete Delete a domain (pass elid=domain.name)
domain.refresh Force a secondary zone to re-transfer from ISPmanager immediately (pass elid=domain.name). ISPmanager calls this after records change
domain.record List records for a domain (pass elid=domain.name)
domain.record.edit Create or update a record (with sok=ok)
domain.record.delete Delete a record (pass elid and rkey)
dnsparam Get the nameserver configuration for your account
slaveserver List the nameservers assigned to your zones

Connecting ISPmanager to NexDNS

To connect ISPmanager to NexDNS:

  1. Register a NexDNS account at nexdns.tech and choose a plan that includes ISPmanager integration and secondary DNS.
  2. Set up the integration in NexDNS: open Account → Integrations, click Generate secret, then turn on ISPmanager access (off by default). The channel bypasses two-factor authentication, so optionally pin it to a fixed IP address.
  3. In ISPmanager, add NexDNS as a secondary (slave) DNS server for your domains (Domain names → secondary name servers).
  4. Enter connection details:
    • URL: https://api.nexdns.tech/dnsmgr
    • Login: your integration login from Account → Integrations
    • Secret: your integration secret
  5. Allow zone transfer (AXFR): on your primary DNS server, permit zone transfer from the NexDNS source IP shown in Account → Integrations. Without this, ISPmanager creates the secondary zone but it stays empty.

ISPmanager stays the primary and you keep managing records there; NexDNS pulls each zone as a secondary over AXFR. One-time step on your side: on your primary DNS server, allow zone transfer (AXFR) from the NexDNS source IP shown in Account → Integrations – otherwise zones appear empty. Authentication uses the integration login and secret from Account → Integrations; make sure ISPmanager access is enabled and your plan includes secondary DNS.

Record Parameters

When creating or updating records via domain.record.edit, the following parameters are used depending on the record type:

Type Parameters
A / AAAA name, ip (or value), ttl
CNAME / NS / PTR name, value, ttl
MX name, value, priority, ttl
SRV name, value, priority, weight, port, ttl
TXT name, value, ttl
CAA name, caa_value (or value), flag, tag, ttl

For updates, pass rkey with the existing record ID. Omit rkey (or send empty) to create a new record.

Output Format

By default, all responses are returned as XML. Add out=json to any request to receive JSON responses instead.

API Key Management

API keys are used to authenticate requests to the NexDNS REST API. Each key is scoped with specific permissions and can optionally have an expiration date.

Creating an API Key

You can create API keys in two ways:

  • Panel UI: Go to Settings > API Keys and click "Create API Key"
  • REST API: POST /v1/account/api-keys (requires an existing API key)

Key Format

API keys follow the format nxd_ followed by 40 random alphanumeric characters. The full key is shown only once at creation time. NexDNS stores only a hashed form of the key, so it cannot be recovered if lost.

nxd_aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789abcd

Permissions

Each API key must be assigned at least one permission. Available permissions:

Permission Grants access to
zones.read List zones, view zone details, export zones, view DNSSEC status
zones.write Create zones, delete zones, enable/disable DNSSEC
records.read List records, view individual records
records.write Create, update, and delete records
webhooks.read List and view webhooks
webhooks.write Create, update, and delete webhooks

We recommend granting each key only the permissions it needs.

Expiration

API keys can optionally have an expiration date. When set, the key will stop working after the specified date (checked at midnight UTC). Expired keys return a 401 Unauthorized response.

Revoking a Key

You can revoke any API key at any time from the Settings page or via the API. Revocation is immediate and permanent – the key is deleted, not disabled.

curl -X DELETE "https://api.nexdns.tech/v1/account/api-keys/{id}" \
    -H "Authorization: Bearer nxd_your_api_key"

Plan Requirements

API access requires a subscription plan that includes the api_access feature.

Rate Limiting

The NexDNS API enforces rate limits to ensure fair usage and service stability. Rate limits are applied per user account (not per API key), so using multiple API keys does not increase your limit.

Limits

Scope Limit Window Policy
API requests 60 1 minute Sliding window

Unauthenticated requests (or requests with invalid keys) are rate-limited by IP address.

Rate Limit Headers

Every API response includes headers indicating your current rate limit status:

Header Description
X-RateLimit-Limit Maximum number of requests allowed in the window
X-RateLimit-Remaining Number of requests remaining in the current window
X-RateLimit-Reset Unix timestamp when the rate limit window resets
Retry-After Seconds to wait before retrying (only present on 429 responses)

Exceeding the Limit

When the rate limit is exceeded, the API returns 429 Too Many Requests:

{
    "status": "error",
    "error": {
        "code": "rate_limit_exceeded",
        "message": "Too many requests. Please retry after {timestamp}."
    }
}

We use cookies to ensure the proper functioning of this website and to improve your experience. Some cookies are strictly necessary for the site to operate, while others are optional.

You can accept all cookies or limit your choice to strictly necessary ones. For details, see our Privacy Policy and Cookie Policy.