Skip to content

Domains & DNS

Domain management

List domains

GET /api/v1/domains?skip=0&limit=50&customer_id=1

Create domain (with Auto-Detect)

POST /api/v1/domains
{
  "name": "example.com",
  "customer_id": 1,
  "dns_provider_id": null  // Optional — wird auto-detected
}

When creating, the DNS provider is automatically detected via NS records. If a suitable provider is deposited with the customer, it is automatically assigned.

DNS status Lifecycle

Domain erstellt
    ├── Provider zugewiesen → "managed"
    ├── Provider erkannt, keine Credentials → "credentials_missing"
    └── Kein Provider erkannt → "manual"
    Background-Worker prueft alle 5 Min
    A-Record zeigt auf xynap IP → "verified" + status="active"
Status Importance
manual No provider, manual DNS setup noetig
managed Provider assigned, DNS is automatically managed
credentials_missing Provider recognized but no API-Credentials
pending_verification DNA is denounced
verified DNS correct, domain active
error DNS errors

Retrieve DNS Instructions

GET /api/v1/domains/{id}/dns-instructions

Shows which DNS records must be set and prueft live the status:

{
  "domain": "example.com",
  "dns_status": "manual",
  "detected_provider": "hetzner",
  "required_records": [
    {"type": "A", "name": "@", "content": "46.4.96.105", "status": "ok"},
    {"type": "AAAA", "name": "@", "content": "2a01:4f8:140:829d::2", "status": "unknown"},
    {"type": "A", "name": "www", "content": "46.4.96.105", "status": "missing"}
  ],
  "verification_status": "1 von 3 Records korrekt"
}

Verify DNS

POST /api/v1/domains/{id}/verify

Prueft the A record and setsdns_statustoverifiedif correct.

DNS records

# Records einer Domain
GET /api/v1/domains/{id}/records

# Record erstellen
POST /api/v1/domains/{id}/records
{"type": "A", "name": "sub", "content": "1.2.3.4", "ttl": 3600}

# Record aktualisieren
PUT /api/v1/domains/{id}/records/{record_id}
{"content": "5.6.7.8"}

# Record loeschen (nur nicht-managed)
DELETE /api/v1/domains/{id}/records/{record_id}

DNS provider

Provider types

Type API adapter Credentials
hetzner Yes api_token
ionos Yes prefix,secret
cloudflare Detection -
inwx Detection -
manual No -

Services

# Provider auflisten
GET /api/v1/dns-providers?customer_id=1

# Provider erstellen
POST /api/v1/dns-providers
{
  "customer_id": 1,
  "name": "Hetzner Hauptaccount",
  "type": "hetzner",
  "credentials": {"api_token": "xxx"},
  "is_default": true
}

# Verbindung testen
POST /api/v1/dns-providers/{id}/test

# Zonen abrufen
GET /api/v1/dns-providers/{id}/zones

Auto-Detect

The platform detects 10 DNS providers using the name server:

Hetzner, IONOS, Cloudflare, INWX, Strato, Netcup, GoDaddy, Namecheap, OVH, Gandi

When detecting an understated provider (Hetzner/IONOS) and existing credentials the domain is automatically marked asmanaged.