Zum Inhalt springen
Baebeca Solutions GmbH Kundenportal
Menü

Kunden-API

Einführung

  • Basis-URL
  • Authentifizierung
  • Formate
  • Rate-Limits
  • Fehler

Domains

  • GET Domains auflisten
  • GET Domain abrufen
  • GET Angebot abrufen
  • POST Domains prüfen
  • POST Domains bestellen
  • PUT Nameserver umstellen
  • POST Domain kündigen
  • POST Kündigung zurückziehen
  • GET AuthCode abrufen

Domain-Inhaber

  • GET Domain-Inhaber abrufen
  • PUT Domain-Inhaber ändern

DNS-Einträge

  • GET Einträge auflisten
  • POST Eintrag anlegen
  • DELETE Eintrag löschen

Basis-URL

Alle Endpunkte liegen unter https://kundenportal.baebeca.de/api/v1/; die Version steht im Pfad.

Authentifizierung

Jede Anfrage trägt den Header Authorization: Bearer <API-Key>. Den Key erstellt ein Benutzer unter Mein Konto › Anmeldung und Sicherheit und sieht ihn nur dabei. Er gehört zu genau einem Kunden, beginnt mit dessen Kundennummer (11434_…) und handelt mit genau den Rechten des Benutzers dort: lesen, oder auch ändern.

Der Benutzer widerruft seinen Key selbst, der Hauptbenutzer jeden Key des Kunden; schaltet der Hauptbenutzer API-Keys in den Stammdaten aus, sind alle Keys des Kunden widerrufen.

Formate

Anfrage und Antwort sind JSON in UTF-8 mit Content-Type: application/json; Datumsangaben stehen als YYYY-MM-DD, Preise als Zahl in Euro.

Rate-Limits

  • Höchstens 120 Anfragen je Minute und Key.
  • Mehr als 300 Anfragen in einer Minute oder 10 ungültige Keys in 10 Minuten von einer IP-Adresse sperren sie für 15 Minuten.
  • Eine Antwort 429 nennt im Header Retry-After die Sekunden bis zum nächsten Versuch.

Fehler

Jede Fehlerantwort hat die Form {"error": "<Text>", "fields": {…}}; fields nennt bei 422 je Feld den Fehler.

StatusBedeutung
401Key fehlt, ist ungültig oder gesperrt.
403Der Benutzer darf das nicht, z. B. ändern mit einem nur lesenden Zugang.
404Pfad unbekannt.
409Der Vorgang passt nicht zum Stand.
422Eingabe ungültig; fields nennt die Felder.
429Zu viele Anfragen; Retry-After nennt die Sekunden bis zum nächsten Versuch.
503Ein angebundenes System ist gerade nicht erreichbar oder nicht eingerichtet.

Domains

Domains auflisten

GET /api/v1/domains

Alle Domainverträge des Kunden.

API-Key mit dem Recht lesen.

Antwort 200

Liste von Domainverträgen.

FeldTypBeschreibung
domainstringDie Domain, z. B. kunde-domain.de.
contractstringDie Vertragsnummer, z. B. 11434-7.
statusstringactive, cancelled (gekündigt, läuft bis endDate), ended oder voided (storniert).
startDatestringBeginn des Vertrags, YYYY-MM-DD.
endDatestring|nullEnde des Vertrags, null ohne Kündigung.
registrarStatusstringStatus beim Registrar, leer solange unbekannt.
expiresOnstring|nullAblauf beim Registrar.
nameservers.modestring|nullours (unsere Nameserver, Standard: Zone im Abo Domainreservierung auf marge.baebeca.de, Secondaries ns.baebeca.de und ns2.baebeca.de), external (Nameserver des Kunden) oder server (Zone auf dem Server des Kunden).
nameservers.hostsstring[]Die externen Nameserver.
dnsstringeditable (Einträge per API pflegbar), alias (die Domain übernimmt die Einträge von dnsVia) oder none (die Zone liegt nicht bei uns: Nameserver external oder server, oder die Domain ist noch nicht eingerichtet).
dnsViastring|nullDie Hauptdomain eines Alias.
hintsstring[]Hinweise zum Vertrag, z. B. was noch fehlt.

Beispiel-Request

curl https://kundenportal.baebeca.de/api/v1/domains \
  -H "Authorization: Bearer $API_KEY"

