Kunden-API
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-Afterdie Sekunden bis zum nächsten Versuch.
Fehler
Jede Fehlerantwort hat die Form {"error": "<Text>", "fields": {…}}; fields nennt bei 422 je Feld den Fehler.
| Status | Bedeutung |
|---|---|
401 | Key fehlt, ist ungültig oder gesperrt. |
403 | Der Benutzer darf das nicht, z. B. ändern mit einem nur lesenden Zugang. |
404 | Pfad unbekannt. |
409 | Der Vorgang passt nicht zum Stand. |
422 | Eingabe ungültig; fields nennt die Felder. |
429 | Zu viele Anfragen; Retry-After nennt die Sekunden bis zum nächsten Versuch. |
503 | Ein 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.
| Feld | Typ | Beschreibung |
|---|---|---|
domain | string | Die Domain, z. B. kunde-domain.de. |
contract | string | Die Vertragsnummer, z. B. 11434-7. |
status | string | active, cancelled (gekündigt, läuft bis endDate), ended oder voided (storniert). |
startDate | string | Beginn des Vertrags, YYYY-MM-DD. |
endDate | string|null | Ende des Vertrags, null ohne Kündigung. |
registrarStatus | string | Status beim Registrar, leer solange unbekannt. |
expiresOn | string|null | Ablauf beim Registrar. |
nameservers.mode | string|null | ours (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.hosts | string[] | Die externen Nameserver. |
dns | string | editable (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). |
dnsVia | string|null | Die Hauptdomain eines Alias. |
hints | string[] | 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
| Name | Typ | Pflicht | Beschreibung |
|---|---|---|---|
domain | string | ja | Die Domain eines Vertrags des Kunden, z. B. kunde-domain.de. |
Antwort 200
Der Domainvertrag.
| Feld | Typ | Beschreibung |
|---|---|---|
domain | string | Die Domain, z. B. kunde-domain.de. |
contract | string | Die Vertragsnummer, z. B. 11434-7. |
status | string | active, cancelled (gekündigt, läuft bis endDate), ended oder voided (storniert). |
startDate | string | Beginn des Vertrags, YYYY-MM-DD. |
endDate | string|null | Ende des Vertrags, null ohne Kündigung. |
registrarStatus | string | Status beim Registrar, leer solange unbekannt. |
expiresOn | string|null | Ablauf beim Registrar. |
nameservers.mode | string|null | ours (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.hosts | string[] | Die externen Nameserver. |
dns | string | editable (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). |
dnsVia | string|null | Die Hauptdomain eines Alias. |
hints | string[] | 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
| Status | Anlass |
|---|---|
404 | Die 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.
| Feld | Typ | Beschreibung |
|---|---|---|
open | boolean | Die Domainbestellung ist freigeschaltet. |
ownerComplete | boolean | Der Domain-Inhaber hat Vor- und Nachname. |
ownerPhone | boolean | Der Domain-Inhaber hat eine Telefonnummer mit Ländervorwahl. |
tlds | object[] | Je Endung tld, title, price (je Einheit, netto für Unternehmen, brutto für Privatkunden) und unitMonths (1 Monat, 12 Jahr). |
requestTlds | string[] | Endungen auf Anfrage, nicht über die API bestellbar. |
nameserverModes | object[] | value und label der Nameserver-Arten: reserve, external, server. |
periods | object[] | months, label und discount (Prozent) der Laufzeiten 1, 12 und 24. |
legalType | string | b2b oder b2c. |
targets | object[] | Webhostings, denen eine Domain zugeordnet werden kann: id, label, kind. |
servers | object[] | 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)
| Name | Typ | Pflicht | Beschreibung |
|---|---|---|---|
names | string[] | ja | Die Domains, höchstens 20, z. B. ["kunde-domain.de"]. |
Antwort 200
Je Domain ein Ergebnis in der Reihenfolge der Anfrage.
| Feld | Typ | Beschreibung |
|---|---|---|
input | string | Die Eingabe. |
name | string | Die Domain in ASCII, leer bei Fehler. |
unicode | string | Die Domain in Unicode. |
label | string | Der Name ohne Endung. |
tld | string | Die erkannte Endung. |
error | string | Leer, oder warum die Eingabe keine bestellbare Domain ist. |
available | boolean|null | true frei, false vergeben (Umzug mit AuthCode möglich), null bei Fehler. |
onRequest | boolean | Endung nur auf Anfrage, nicht über die API bestellbar. |
title | string | Der Artikel der Endung. |
price | number|null | Preis je Einheit wie im Angebot. |
unitMonths | number | 1 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
| Status | Anlass |
|---|---|
422 | Keine oder mehr als 20 Domains. |
503 | Der 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)
| Name | Typ | Pflicht | Beschreibung |
|---|---|---|---|
domains | object[] | ja | Höchstens 20: {"name": "kunde-domain.de"} zum Registrieren, {"name": "kunde-domain.de", "transfer": true, "authcode": "…"} zum Umzug. |
periodMonths | number | ja | 1, 12 oder 24; eine Endung im Jahrespreis nur 12 oder 24. |
nameserverMode | string | ja | reserve (unsere Nameserver, Standard), external oder server. |
nameservers | string[] | nein | Bei external zwei bis sechs Nameserver. |
serverContractId | number | nein | Bei server ein Server aus servers des Angebots. |
parentContractId | number | nein | Ein Webhosting oder eine KI-Website aus targets des Angebots; die Domain wird Alias ihres Abonnements auf unseren Nameservern. |
acceptTerms | boolean | ja | Muss true sein: die AGB sind akzeptiert. |
immediateStart | boolean | nein | Privatkunden: true, der Beginn vor Ablauf der Widerrufsfrist ist verlangt. |
Antwort 200
Alle Domainverträge des Kunden, mit den neuen.
| Feld | Typ | Beschreibung |
|---|---|---|
domain | string | Die Domain, z. B. kunde-domain.de. |
contract | string | Die Vertragsnummer, z. B. 11434-7. |
status | string | active, cancelled (gekündigt, läuft bis endDate), ended oder voided (storniert). |
startDate | string | Beginn des Vertrags, YYYY-MM-DD. |
endDate | string|null | Ende des Vertrags, null ohne Kündigung. |
registrarStatus | string | Status beim Registrar, leer solange unbekannt. |
expiresOn | string|null | Ablauf beim Registrar. |
nameservers.mode | string|null | ours (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.hosts | string[] | Die externen Nameserver. |
dns | string | editable (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). |
dnsVia | string|null | Die Hauptdomain eines Alias. |
hints | string[] | 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
| Status | Anlass |
|---|---|
403 | Der Benutzer darf nicht bestellen. |
409 | Das Kundenkonto ist gesperrt. |
422 | Eine 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. |
503 | Die 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
| Name | Typ | Pflicht | Beschreibung |
|---|---|---|---|
domain | string | ja | Die Domain eines Vertrags des Kunden, z. B. kunde-domain.de. |
Body (JSON)
| Name | Typ | Pflicht | Beschreibung |
|---|---|---|---|
mode | string | ja | ours oder external. |
nameservers | string[] | nein | Bei external zwei bis sechs Nameserver, z. B. ["ns1.anderer-provider.de", "ns2.anderer-provider.de"]. |
Antwort 200
Der Domainvertrag.
| Feld | Typ | Beschreibung |
|---|---|---|
domain | string | Die Domain, z. B. kunde-domain.de. |
contract | string | Die Vertragsnummer, z. B. 11434-7. |
status | string | active, cancelled (gekündigt, läuft bis endDate), ended oder voided (storniert). |
startDate | string | Beginn des Vertrags, YYYY-MM-DD. |
endDate | string|null | Ende des Vertrags, null ohne Kündigung. |
registrarStatus | string | Status beim Registrar, leer solange unbekannt. |
expiresOn | string|null | Ablauf beim Registrar. |
nameservers.mode | string|null | ours (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.hosts | string[] | Die externen Nameserver. |
dns | string | editable (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). |
dnsVia | string|null | Die Hauptdomain eines Alias. |
hints | string[] | 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
| Status | Anlass |
|---|---|
404 | Die Domain gehört zu keinem Vertrag des Kunden. |
409 | Das 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). |
422 | mode 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
| Name | Typ | Pflicht | Beschreibung |
|---|---|---|---|
domain | string | ja | Die Domain eines Vertrags des Kunden, z. B. kunde-domain.de. |
Antwort 200
Der Domainvertrag.
| Feld | Typ | Beschreibung |
|---|---|---|
domain | string | Die Domain, z. B. kunde-domain.de. |
contract | string | Die Vertragsnummer, z. B. 11434-7. |
status | string | active, cancelled (gekündigt, läuft bis endDate), ended oder voided (storniert). |
startDate | string | Beginn des Vertrags, YYYY-MM-DD. |
endDate | string|null | Ende des Vertrags, null ohne Kündigung. |
registrarStatus | string | Status beim Registrar, leer solange unbekannt. |
expiresOn | string|null | Ablauf beim Registrar. |
nameservers.mode | string|null | ours (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.hosts | string[] | Die externen Nameserver. |
dns | string | editable (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). |
dnsVia | string|null | Die Hauptdomain eines Alias. |
hints | string[] | 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
| Status | Anlass |
|---|---|
404 | Die Domain gehört zu keinem Vertrag des Kunden. |
403 | Der Benutzer darf nicht kündigen. |
409 | Der 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
| Name | Typ | Pflicht | Beschreibung |
|---|---|---|---|
domain | string | ja | Die Domain eines Vertrags des Kunden, z. B. kunde-domain.de. |
Antwort 200
Der Domainvertrag.
| Feld | Typ | Beschreibung |
|---|---|---|
domain | string | Die Domain, z. B. kunde-domain.de. |
contract | string | Die Vertragsnummer, z. B. 11434-7. |
status | string | active, cancelled (gekündigt, läuft bis endDate), ended oder voided (storniert). |
startDate | string | Beginn des Vertrags, YYYY-MM-DD. |
endDate | string|null | Ende des Vertrags, null ohne Kündigung. |
registrarStatus | string | Status beim Registrar, leer solange unbekannt. |
expiresOn | string|null | Ablauf beim Registrar. |
nameservers.mode | string|null | ours (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.hosts | string[] | Die externen Nameserver. |
dns | string | editable (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). |
dnsVia | string|null | Die Hauptdomain eines Alias. |
hints | string[] | 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
| Status | Anlass |
|---|---|
404 | Die Domain gehört zu keinem Vertrag des Kunden. |
403 | Der Benutzer darf nicht ändern. |
409 | Es 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
| Name | Typ | Pflicht | Beschreibung |
|---|---|---|---|
domain | string | ja | Die Domain eines Vertrags des Kunden, z. B. kunde-domain.de. |
Antwort 200
Der AuthCode.
| Feld | Typ | Beschreibung |
|---|---|---|
authcode | string | Der 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
| Status | Anlass |
|---|---|
404 | Die Domain gehört zu keinem Vertrag des Kunden. |
409 | Es 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.
| Feld | Typ | Beschreibung |
|---|---|---|
type | string | ORG für Firma, PERS für Person; folgt fest dem Kundenstatus. |
organisation | string | Firmenname, Pflicht bei ORG, höchstens 100 Zeichen. |
firstName | string | Vorname, höchstens 60 Zeichen. |
lastName | string | Nachname, höchstens 60 Zeichen. |
street | string | Straße und Hausnummer. |
zip | string | PLZ. |
city | string | Ort. |
country | string | Land, zwei Buchstaben, z. B. DE. |
email | string | E-Mail-Adresse. |
phone | string | Telefonnummer mit Ländervorwahl, z. B. +49 2261 123456. |
protection | boolean | Whois-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)
| Name | Typ | Pflicht | Beschreibung |
|---|---|---|---|
type | string | ja | ORG für Firma, PERS für Person; folgt fest dem Kundenstatus. |
organisation | string | nein | Firmenname, Pflicht bei ORG, höchstens 100 Zeichen. |
firstName | string | ja | Vorname, höchstens 60 Zeichen. |
lastName | string | ja | Nachname, höchstens 60 Zeichen. |
street | string | ja | Straße und Hausnummer. |
zip | string | ja | PLZ. |
city | string | ja | Ort. |
country | string | ja | Land, zwei Buchstaben, z. B. DE. |
email | string | ja | E-Mail-Adresse. |
phone | string | ja | Telefonnummer mit Ländervorwahl, z. B. +49 2261 123456. |
protection | boolean | nein | Whois-Datenschutz, an ohne Angabe. |
Antwort 200
Der gespeicherte Domain-Inhaber.
| Feld | Typ | Beschreibung |
|---|---|---|
type | string | ORG für Firma, PERS für Person; folgt fest dem Kundenstatus. |
organisation | string | Firmenname, Pflicht bei ORG, höchstens 100 Zeichen. |
firstName | string | Vorname, höchstens 60 Zeichen. |
lastName | string | Nachname, höchstens 60 Zeichen. |
street | string | Straße und Hausnummer. |
zip | string | PLZ. |
city | string | Ort. |
country | string | Land, zwei Buchstaben, z. B. DE. |
email | string | E-Mail-Adresse. |
phone | string | Telefonnummer mit Ländervorwahl, z. B. +49 2261 123456. |
protection | boolean | Whois-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
| Status | Anlass |
|---|---|
403 | Der Benutzer darf nicht ändern. |
422 | Eine 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
| Name | Typ | Pflicht | Beschreibung |
|---|---|---|---|
domain | string | ja | Die Domain eines Vertrags des Kunden, z. B. kunde-domain.de. |
Antwort 200
Liste der Einträge.
| Feld | Typ | Beschreibung |
|---|---|---|
id | number | Kennung des Eintrags, für das Löschen. |
type | string | A, AAAA, CNAME, MX, TXT, NS, SOA. |
host | string | Relativ zur Domain, leer für die Domain selbst. |
value | string | Wert des Eintrags. |
priority | number|null | Priorität bei MX, sonst null. |
editable | boolean | true: 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
| Status | Anlass |
|---|---|
404 | Die Domain gehört zu keinem Vertrag des Kunden. |
409 | Die Einträge liegen nicht bei uns, oder die Domain ist ein Alias. |
503 | Die 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
| Name | Typ | Pflicht | Beschreibung |
|---|---|---|---|
domain | string | ja | Die Domain eines Vertrags des Kunden, z. B. kunde-domain.de. |
Body (JSON)
| Name | Typ | Pflicht | Beschreibung |
|---|---|---|---|
type | string | ja | A, AAAA, CNAME, MX oder TXT. |
host | string | nein | Relativ zur Domain; leer oder @ für die Domain selbst, * für einen Wildcard-Eintrag. |
value | string | ja | Wert des Eintrags. |
priority | number | nein | Bei MX die Priorität, 0 bis 65535. |
Antwort 200
Alle Einträge der Zone.
| Feld | Typ | Beschreibung |
|---|---|---|
id | number | Kennung des Eintrags, für das Löschen. |
type | string | A, AAAA, CNAME, MX, TXT, NS, SOA. |
host | string | Relativ zur Domain, leer für die Domain selbst. |
value | string | Wert des Eintrags. |
priority | number|null | Priorität bei MX, sonst null. |
editable | boolean | true: 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
| Status | Anlass |
|---|---|
404 | Die Domain gehört zu keinem Vertrag des Kunden. |
403 | Der Benutzer darf nicht ändern. |
409 | Das Kundenkonto ist gesperrt, die Einträge liegen nicht bei uns, oder die Domain ist ein Alias. |
422 | Typ, 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
| Name | Typ | Pflicht | Beschreibung |
|---|---|---|---|
domain | string | ja | Die Domain eines Vertrags des Kunden, z. B. kunde-domain.de. |
id | number | ja | Die Kennung aus der Liste der Einträge. |
Antwort 200
Alle Einträge der Zone.
| Feld | Typ | Beschreibung |
|---|---|---|
id | number | Kennung des Eintrags, für das Löschen. |
type | string | A, AAAA, CNAME, MX, TXT, NS, SOA. |
host | string | Relativ zur Domain, leer für die Domain selbst. |
value | string | Wert des Eintrags. |
priority | number|null | Priorität bei MX, sonst null. |
editable | boolean | true: 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
| Status | Anlass |
|---|---|
404 | Die Domain gehört zu keinem Vertrag des Kunden. |
403 | Der Benutzer darf nicht ändern. |
404 | Den Eintrag gibt es nicht, oder er gehört zur Zone selbst. |
409 | Das Kundenkonto ist gesperrt, die Einträge liegen nicht bei uns, oder die Domain ist ein Alias. |