Ga naar inhoud

Sites

OAuth-scopes: reads vereisen sites:read, writes vereisen sites:write. Een dunning-suspended site geeft 402 service_suspended terug op zijn show-/update-/destroy- en tool-endpoints (list-endpoints tonen in plaats daarvan dunning_suspended: true).

Gerelateerde site-tooling staat op eigen pagina's: CDN, cache & logs en Shield.

Sites opvragen

Als je de account-ID-header in deze API-aanroep weglaat, worden alle sites teruggegeven die beschikbaar zijn voor je gebruiker. Als je de account-ID-header wel meegeeft, worden alleen sites voor dit account teruggegeven.

GET /api/sites

Teruggegeven params
  • sites: Array
    • id: String
    • name: String
    • primary_domain: String
    • location: String (geografische regio)
    • region: String (Availability Zone)
    • account: Object
      • id: String
      • name: String
    • package: String
    • dunning_suspended: Boolean
    • created_at
    • updated_at

Site bekijken

GET /api/sites/:id

Teruggegeven params
  • site: Object
    • id: String
    • name: String
    • primary_domain: String
    • location: String (geografische regio)
    • region: String (Availability Zone)
    • package: String
    • php_version: String
    • domain_cname: String
    • sftp_base_path: String
    • ssh: Object
      • ipaddr: String
      • username: String
      • password: String
      • port: Integer
    • domains: Array
      • Zie het domains-API-endpoint
    • subscription: Object
    • id: String
    • status: String
    • created_at: DateTime
    • updated_at: DateTime
    • price: Object
      • amount_cents: Integer
      • term: String
    • product: Object
      • id: String
      • name: String
    • account: Object
      • id: String
      • name: String
    • created_at
    • updated_at

Site bijwerken / resizen

PATCH /api/sites/:id

Verwerkt twee bedoelingen:

  1. Hernoemen (synchroon) — geef name mee. Geeft 202 terug met een lege body.
  2. Planwijziging (cart-gemedieerd, asynchroon) — geef plan mee (een Product short_name). Het prijsverschil wordt off-session gefactureerd op de standaard betaalmethode van het account, en de reactie is de gedeelde cart-envelop (zie Orders / Carts) — poll de cart op voltooiing. Er wordt geen task_id teruggegeven. Vereist een single-site-account en een standaard betaalmethode in het bestand; de facturatietermijn blijft behouden.

Wanneer beide velden aanwezig zijn, wordt het hernoemen eerst uitgevoerd; bij een validatiefout op het hernoemen wordt de resize volledig overgeslagen en is de reactie 422.

Params
  • name: String | site hernoemen
  • plan: String | Product short_name (bijv. "basic")
Teruggegeven params (planwijziging-pad, 202 Accepted)
  • status: String | "accepted"
  • cart: Object | { token, status, rollup_status, poll_url }
  • payment: Object | { status, method_type, hosted_invoice_url }
  • orders: Array | [{ id, status, poll_url }] (leeg tijdens het asynchrone venster)
Fouten (planwijziging)
  • 400 unknown_product | plan komt niet overeen met een Product short_name
  • 400 product_unavailable | Product bestaat maar wordt niet aangeboden op het facturatieplan van het account
  • 400 no_default_payment_method | facturatieaccount niet klaar om te belasten
  • 422 no_price_for_plan | geen prijs die overeenkomt met de termijn van het account
  • 422 multi_site_resize_unsupported | account heeft meer dan één actieve site
  • 422 subscription_not_proratable | abonnement mist Stripe-metadata
  • 422 cart_pay_failed | de off-session-belasting kon niet worden gestart
  • 422 billing_settling | de facturatie van de site wordt nog afgewikkeld (het initiële facturatievenster van een net aangemaakte site)

billing_settling is 422, niet 402

De billing-settle-bewaking op een planwijziging (en op site verwijderen) geeft 422 billing_settling terug. Dit is onderscheiden van dunning-opschorting, die 402 service_suspended teruggeeft (zie de paginakop).


Een site herstarten

Herstart de WordPress-container voor een site. Heeft geen invloed op andere containers zoals de database of redis. Geeft 202 terug.

POST /api/sites/:id/restart

curl -X POST -H "Authorization: Bearer $SUPERSPACE_TOKEN" -H "X-Auth-Account: $ACCOUNT_ID" \
  https://your-instance/api/sites/$SITE_ID/restart

Een site verwijderen

DELETE /api/sites/:id

Verwijdert de site asynchroon. Geeft 200 terug; geblokkeerd met 422 billing_settling zolang de facturatie van de site nog wordt afgewikkeld (onderscheiden van de 402 service_suspended dunning-bewaking).

Het verwijderen van een site kan invloed hebben op volumekortingen op bestaande sites.