Beispiel-Response

[
  {
    "domain": "kunde-domain.de",
    "contract": "11434-7",
    "status": "active",
    "startDate": "2026-11-05",
    "endDate": null,
    "registrarStatus": "active",
    "expiresOn": "2027-11-05",
    "nameservers": {
      "mode": "ours",
      "hosts": []
    },
    "dns": "editable",
    "dnsVia": null,
    "hints": []
  }
]

Domain abrufen

GET /api/v1/domains/{domain}

Ein Domainvertrag.

API-Key mit dem Recht lesen.

Pfad-Parameter

NameTypPflichtBeschreibung
domainstringjaDie Domain eines Vertrags des Kunden, z. B. kunde-domain.de.

Antwort 200

Der Domainvertrag.

FeldTypBeschreibung
domainstringDie Domain, z. B. kunde-domain.de.
contractstringDie Vertragsnummer, z. B. 11434-7.
statusstringactive, cancelled (gekündigt, läuft bis endDate), ended oder voided (storniert).
startDatestringBeginn des Vertrags, YYYY-MM-DD.
endDatestring|nullEnde des Vertrags, null ohne Kündigung.
registrarStatusstringStatus beim Registrar, leer solange unbekannt.
expiresOnstring|nullAblauf beim Registrar.
nameservers.modestring|nullours (unsere Nameserver, Standard: Zone im Abo Domainreservierung auf marge.baebeca.de, Secondaries ns.baebeca.de und ns2.baebeca.de), external (Nameserver des Kunden) oder server (Zone auf dem Server des Kunden).
nameservers.hostsstring[]Die externen Nameserver.
dnsstringeditable (Einträge per API pflegbar), alias (die Domain übernimmt die Einträge von dnsVia) oder none (die Zone liegt nicht bei uns: Nameserver external oder server, oder die Domain ist noch nicht eingerichtet).
dnsViastring|nullDie Hauptdomain eines Alias.
hintsstring[]Hinweise zum Vertrag, z. B. was noch fehlt.

Beispiel-Request

curl https://kundenportal.baebeca.de/api/v1/domains/kunde-domain.de \
  -H "Authorization: Bearer $API_KEY"

Beispiel-Response

{
  "domain": "kunde-domain.de",
  "contract": "11434-7",
  "status": "active",
  "startDate": "2026-11-05",
  "endDate": null,
  "registrarStatus": "active",
  "expiresOn": "2027-11-05",
  "nameservers": {
    "mode": "ours",
    "hosts": []
  },
  "dns": "editable",
  "dnsVia": null,
  "hints": []
}

Fehler

StatusAnlass
404Die Domain gehört zu keinem Vertrag des Kunden.

Angebot abrufen

GET /api/v1/domains/offer

Was der Kunde bestellen kann: Endungen mit Preis, Endungen auf Anfrage, Laufzeiten, Nameserver-Arten, Webhostings und Server als Ziel.

API-Key mit dem Recht lesen.

Antwort 200

Das Angebot.

FeldTypBeschreibung
openbooleanDie Domainbestellung ist freigeschaltet.
ownerCompletebooleanDer Domain-Inhaber hat Vor- und Nachname.
ownerPhonebooleanDer Domain-Inhaber hat eine Telefonnummer mit Ländervorwahl.
tldsobject[]Je Endung tld, title, price (je Einheit, netto für Unternehmen, brutto für Privatkunden) und unitMonths (1 Monat, 12 Jahr).
requestTldsstring[]Endungen auf Anfrage, nicht über die API bestellbar.
nameserverModesobject[]value und label der Nameserver-Arten: reserve, external, server.
periodsobject[]months, label und discount (Prozent) der Laufzeiten 1, 12 und 24.
legalTypestringb2b oder b2c.
targetsobject[]Webhostings, denen eine Domain zugeordnet werden kann: id, label, kind.
serversobject[]Server des Kunden für nameserverMode server: id, label und die Nameserver, die ihre Zone nennen muss.

Beispiel-Request

curl https://kundenportal.baebeca.de/api/v1/domains/offer \
  -H "Authorization: Bearer $API_KEY"

Beispiel-Response

