Entwickler
REST-API
Automatisiere Domains, DNS, Rechnungen, Tickets, CDN, Deployments und Shop-Bestellungen. OpenAPI-Datei für Postman & Co.
Schnellstart
- Im Kundenportal unter API einen Token mit den nötigen Berechtigungen erstellen.
- Den Token als Header mitschicken:
Authorization: Bearer hgg_… - Antworten sind JSON: Erfolg
{ data, meta? }, Fehler{ error: { code, message } }.
curl https://hoster.gg/api/v1/domains \ -H "Authorization: Bearer hgg_…"
Basis-URL: https://hoster.gg/api/v1 · höchstens 120 Anfragen pro Minute und Token · Listen mit ?limit= (max. 100) und ?page=
Berechtigungen
| account:read | Konto und Kundendaten lesen |
| domains:read | Domains und DNS-Einträge lesen |
| dns:write | DNS-Einträge anlegen, ändern und löschen |
| hosting:read | Webhosting-Pakete lesen |
| billing:read | Rechnungen und Verträge lesen |
| websites:read | Websites (Website Builder) lesen |
| support:read | Support-Tickets lesen |
| support:write | Support-Tickets eröffnen und beantworten |
| cloud:read | Cloud-Speicher und Dateiliste lesen (keine Inhalte) |
| mail:read | Business-Mail-Domains, Postfächer und Aliase lesen |
| cdn:read | CDN-Zonen und Statistiken lesen |
| cdn:write | CDN-Cache leeren |
| deploy:read | Deploy-Projekte und Deployments lesen |
| deploy:write | Deployments starten |
| shop:read | Shops, Produkte und Bestellungen lesen (inkl. Käuferdaten) |
| shop:write | Bestellungen als versendet markieren |
Endpunkte
GET/meEigenes Kundenkonto und Berechtigungen des Tokensaccount:read
Keine Parameter.
GET/domainsAlle Domainsdomains:read
Query-Parameter
limit– 1–100 (Standard 50)page– Seite (ab 1)
GET/domains/{name}Eine Domain (Name in ASCII oder Unicode)domains:read
Keine Parameter.
GET/domains/{name}/dnsDNS-Einträge einer Domaindomains:read
Keine Parameter.
POST/domains/{name}/dnsDNS-Eintrag anlegendns:write
JSON-Body
type– A | AAAA | CNAME | MX | TXT | NS | SRV | CAAname– relativ zur Zone, „@“ = Domain selbstcontent– Wert, z. B. IP-Adressettl– 60–86400 Sekunden (Standard 3600)priority– nur MX/SRV
curl -X POST https://hoster.gg/api/v1/domains/beispiel.de/dns \
-H "Authorization: Bearer hgg_…" -H "Content-Type: application/json" \
-d '{"type":"A","name":"www","content":"203.0.113.10","ttl":3600}'PATCH/domains/{name}/dns/{id}DNS-Eintrag ändern (nur übergebene Felder)dns:write
JSON-Body
type– optionalname– optionalcontent– optionalttl– optionalpriority– optional, null = entfernen
DELETE/domains/{name}/dns/{id}DNS-Eintrag löschendns:write
Keine Parameter.
GET/hostingWebhosting-Paketehosting:read
Keine Parameter.
GET/hosting/{id}Ein Webhosting-Pakethosting:read
Keine Parameter.
GET/invoicesRechnungen und Gutschriftenbilling:read
Query-Parameter
status– UNPAID | PENDING | PAID | FAILED | REFUNDED | CANCELLEDlimit– 1–100page– ab 1
GET/invoices/{id}Rechnung mit Positionenbilling:read
Keine Parameter.
GET/subscriptionsVerträge mit Laufzeit und Verlängerungbilling:read
Keine Parameter.
GET/websitesWebsites aus dem Website Builderwebsites:read
Keine Parameter.
GET/ticketsSupport-Ticketssupport:read
Keine Parameter.
POST/ticketsTicket eröffnensupport:write
JSON-Body
subject– 3–150 Zeichencategory– GENERAL | BILLING | DOMAIN | HOSTING | WEBSITE_BUILDER | TECHNICAL | ABUSEpriority– LOW | NORMAL | HIGHmessage– 10–20.000 Zeichen
GET/tickets/{id}Ticket mit Nachrichtensupport:read
Keine Parameter.
POST/tickets/{id}/messagesAuf ein Ticket antwortensupport:write
JSON-Body
message– 10–20.000 Zeichen
GET/cloudCloud-Speicher: Kontingent und Belegung (Bytes)cloud:read
Keine Parameter.
GET/cloud/filesDateien und Ordner (ohne Papierkorb, keine Inhalte)cloud:read
Query-Parameter
parent– Ordner-ID (leer = oberste Ebene)limit– 1–100page– ab 1
GET/mail/domainsBusiness-Mail-Domains mit Anzahl Postfächer/Aliasemail:read
Keine Parameter.
GET/mail/domains/{id}Mail-Domain mit Postfächern, Aliasen und DNS-Status (keine Passwörter)mail:read
Keine Parameter.
GET/cdn/zonesCDN-Zonen mit Hostnamen und Einstellungencdn:read
Keine Parameter.
GET/cdn/zones/{id}CDN-Zone mit Tageswertencdn:read
Query-Parameter
days– 7 oder 30 (Standard 30)
POST/cdn/zones/{id}/purgeCache leeren (ganze Zone oder einzelne Adressen)cdn:write
JSON-Body
urls– optional, max. 100 Adressen der Zone – ohne: ganze Zone
curl -X POST https://hoster.gg/api/v1/cdn/zones/<id>/purge \
-H "Authorization: Bearer hgg_…" -H "Content-Type: application/json" \
-d '{"urls":["https://www.beispiel.de/style.css"]}'GET/deploy/projectsDeploy-Projekte (Umgebungsvariablen werden nie ausgegeben)deploy:read
Keine Parameter.
GET/deploy/projects/{id}Projekt mit den letzten 20 Deploymentsdeploy:read
Keine Parameter.
POST/deploy/projects/{id}/deploymentsProduction-Deployment vom aktuellen Production-Branch startendeploy:write
curl -X POST https://hoster.gg/api/v1/deploy/projects/<id>/deployments \ -H "Authorization: Bearer hgg_…"
GET/deploy/deployments/{id}Status eines Deploymentsdeploy:read
Keine Parameter.
GET/shopsEigene Shopsshop:read
Keine Parameter.
GET/shops/{id}/productsProdukte eines Shopsshop:read
Query-Parameter
limit– 1–100page– ab 1
GET/shops/{id}/ordersBestellungen eines Shops (neueste zuerst, inkl. Käuferdaten)shop:read
Query-Parameter
status– PENDING | PAID | SHIPPED | REFUNDED | CANCELEDlimit– 1–100page– ab 1
GET/shop-orders/{id}Eine Bestellung mit Positionenshop:read
Keine Parameter.
POST/shop-orders/{id}/shipBestellung als versendet markierenshop:write
JSON-Body
carrier– optional, z. B. DHLtrackingNumber– optionalnotify– Versandmail an den Käufer (Standard true)
Fehlercodes
| 400 | invalid_json | Body ist kein gültiges JSON |
| 401 | unauthorized | Token fehlt, ist ungültig, abgelaufen oder widerrufen |
| 403 | forbidden | Dem Token fehlt die nötige Berechtigung |
| 404 | not_found | Gibt es nicht oder gehört nicht zu deinem Konto |
| 409 | conflict / domain_locked / ticket_closed | Widerspricht vorhandenen Daten oder dem Status |
| 415 | unsupported_media_type | Content-Type: application/json fehlt |
| 422 | validation_failed | Eingabe ungültig – Details im Feld „details“ |
| 429 | rate_limited | Mehr als 120 Anfragen pro Minute – Header Retry-After beachten |