Site-SSO

Dit is een hybride endpoint. Het ondersteunt inloggen voor alle SSO-bewerkingen op een site. Momenteel zijn dat WordPress en phpMyAdmin (database).

Niet beschikbaar via OAuth — SSO vereist een sessie- of API-sleutel-credential. Zonder de wp_login-rolflag kun je alleen URL's genereren voor WordPress-gebruikers waaraan de gebruiker van het token expliciet is gekoppeld; met wp_login voor elke gebruiker.

Alle WP-gebruikers opvragen

Dit geeft ruwe gebruikersgegevens van de WordPress-site terug. Het bijbehorende ID is het interne ID van WordPress, geen SuperSpace-gebruiker.

GET /api/sites/:id/sso

Teruggegeven params
  • users: Array
    • ID: Integer
    • user_login: String
    • display_name: String
    • user_email: String
    • user_registered: DateTime
    • roles: String
    • url: String

Inloggen als gebruiker

POST /api/sites/:id/sso

Bij succes wordt 200 { "url": "..." } teruggegeven; bij falen 400.

Params
  • kind: String | wordpress (standaard) of database
  • username: String | vereist voor wordpress; niet gebruikt voor database
Teruggegeven params
  • url: String

Tasks

Vraag alle tasks voor een bepaalde site op.

GET /api/sites/{site-id}/tasks

GET /api/sites/{site-id}/tasks/{filter-name}/filter

Filter is optioneel en kan een van de volgende zijn:

  • OK
  • PENDING
  • RUNNING
  • CANCELLED
  • PAUSED
  • FAILED
  • TODAY <-- Speciaal filter om alle events van vandaag te tonen.

Alle reacties zijn beperkt tot de 100 meest recente tasks.

Teruggegeven params

Geeft een array van objecten terug:

  • id: Integer
  • name: String
  • data: String | Ruwe data van het event
  • labels: Object
  • status: String | OK, PENDING, RUNNING, CANCELLED, PAUSED, FAILED
  • start_on: Timestamp | Wanneer de task is gestart
  • end_on: Timestamp | Niet consistent gebruikt, maar kan zijn wanneer de task is voltooid.
  • created_at: Timestamp
  • updated_at: Timestamp
  • performed_by: Object
    • id: String | ID van de gebruiker die deze actie heeft uitgevoerd
    • name: String | Volledige naam van de gebruiker
    • email: String

Een enkele site-task bekijken

GET /api/sites/{site-id}/tasks/{id}

Geeft één task-object terug (dezelfde velden als hierboven). Een onbekend id geeft 404 {"errors":["Unknown task"]} terug.


Metrics

Realtime resources

Dit endpoint geeft de realtime-status voor een site terug.

GET /api/sites/{site-id}/metrics/resources

Teruggegeven params
  • total_storage: Decimal
  • {Image Name}: Object | bijv. "WordPress"
    • cpu: Decimal | Percentage van het totale plan
    • storage: Decimal | GB
    • memory: Decimal | MB

Ruwe metrics

Dit is een geavanceerd endpoint dat ruwe container-metrics voor een bepaalde site toont. Vanwege de aard van het SuperSpace-platform kunnen nieuwe sites metricgegevens teruggeven die zijn aangemaakt vóór het aanmaken van je site. Dit is verwacht gedrag, omdat de site mogelijk al bestaat in afwachting van een klantbestelling.

Bovendien kan het extra containers teruggeven waarmee de klant mogelijk niet rechtstreeks kan werken. Zo bevat 'SuperSpace Lite' mogelijk geen redis, maar zie je in deze resultaten toch een redis-container. Ook dit is verwacht gedrag van ons platform.

POST /api/sites/{site-id}/metrics/resources

kind kan een of meer zijn van:

  • cpu
  • cpu_throttled
  • memory
  • memory_throttled
  • storage
Params
  • kind: Array | ['storage', 'memory'] (voorbeeld)
  • period_start: Integer | unix-timestamp (moet binnen de laatste maand vallen)
  • period_end: Integer | unix-timestamp (na period_start, binnen de laatste maand)
  • step: String | standaard '1m'.

De parameters Period en Step hebben geen invloed op de storage-metric. Die geeft altijd de huidige waarde terug.

Teruggegeven params
  • service_name: Object
    • id: Integer
    • name: String
    • image: String
    • resources: Object | Afhankelijk van welke waarden zijn geselecteerd
      • cpu: Array<time, value>
      • cpu_throttled: Array<time, value>
      • memory: Array<time, value>
      • memory_throttled: Array<time, value>
      • storage: Decimal
Fouten