{
  "open": true,
  "ownerComplete": true,
  "ownerPhone": true,
  "tlds": [
    {
      "tld": "de",
      "title": "Domain .de",
      "price": 2,
      "unitMonths": 1
    }
  ],
  "requestTlds": [
    "co.uk"
  ],
  "nameserverModes": [
    {
      "value": "reserve",
      "label": "Unsere Nameserver"
    }
  ],
  "periods": [
    {
      "months": 12,
      "label": "12 Monate",
      "discount": 5
    }
  ],
  "legalType": "b2b",
  "targets": [
    {
      "id": 42,
      "label": "Webhosting 11434-3 muster.de",
      "kind": "webhosting"
    }
  ],
  "servers": []
}

Domains prüfen

POST /api/v1/domains/check

Form, Verfügbarkeit und Preis von bis zu 20 Domains, mit denselben Regeln wie im Portal.

API-Key mit dem Recht lesen.

Body (JSON)

NameTypPflichtBeschreibung
namesstring[]jaDie Domains, höchstens 20, z. B. ["kunde-domain.de"].

Antwort 200

Je Domain ein Ergebnis in der Reihenfolge der Anfrage.

FeldTypBeschreibung
inputstringDie Eingabe.
namestringDie Domain in ASCII, leer bei Fehler.
unicodestringDie Domain in Unicode.
labelstringDer Name ohne Endung.
tldstringDie erkannte Endung.
errorstringLeer, oder warum die Eingabe keine bestellbare Domain ist.
availableboolean|nulltrue frei, false vergeben (Umzug mit AuthCode möglich), null bei Fehler.
onRequestbooleanEndung nur auf Anfrage, nicht über die API bestellbar.
titlestringDer Artikel der Endung.
pricenumber|nullPreis je Einheit wie im Angebot.
unitMonthsnumber1 für Monat, 12 für Jahr.

Beispiel-Request

curl -X POST https://kundenportal.baebeca.de/api/v1/domains/check \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"names":["kunde-domain.de","kunde-domain.com"]}'

Beispiel-Response

[
  {
    "input": "kunde-domain.de",
    "name": "kunde-domain.de",
    "unicode": "kunde-domain.de",
    "label": "kunde-domain",
    "tld": "de",
    "error": "",
    "available": true,
    "onRequest": false,
    "title": "Domain .de",
    "price": 2,
    "unitMonths": 1
  }
]

Fehler

StatusAnlass
422Keine oder mehr als 20 Domains.
503Der Registrar ist gerade nicht erreichbar oder die Domainbestellung nicht freigeschaltet.

Domains bestellen

POST /api/v1/domains/order

Registriert Domains oder zieht sie mit AuthCode zu uns um, je Domain ein eigener Vertrag. Berechnet wird er erst, wenn der Registrar angenommen hat; lehnt er ab, storniert das Portal den Vertrag.

API-Key mit dem Recht ändern.

Body (JSON)

NameTypPflichtBeschreibung
domainsobject[]jaHöchstens 20: {"name": "kunde-domain.de"} zum Registrieren, {"name": "kunde-domain.de", "transfer": true, "authcode": "…"} zum Umzug.
periodMonthsnumberja1, 12 oder 24; eine Endung im Jahrespreis nur 12 oder 24.
nameserverModestringjareserve (unsere Nameserver, Standard), external oder server.
nameserversstring[]neinBei external zwei bis sechs Nameserver.
serverContractIdnumberneinBei server ein Server aus servers des Angebots.
parentContractIdnumberneinEin Webhosting oder eine KI-Website aus targets des Angebots; die Domain wird Alias ihres Abonnements auf unseren Nameservern.
acceptTermsbooleanjaMuss true sein: die AGB sind akzeptiert.
immediateStartbooleanneinPrivatkunden: true, der Beginn vor Ablauf der Widerrufsfrist ist verlangt.

Antwort 200

Alle Domainverträge des Kunden, mit den neuen.

