Ga naar inhoud

Domeinen

Alle domeinen worden gerouteerd via onze hoogperformante CDN-provider, bunny. Elk domein kan worden gekoppeld door je nameservers te wijzigen of door een cname-record in te stellen.

Deze endpoints beheren de hostnames die aan WordPress-sites zijn gekoppeld. Voor registrar-operaties (een TLD registreren/verhuizen) zie Domeinregistratie. OAuth-scopes: opzoeken/queryen vereist domains:read; per-site domeinwijzigingen vereisen sites:write.


Opzoeken en query

Alle domeinen weergeven

Toon alle domeinen die voor een gebruiker toegankelijk zijn.

GET /api/domains

Params (optioneel)
  • page: Integer | paginanummer (standaard: 1)
  • per_page: Integer | records per pagina (standaard: 50, max: 100)
Geretourneerde params
  • domains: Array
    • id: String
    • hostname: String
    • site_id: String
    • account_id: String
    • dns_zone: Object | bijbehorende dns-zone
      • id: String
      • name: String
      • dnssec: Boolean
      • dnssec_data: Object (nil als dnssec = false)
      • created_at: DateTime
      • updated_at: DateTime
      • account: Object
        • id: String
        • name: String
    • dns_zone_records: Array | bijbehorende dns-records
      • id: String
      • record_type: Integer
      • ttl: Integer
      • value: String
      • name: String
      • priority: Integer
      • weight: Integer
      • port: Integer
      • flags: String
      • record_tag: String
      • comment: String
      • created_at: DateTime
      • updated_at: DateTime

Domein laden op ID

GET /api/domains/:id

Retourneert één domain-object met dezelfde velden als een lijstvermelding.


Zoeken op domeinnaam

POST /api/domains/query

Dit is een helper-endpoint om een domein te vinden zonder de ID te kennen.

De param q ondersteunt substring-matching overal in de hostname. Bijvoorbeeld:

  • Zoeken op example matcht example.com;
  • Zoeken op domain matcht mydomain.com.
Params
  • q: String

Retourneert dezelfde vorm als Alle domeinen weergeven.


Controleren of een domein beschikbaar is

POST /api/domains/available

Hiermee wordt gecontroleerd of het domein geldig is en of het al in ons systeem bestaat.

Params
  • hostname: String

Gebruik de HTTP-statuscode om beschikbaarheid/geldigheid te bepalen:

  • HTTP 200: Bestaat en is niet beschikbaar
  • HTTP 422: Geen geldig domein, of ontbrekende hostname-param.
  • HTTP 404: Bestaat niet — geldig en beschikbaar.
Geretourneerde params
  • status: String

Site-endpoints

Alle domeinen voor een site weergeven

GET /api/sites/:site_id/domains

Geretourneerde params
  • domains: Array
    • id: String
    • hostname: String
    • dns_zone: Object | bijbehorende dns-zone
    • dns_zone_records: Array | bijbehorende dns-records
    • created_at: DateTime
    • updated_at: DateTime

Een domein aanmaken

POST /api/sites/:site_id/domains

Als er nog geen domein voor een site bestaat, wordt dit automatisch ingesteld als het primaire domein. Inrichten gebeurt asynchroon — retourneert 202 en maakt een taak aan.

provision_method moet exact de string dns zijn om via nameservers in te richten; elke andere waarde (of weglating) wordt behandeld als cname.

Params
  • domain: String (vereist) | FQDN
  • provision_method: String | exact de string dns, anders cname
Fouten
  • 400 {"errors":["Domain can't be blank."]} | domain leeg/ontbreekt
  • 422 | domein ongeldig of kon niet worden opgeslagen (zie errors-array)
Geretourneerde params voor DNS (provision_method = dns)
  • id: String
  • ns1: String | eerste nameserver (van het account van de site)
  • ns2: String | tweede nameserver (van het account van de site)
Geretourneerde params voor cname (standaard)
  • id: String
  • cname: String

Een domein promoveren

PATCH /api/sites/:site_id/domains/:id

Dit neemt geen parameters aan en promoveert het aangevraagde domein tot het primaire domein. Het bestaande primaire domein wordt een alias. Retourneert 202.


Verwijderen

Hiermee wordt het domein verwijderd. Als het het primaire domein is, wordt de site bijgewerkt om de standaard tijdelijke url te gebruiken. We raden aan om eerst je nieuwe domein tot primair domein te promoveren voordat je het verwijdert. Retourneert 202.

DELETE /api/sites/:site_id/domains/:id


SSL-certificaat vooraf inrichten (externe DNS)

Verkrijg een Bunny SSL-certificaat (optioneel wildcard) via een DNS-01-challenge voor een hostname waarvan de DNS elders wordt gehost — voordat je het naar SuperSpace wijst.

Vereist actieve CDN voor de site, anders 409 cdn_not_active. Scope: sites:read voor status; de request/complete-stappen vereisen sites:write en schrijf-/wijzigingsrechten op de site. De request/complete-stappen proxyen een Bunny-aanroep — een upstream Bunny-fout retourneert 502.

De flow:

  1. POST .../request_certificate retourneert een DNS-01 TXT-challenge die je bij je DNS moet toevoegen.
  2. Voeg het TXT-record toe bij je DNS-provider.
  3. POST .../complete_certificate — Bunny valideert en geeft het certificaat uit.

Certificaatstatus

GET /api/sites/:site_id/domains/:id/certificate

Geretourneerde params
  • provision_type: String | null, http01, dns01_external, of custom
  • wildcard: Boolean
  • challenge: Object | null | het/de toe te voegen DNS-01 TXT-record(s) (terwijl in behandeling)
  • requested_at: Timestamp | null
  • issued_at: Timestamp | null
  • active: Boolean

Certificaat aanvragen (stap 1)

POST /api/sites/:site_id/domains/:id/request_certificate

Params
  • wildcard: Boolean

Retourneert de DNS-01 TXT-challenge die je bij je DNS moet toevoegen.

Certificaat voltooien (stap 2)

POST /api/sites/:site_id/domains/:id/complete_certificate

Roep aan zodra het TXT-record live is; Bunny valideert en geeft het certificaat uit.