Alle foutbodies gebruiken de array-structuur {"errors": [...]}.

  • 422 | lege of ongeldige kind, of period_start/period_end buiten de laatste maand / verkeerde volgorde
  • 502 | upstream metric-service niet beschikbaar
  • 400 | onverwachte fout

CDN-metrics

Haal RUWE CDN-metrics op. Een volledige beschrijving van de teruggegeven data vind je op Bunny's API Documentation Site. Let op: klik op de 200 onder Responses om de velduitleg te zien.

POST /api/sites/{site-id}/metrics/cdn

Params
  • period_start: Integer | Unix-timestamp. Heeft voorrang op period. (>3 maanden oud → 422)
  • step: String | hourly of monthly. Wordt alleen geraadpleegd met period_start.
  • period: String | vooraf ingesteld venster — een van 12h, 24h, 7d, 30d. Wordt alleen gebruikt wanneer period_start ontbreekt. Onbekende waarden → 422.
Teruggegeven params
  • TotalBandwidthUsed: Integer | Voor de opgegeven periode
  • TotalOriginTraffic: Integer | Voor de opgegeven periode
  • AverageOriginResponseTime: Integer | Voor de opgegeven periode
  • TotalRequestsServed: Integer | Voor de opgegeven periode
  • CacheHitRatio: Integer
  • OriginResponseTimeChart: Object | "2025-11-20T00:00:00Z": 0 (ISO8601-timestamp → Integer)
  • BandwidthUsedChart: Object
  • BandwidthCachedChart: Object
  • CacheHitRateChart: Object
  • RequestsServedChart: Object
  • PullRequestsPulledChart: Object
  • OriginShieldBandwidthUsedChart: Object
  • OriginShieldInternalBandwidthUsedChart: Object
  • OriginTrafficChart: Object
  • GeoTrafficDistribution: Object | bijv. "EU: Stockholm, SE": 0
  • Error3xxChart: Object
  • Error4xxChart: Object
  • Error5xxChart: Object
Fouten
  • 409 | CDN niet actief voor deze site
  • 422 | ontbrekende/nul/te-oude period_start, of onbekende period
  • 502 | upstream statistiekenophaling mislukt
Voorbeeld: maandelijkse bandbreedte tonen
curl -X POST -d '{"period_start": 1760983782, "step": "monthly"}'

Dit geeft data terug voor de afgelopen maand, in dagelijkse stappen, maar wat belangrijker is: de waarde TotalBandwidthUsed geldt voor de volledige periode van 30 dagen.

Zie ook Shield-metrics.


Back-ups

Gebruik het Tasks-endpoint om de status van deze acties te volgen.

Alle back-ups opvragen

Geeft een lijst van back-ups voor een bepaalde site terug, gegroepeerd per volume. Geeft [] terug wanneer er geen volumes zijn; een volume zonder archieven wordt als {} weergegeven.

GET /api/sites/{site-id}/backups

Teruggegeven params
  • {label}: Object | bijv. wordpress, of mysql
    • id: Integer | ID van het volume (vereist voor back-upbewerkingen)
    • size: Decimal | GB - volumecapaciteit
    • usage: Decimal | GB - gecomprimeerde en gededupliceerde back-upgrootte (werkelijk gebruik op schijf)
    • archives: Array
      • id: String
      • name: String
      • created: String | in iso8601-formaat

Een back-up maken

PATCH /api/sites/{site-id}/backups/{volume-id}

Geeft 202 terug. Een onbekend volume geeft 404 {"errors":["Volume not found"]} terug.

Params
  • name: String | Back-upnaam

Een back-up verwijderen

DELETE /api/sites/{site-id}/backups/{volume-id}

Geeft 202 terug.

Params
  • backup_id: String | Back-up-ID

Een back-up terugzetten

PATCH /api/sites/{site-id}/restores/{volume-id}

Geeft 202 terug.

Params
  • backup_id: String | Back-up-ID

PHP-versie wijzigen

Beschikbare opvragen

GET /api/sites/{site-id}/variants

Teruggegeven params
  • php: Array<Object> | Momenteel wordt alleen php teruggegeven.
    • id: Integer | variant_id nodig om de versie te wijzigen
    • label: String
    • is_default: Boolean | Wordt gebruikt bij het uitrollen van een nieuwe site.
    • active: Boolean | Huidige versie die de site gebruikt

Wijzigen

Bij het wijzigen van de PHP-versie van een site wordt de site herstart met een ander container-image. Houd er rekening mee dat de site even nodig heeft om te herstarten. Geeft 202 terug. Het URL-segment moet php zijn — elke andere variant geeft 422 {"errors":["only php version changes are allowed"]} terug.

PATCH /api/sites/{site-id}/variants/php

Params
  • variant_id: Integer
Teruggegeven params (202 Accepted)
  • task_id: Integer | Het ID van de task zodat je kunt meekijken.