FeldTypBeschreibung
domainstringDie Domain, z. B. kunde-domain.de.
contractstringDie Vertragsnummer, z. B. 11434-7.
statusstringactive, cancelled (gekündigt, läuft bis endDate), ended oder voided (storniert).
startDatestringBeginn des Vertrags, YYYY-MM-DD.
endDatestring|nullEnde des Vertrags, null ohne Kündigung.
registrarStatusstringStatus beim Registrar, leer solange unbekannt.
expiresOnstring|nullAblauf beim Registrar.
nameservers.modestring|nullours (unsere Nameserver, Standard: Zone im Abo Domainreservierung auf marge.baebeca.de, Secondaries ns.baebeca.de und ns2.baebeca.de), external (Nameserver des Kunden) oder server (Zone auf dem Server des Kunden).
nameservers.hostsstring[]Die externen Nameserver.
dnsstringeditable (Einträge per API pflegbar), alias (die Domain übernimmt die Einträge von dnsVia) oder none (die Zone liegt nicht bei uns: Nameserver external oder server, oder die Domain ist noch nicht eingerichtet).
dnsViastring|nullDie Hauptdomain eines Alias.
hintsstring[]Hinweise zum Vertrag, z. B. was noch fehlt.

Beispiel-Request

curl -X POST https://kundenportal.baebeca.de/api/v1/domains/order \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"domains":[{"name":"kunde-domain.de"}],"periodMonths":12,"nameserverMode":"reserve","acceptTerms":true}'

Beispiel-Response

[
  {
    "domain": "kunde-domain.de",
    "contract": "11434-7",
    "status": "active",
    "startDate": "2026-11-05",
    "endDate": null,
    "registrarStatus": "active",
    "expiresOn": "2027-11-05",
    "nameservers": {
      "mode": "ours",
      "hosts": []
    },
    "dns": "editable",
    "dnsVia": null,
    "hints": []
  }
]

Fehler

StatusAnlass
403Der Benutzer darf nicht bestellen.
409Das Kundenkonto ist gesperrt.
422Eine Angabe fehlt oder passt nicht, fields nennt sie: z. B. Domain vergeben ohne AuthCode, Endung nur auf Anfrage, Webhosting kein gültiges Ziel, als Domain-Reseller eine andere Laufzeit als 12 Monate.
503Die Domainbestellung ist nicht freigeschaltet oder der Registrar nicht erreichbar.

Nameserver umstellen

PUT /api/v1/domains/{domain}/nameservers

Stellt die Domain auf unsere Nameserver (ours) oder externe Nameserver um; die Umstellung läuft einige Minuten.

API-Key mit dem Recht ändern.

Pfad-Parameter

NameTypPflichtBeschreibung
domainstringjaDie Domain eines Vertrags des Kunden, z. B. kunde-domain.de.

Body (JSON)

NameTypPflichtBeschreibung
modestringjaours oder external.
nameserversstring[]neinBei external zwei bis sechs Nameserver, z. B. ["ns1.anderer-provider.de", "ns2.anderer-provider.de"].

Antwort 200

Der Domainvertrag.

FeldTypBeschreibung
domainstringDie Domain, z. B. kunde-domain.de.
contractstringDie Vertragsnummer, z. B. 11434-7.
statusstringactive, cancelled (gekündigt, läuft bis endDate), ended oder voided (storniert).
startDatestringBeginn des Vertrags, YYYY-MM-DD.
endDatestring|nullEnde des Vertrags, null ohne Kündigung.
registrarStatusstringStatus beim Registrar, leer solange unbekannt.
expiresOnstring|nullAblauf beim Registrar.
nameservers.modestring|nullours (unsere Nameserver, Standard: Zone im Abo Domainreservierung auf marge.baebeca.de, Secondaries ns.baebeca.de und ns2.baebeca.de), external (Nameserver des Kunden) oder server (Zone auf dem Server des Kunden).
nameservers.hostsstring[]Die externen Nameserver.
dnsstringeditable (Einträge per API pflegbar), alias (die Domain übernimmt die Einträge von dnsVia) oder none (die Zone liegt nicht bei uns: Nameserver external oder server, oder die Domain ist noch nicht eingerichtet).
dnsViastring|nullDie Hauptdomain eines Alias.
hintsstring[]Hinweise zum Vertrag, z. B. was noch fehlt.

Beispiel-Request

curl -X PUT https://kundenportal.baebeca.de/api/v1/domains/kunde-domain.de/nameservers \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"mode":"ours"}'

Beispiel-Response

