Zum Inhalt springen
Hoster.ggHoster.gg

Entwickler

REST-API

Automatisiere Domains, DNS, Rechnungen, Tickets, CDN, Deployments und Shop-Bestellungen. OpenAPI-Datei für Postman & Co.

Schnellstart

  1. Im Kundenportal unter API einen Token mit den nötigen Berechtigungen erstellen.
  2. Den Token als Header mitschicken: Authorization: Bearer hgg_…
  3. 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:readKonto und Kundendaten lesen
domains:readDomains und DNS-Einträge lesen
dns:writeDNS-Einträge anlegen, ändern und löschen
hosting:readWebhosting-Pakete lesen
billing:readRechnungen und Verträge lesen
websites:readWebsites (Website Builder) lesen
support:readSupport-Tickets lesen
support:writeSupport-Tickets eröffnen und beantworten
cloud:readCloud-Speicher und Dateiliste lesen (keine Inhalte)
mail:readBusiness-Mail-Domains, Postfächer und Aliase lesen
cdn:readCDN-Zonen und Statistiken lesen
cdn:writeCDN-Cache leeren
deploy:readDeploy-Projekte und Deployments lesen
deploy:writeDeployments starten
shop:readShops, Produkte und Bestellungen lesen (inkl. Käuferdaten)
shop:writeBestellungen 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 | CAA
  • name – relativ zur Zone, „@“ = Domain selbst
  • content – Wert, z. B. IP-Adresse
  • ttl – 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 – optional
  • name – optional
  • content – optional
  • ttl – optional
  • priority – 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 | CANCELLED
  • limit – 1–100
  • page – 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 Zeichen
  • category – GENERAL | BILLING | DOMAIN | HOSTING | WEBSITE_BUILDER | TECHNICAL | ABUSE
  • priority – LOW | NORMAL | HIGH
  • message – 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–100
  • page – 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–100
  • page – ab 1
GET/shops/{id}/ordersBestellungen eines Shops (neueste zuerst, inkl. Käuferdaten)shop:read
Query-Parameter
  • status – PENDING | PAID | SHIPPED | REFUNDED | CANCELED
  • limit – 1–100
  • page – 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. DHL
  • trackingNumber – optional
  • notify – Versandmail an den Käufer (Standard true)

Fehlercodes

400invalid_jsonBody ist kein gültiges JSON
401unauthorizedToken fehlt, ist ungültig, abgelaufen oder widerrufen
403forbiddenDem Token fehlt die nötige Berechtigung
404not_foundGibt es nicht oder gehört nicht zu deinem Konto
409conflict / domain_locked / ticket_closedWiderspricht vorhandenen Daten oder dem Status
415unsupported_media_typeContent-Type: application/json fehlt
422validation_failedEingabe ungültig – Details im Feld „details“
429rate_limitedMehr als 120 Anfragen pro Minute – Header Retry-After beachten