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:
- Hernoemen (synchroon) — geef
namemee. Geeft202terug met een lege body. - Planwijziging (cart-gemedieerd, asynchroon) — geef
planmee (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 geentask_idteruggegeven. 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|plankomt 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) ofdatabase - username: String | vereist voor
wordpress; niet gebruikt voordatabase
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: Integername: Stringdata: String | Ruwe data van het eventlabels: Objectstatus: String | OK, PENDING, RUNNING, CANCELLED, PAUSED, FAILEDstart_on: Timestamp | Wanneer de task is gestartend_on: Timestamp | Niet consistent gebruikt, maar kan zijn wanneer de task is voltooid.created_at: Timestampupdated_at: Timestampperformed_by: Objectid: String | ID van de gebruiker die deze actie heeft uitgevoerdname: String | Volledige naam van de gebruikeremail: 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 planstorage: Decimal | GBmemory: 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: Objectid: Integername: Stringimage: Stringresources: Object | Afhankelijk van welke waarden zijn geselecteerdcpu: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, ofperiod_start/period_endbuiten 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 opperiod. (>3 maanden oud → 422)step: String | hourly of monthly. Wordt alleen geraadpleegd metperiod_start.period: String | vooraf ingesteld venster — een van12h,24h,7d,30d. Wordt alleen gebruikt wanneerperiod_startontbreekt. Onbekende waarden → 422.
Teruggegeven params
TotalBandwidthUsed: Integer | Voor de opgegeven periodeTotalOriginTraffic: Integer | Voor de opgegeven periodeAverageOriginResponseTime: Integer | Voor de opgegeven periodeTotalRequestsServed: Integer | Voor de opgegeven periodeCacheHitRatio: IntegerOriginResponseTimeChart: Object |"2025-11-20T00:00:00Z": 0(ISO8601-timestamp → Integer)BandwidthUsedChart: ObjectBandwidthCachedChart: ObjectCacheHitRateChart: ObjectRequestsServedChart: ObjectPullRequestsPulledChart: ObjectOriginShieldBandwidthUsedChart: ObjectOriginShieldInternalBandwidthUsedChart: ObjectOriginTrafficChart: ObjectGeoTrafficDistribution: Object | bijv."EU: Stockholm, SE": 0Error3xxChart: ObjectError4xxChart: ObjectError5xxChart: Object
Fouten
- 409 | CDN niet actief voor deze site
- 422 | ontbrekende/nul/te-oude
period_start, of onbekendeperiod - 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 mysqlid: Integer | ID van het volume (vereist voor back-upbewerkingen)size: Decimal | GB - volumecapaciteitusage: Decimal | GB - gecomprimeerde en gededupliceerde back-upgrootte (werkelijk gebruik op schijf)archives: Arrayid: Stringname: Stringcreated: 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 alleenphpteruggegeven.id: Integer |variant_idnodig om de versie te wijzigenlabel: Stringis_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.