{
  "domain": "kunde-domain.de",
  "contract": "11434-7",
  "status": "active",
  "startDate": "2026-11-05",
  "endDate": null,
  "registrarStatus": "active",
  "expiresOn": "2027-11-05",
  "nameservers": {
    "mode": "ours",
    "hosts": []
  },
  "dns": "editable",
  "dnsVia": null,
  "hints": []
}

Fehler

StatusAnlass
404Die Domain gehört zu keinem Vertrag des Kunden.
409Das Kundenkonto ist gesperrt, ein Auftrag des Vertrags läuft noch, die Domain läuft schon über unsere Nameserver, oder ihre Nameserver lassen sich nicht umstellen (Alias eines Webhostings, eigener Server, beendet).
422mode oder nameservers ungültig.

Domain kündigen

POST /api/v1/domains/{domain}/cancel

Kündigt zum nächstmöglichen Termin; danach steht der AuthCode bereit. Ein gesperrter Vertrag oder ein gesperrtes Kundenkonto lässt sich kündigen.

API-Key mit dem Recht ändern.

Pfad-Parameter

NameTypPflichtBeschreibung
domainstringjaDie Domain eines Vertrags des Kunden, z. B. kunde-domain.de.

Antwort 200

Der Domainvertrag.

FeldTypBeschreibung
domainstringDie Domain, z. B. kunde-domain.de.
contractstringDie Vertragsnummer, z. B. 11434-7.
statusstringactive, cancelled (gekündigt, läuft bis endDate), ended oder voided (storniert).
startDatestringBeginn des Vertrags, YYYY-MM-DD.
endDatestring|nullEnde des Vertrags, null ohne Kündigung.
registrarStatusstringStatus beim Registrar, leer solange unbekannt.
expiresOnstring|nullAblauf beim Registrar.
nameservers.modestring|nullours (unsere Nameserver, Standard: Zone im Abo Domainreservierung auf marge.baebeca.de, Secondaries ns.baebeca.de und ns2.baebeca.de), external (Nameserver des Kunden) oder server (Zone auf dem Server des Kunden).
nameservers.hostsstring[]Die externen Nameserver.
dnsstringeditable (Einträge per API pflegbar), alias (die Domain übernimmt die Einträge von dnsVia) oder none (die Zone liegt nicht bei uns: Nameserver external oder server, oder die Domain ist noch nicht eingerichtet).
dnsViastring|nullDie Hauptdomain eines Alias.
hintsstring[]Hinweise zum Vertrag, z. B. was noch fehlt.

Beispiel-Request

curl -X POST https://kundenportal.baebeca.de/api/v1/domains/kunde-domain.de/cancel \
  -H "Authorization: Bearer $API_KEY"

Beispiel-Response

{
  "domain": "kunde-domain.de",
  "contract": "11434-7",
  "status": "cancelled",
  "startDate": "2026-11-05",
  "endDate": "2027-11-04",
  "registrarStatus": "active",
  "expiresOn": "2027-11-05",
  "nameservers": {
    "mode": "ours",
    "hosts": []
  },
  "dns": "editable",
  "dnsVia": null,
  "hints": []
}

Fehler

StatusAnlass
404Die Domain gehört zu keinem Vertrag des Kunden.
403Der Benutzer darf nicht kündigen.
409Der Vertrag ist nicht aktiv; die Domain gehört zum Preis 0 zu einem Webhosting und endet mit ihm; oder der Umzug zu uns läuft noch.

Kündigung zurückziehen

POST /api/v1/domains/{domain}/revoke

Zieht die Kündigung vor dem Vertragsende zurück.

API-Key mit dem Recht ändern.

Pfad-Parameter

NameTypPflichtBeschreibung
domainstringjaDie Domain eines Vertrags des Kunden, z. B. kunde-domain.de.

Antwort 200

Der Domainvertrag.

FeldTypBeschreibung
domainstringDie Domain, z. B. kunde-domain.de.
contractstringDie Vertragsnummer, z. B. 11434-7.
statusstringactive, cancelled (gekündigt, läuft bis endDate), ended oder voided (storniert).
startDatestringBeginn des Vertrags, YYYY-MM-DD.
endDatestring|nullEnde des Vertrags, null ohne Kündigung.
registrarStatusstringStatus beim Registrar, leer solange unbekannt.
expiresOnstring|nullAblauf beim Registrar.
nameservers.modestring|nullours (unsere Nameserver, Standard: Zone im Abo Domainreservierung auf marge.baebeca.de, Secondaries ns.baebeca.de und ns2.baebeca.de), external (Nameserver des Kunden) oder server (Zone auf dem Server des Kunden).
nameservers.hostsstring[]Die externen Nameserver.
dnsstringeditable (Einträge per API pflegbar), alias (die Domain übernimmt die Einträge von dnsVia) oder none (die Zone liegt nicht bei uns: Nameserver external oder server, oder die Domain ist noch nicht eingerichtet).
dnsViastring|nullDie Hauptdomain eines Alias.
hintsstring[]Hinweise zum Vertrag, z. B. was noch fehlt.

Beispiel-Request

curl -X POST https://kundenportal.baebeca.de/api/v1/domains/kunde-domain.de/revoke \
  -H "Authorization: Bearer $API_KEY"

Beispiel-Response

{
  "domain": "kunde-domain.de",
  "contract": "11434-7",
  "status": "active",
  "startDate": "2026-11-05",
  "endDate": null,
  "registrarStatus": "active",
  "expiresOn": "2027-11-05",
  "nameservers": {
    "mode": "ours",
    "hosts": []
  },
  "dns": "editable",
  "dnsVia": null,
  "hints": []
}

Fehler

StatusAnlass
404Die Domain gehört zu keinem Vertrag des Kunden.
403Der Benutzer darf nicht ändern.
409Es gibt keine Kündigung, die sich zurückziehen lässt, oder der Hauptvertrag ist gekündigt.

AuthCode abrufen

GET /api/v1/domains/{domain}/authcode

Der AuthCode während des Umzugs zu uns und nach der Kündigung, sobald der Registrar ihn geliefert hat.

API-Key mit dem Recht lesen.

Pfad-Parameter

NameTypPflichtBeschreibung
domainstringjaDie Domain eines Vertrags des Kunden, z. B. kunde-domain.de.

Antwort 200

Der AuthCode.

FeldTypBeschreibung
authcodestringDer AuthCode.

Beispiel-Request

curl https://kundenportal.baebeca.de/api/v1/domains/kunde-domain.de/authcode \
  -H "Authorization: Bearer $API_KEY"

Beispiel-Response

{
  "authcode": "Xy7-kP2q-9mZ"
}

Fehler

StatusAnlass
404Die Domain gehört zu keinem Vertrag des Kunden.
409Es gibt gerade keinen AuthCode.

Domain-Inhaber

Domain-Inhaber abrufen

GET /api/v1/domain-owner

Der Domain-Inhaber des Kunden, gültig für alle seine Domains.

API-Key mit dem Recht lesen.

Antwort 200

Der Domain-Inhaber, dazu phoneNotice (Hinweis zur Telefonnummer, sonst leer), updatedAt und updatedBy.

FeldTypBeschreibung
typestringORG für Firma, PERS für Person; folgt fest dem Kundenstatus.
organisationstringFirmenname, Pflicht bei ORG, höchstens 100 Zeichen.
firstNamestringVorname, höchstens 60 Zeichen.
lastNamestringNachname, höchstens 60 Zeichen.
streetstringStraße und Hausnummer.
zipstringPLZ.
citystringOrt.
countrystringLand, zwei Buchstaben, z. B. DE.
emailstringE-Mail-Adresse.
phonestringTelefonnummer mit Ländervorwahl, z. B. +49 2261 123456.
protectionbooleanWhois-Datenschutz, an ohne Angabe.

Beispiel-Request

curl https://kundenportal.baebeca.de/api/v1/domain-owner \
  -H "Authorization: Bearer $API_KEY"

Beispiel-Response

{
  "type": "ORG",
  "organisation": "Muster GmbH",
  "firstName": "Max",
  "lastName": "Muster",
  "street": "Musterstraße 1",
  "zip": "51647",
  "city": "Gummersbach",
  "country": "DE",
  "email": "domains@kunde-domain.de",
  "phone": "+49 2261123456",
  "protection": true
}

Domain-Inhaber ändern

PUT /api/v1/domain-owner

Ändert den Domain-Inhaber mit denselben Regeln wie Stammdaten › Domain-Inhaber; das Portal schreibt ihn danach zum Registrar.

API-Key mit dem Recht ändern.

Body (JSON)

NameTypPflichtBeschreibung
typestringjaORG für Firma, PERS für Person; folgt fest dem Kundenstatus.
organisationstringneinFirmenname, Pflicht bei ORG, höchstens 100 Zeichen.
firstNamestringjaVorname, höchstens 60 Zeichen.
lastNamestringjaNachname, höchstens 60 Zeichen.
streetstringjaStraße und Hausnummer.
zipstringjaPLZ.
citystringjaOrt.
countrystringjaLand, zwei Buchstaben, z. B. DE.
emailstringjaE-Mail-Adresse.
phonestringjaTelefonnummer mit Ländervorwahl, z. B. +49 2261 123456.
protectionbooleanneinWhois-Datenschutz, an ohne Angabe.

Antwort 200

Der gespeicherte Domain-Inhaber.

FeldTypBeschreibung
typestringORG für Firma, PERS für Person; folgt fest dem Kundenstatus.
organisationstringFirmenname, Pflicht bei ORG, höchstens 100 Zeichen.
firstNamestringVorname, höchstens 60 Zeichen.
lastNamestringNachname, höchstens 60 Zeichen.
streetstringStraße und Hausnummer.
zipstringPLZ.
citystringOrt.
countrystringLand, zwei Buchstaben, z. B. DE.
emailstringE-Mail-Adresse.
phonestringTelefonnummer mit Ländervorwahl, z. B. +49 2261 123456.
protectionbooleanWhois-Datenschutz, an ohne Angabe.

Beispiel-Request

curl -X PUT https://kundenportal.baebeca.de/api/v1/domain-owner \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"type":"ORG","organisation":"Muster GmbH","firstName":"Max","lastName":"Muster","street":"Musterstraße 1","zip":"51647","city":"Gummersbach","country":"DE","email":"domains@kunde-domain.de","phone":"+49 2261123456","protection":true}'

Beispiel-Response

{
  "type": "ORG",
  "organisation": "Muster GmbH",
  "firstName": "Max",
  "lastName": "Muster",
  "street": "Musterstraße 1",
  "zip": "51647",
  "city": "Gummersbach",
  "country": "DE",
  "email": "domains@kunde-domain.de",
  "phone": "+49 2261123456",
  "protection": true
}

Fehler

StatusAnlass
403Der Benutzer darf nicht ändern.
422Eine Angabe fehlt oder passt nicht, fields nennt sie, z. B. Telefonnummer ohne Ländervorwahl.

DNS-Einträge

Nur für Domains mit dns: editable; bei dns: none oder alias antworten die Endpunkte 409. Liegt die Domain in einem Webhosting, als Hauptdomain oder weitere Website, ändern die Endpunkte die Zone dieses Webhostings. Jede Änderung steht im Änderungsprotokoll des Kunden.

Einträge auflisten

GET /api/v1/domains/{domain}/dns

Alle Einträge der Zone.

API-Key mit dem Recht lesen.

Pfad-Parameter

NameTypPflichtBeschreibung
domainstringjaDie Domain eines Vertrags des Kunden, z. B. kunde-domain.de.

Antwort 200

Liste der Einträge.

FeldTypBeschreibung
idnumberKennung des Eintrags, für das Löschen.
typestringA, AAAA, CNAME, MX, TXT, NS, SOA.
hoststringRelativ zur Domain, leer für die Domain selbst.
valuestringWert des Eintrags.
prioritynumber|nullPriorität bei MX, sonst null.
editablebooleantrue: per API löschbar; NS und SOA pflegt das Portal.

Beispiel-Request

curl https://kundenportal.baebeca.de/api/v1/domains/kunde-domain.de/dns \
  -H "Authorization: Bearer $API_KEY"

Beispiel-Response

[
  {
    "id": 1,
    "type": "NS",
    "host": "",
    "value": "ns.baebeca.de.",
    "priority": null,
    "editable": false
  },
  {
    "id": 2,
    "type": "A",
    "host": "www",
    "value": "203.0.113.10",
    "priority": null,
    "editable": true
  }
]

Fehler

StatusAnlass
404Die Domain gehört zu keinem Vertrag des Kunden.
409Die Einträge liegen nicht bei uns, oder die Domain ist ein Alias.
503Die DNS-Pflege ist gerade nicht eingerichtet.

Eintrag anlegen

POST /api/v1/domains/{domain}/dns

Legt einen Eintrag an. Erlaubt sind A, AAAA, CNAME, MX und TXT; ein CNAME auf die Domain selbst nicht.

API-Key mit dem Recht ändern.

Pfad-Parameter

NameTypPflichtBeschreibung
domainstringjaDie Domain eines Vertrags des Kunden, z. B. kunde-domain.de.

Body (JSON)

NameTypPflichtBeschreibung
typestringjaA, AAAA, CNAME, MX oder TXT.
hoststringneinRelativ zur Domain; leer oder @ für die Domain selbst, * für einen Wildcard-Eintrag.
valuestringjaWert des Eintrags.
prioritynumberneinBei MX die Priorität, 0 bis 65535.

Antwort 200

Alle Einträge der Zone.

FeldTypBeschreibung
idnumberKennung des Eintrags, für das Löschen.
typestringA, AAAA, CNAME, MX, TXT, NS, SOA.
hoststringRelativ zur Domain, leer für die Domain selbst.
valuestringWert des Eintrags.
prioritynumber|nullPriorität bei MX, sonst null.
editablebooleantrue: per API löschbar; NS und SOA pflegt das Portal.

Beispiel-Request

curl -X POST https://kundenportal.baebeca.de/api/v1/domains/kunde-domain.de/dns \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"type":"A","host":"www","value":"203.0.113.10"}'

Beispiel-Response

[
  {
    "id": 1,
    "type": "NS",
    "host": "",
    "value": "ns.baebeca.de.",
    "priority": null,
    "editable": false
  },
  {
    "id": 2,
    "type": "A",
    "host": "www",
    "value": "203.0.113.10",
    "priority": null,
    "editable": true
  }
]

Fehler

StatusAnlass
404Die Domain gehört zu keinem Vertrag des Kunden.
403Der Benutzer darf nicht ändern.
409Das Kundenkonto ist gesperrt, die Einträge liegen nicht bei uns, oder die Domain ist ein Alias.
422Typ, Host oder Wert ungültig; fields nennt das Feld.

Eintrag löschen

DELETE /api/v1/domains/{domain}/dns/{id}

Löscht einen Eintrag mit editable: true.

API-Key mit dem Recht ändern.

Pfad-Parameter

NameTypPflichtBeschreibung
domainstringjaDie Domain eines Vertrags des Kunden, z. B. kunde-domain.de.
idnumberjaDie Kennung aus der Liste der Einträge.

Antwort 200

Alle Einträge der Zone.

FeldTypBeschreibung
idnumberKennung des Eintrags, für das Löschen.
typestringA, AAAA, CNAME, MX, TXT, NS, SOA.
hoststringRelativ zur Domain, leer für die Domain selbst.
valuestringWert des Eintrags.
prioritynumber|nullPriorität bei MX, sonst null.
editablebooleantrue: per API löschbar; NS und SOA pflegt das Portal.

Beispiel-Request

curl -X DELETE https://kundenportal.baebeca.de/api/v1/domains/kunde-domain.de/dns/2 \
  -H "Authorization: Bearer $API_KEY"

Beispiel-Response

[
  {
    "id": 1,
    "type": "NS",
    "host": "",
    "value": "ns.baebeca.de.",
    "priority": null,
    "editable": false
  }
]

Fehler

StatusAnlass
404Die Domain gehört zu keinem Vertrag des Kunden.
403Der Benutzer darf nicht ändern.
404Den Eintrag gibt es nicht, oder er gehört zur Zone selbst.
409Das Kundenkonto ist gesperrt, die Einträge liegen nicht bei uns, oder die Domain ist ein Alias.

Baebeca® Solutions GmbH

Brink 1 · 51647 Gummersbach
Telefon: 02261-81616-0
24/7-Vertragshotline: 02261-81616-99
E-Mail: support@baebeca.de

Kundenportal

  • Hilfe und Knowledge Base
  • Ratgeber
  • Online bestellen
  • Dateiupload

Informationen

  • AGB
  • Widerrufsbelehrung
  • Datenschutz
  • Impressum

Verträge

  • Verträge hier kündigen
  • Vertrag widerrufen

© Baebeca® Solutions GmbH