CDN, cache en logs
CDN-configuratie, cachelagen, edge rules en toegangslogs per site. Alle endpoints zijn genest onder een site en draaien op Bunny.
OAuth-scopes: lezen vereist sites:read, schrijven vereist sites:write.
Bovenop de scope vereist elke write op deze pagina de can_modify
(bewerk)-rol op de site, en deletes vereisen doorgaans can_destroy —
een cachelaag leegmaken is de uitzondering: die is
afgeschermd met can_modify, ondanks dat het een DELETE is. Zonder de
vereiste rol wordt het verzoek afgewezen met 403. Endpoints die met Bunny
communiceren retourneren 409 cdn_not_active wanneer de site geen pull
zone heeft, en 502 bij een upstream Bunny-fout.
Net als alle endpoints per site erven deze ook de beveiligingen op siteniveau —
een site die vanwege dunning is geblokkeerd retourneert 402 service_suspended
en een site die in verwijdering staat retourneert 403 pending_delete. Zie
Sites.
CDN-status
GET /api/sites/:site_id/cdn
Status en configuratie van de Bunny pull zone. Retourneert 409 cdn_not_active
als er geen pull zone is.
Geretourneerde params
- active: Boolean
- cdn_type: String | "premium" of "volume"
- optimizer_enabled: Boolean
- origin_url: String
- origin_type: Integer
- enable_logging: Boolean
- origin_shield_enabled: Boolean
- auto_ssl: Boolean
- cache_control_max_age_override: Integer
- smart_cache: Boolean
- cache_enabled: Boolean
- hostnames:
Array<Object>- value: String
- force_ssl: Boolean
- has_certificate: Boolean
- is_system_hostname: Boolean
Caching-instellingen
De caching-configuratie van de pull zone (smart cache, verlooptijden,
vary-toggles, stale-while-). Onderscheiden van het beheer van de Cache-laag
hieronder (dat redis/nginx/bunny in- of uitschakelt). Vereist CDN actief*
(409 cdn_not_active). Synchroon; upstream-fouten retourneren 502.
Caching-instellingen ophalen
GET /api/sites/:site_id/cdn/caching
Scope sites:read.
Geretourneerde params
- smart_cache: Boolean
- cache_expiration: Integer | edge-cache-TTL in seconden;
-1= volg origin,0= niets cachen - browser_cache_expiration: Integer | browser-cache-TTL in seconden
- query_string_ordering: Boolean
- cache_error_responses: Boolean
- vary_avif / vary_webp / vary_mobile / vary_hostname: Boolean
- vary_country_code / vary_country_state_code / vary_cookie: Boolean
- cookie_vary_parameters:
Array<String> - query_string_vary_parameters:
Array<String> - disable_cookies: Boolean
- cache_slice: Boolean
- stale_while_offline / stale_while_updating: Boolean
Caching-instellingen bijwerken
PATCH /api/sites/:site_id/cdn/caching
Scope sites:write (en de can_modify-rol). Partial update — alleen de keys
die je verstuurt worden geschreven. Retourneert de ververste instellingen (zelfde
vorm als de GET hierboven).
Params
- Elk van de hierboven geretourneerde velden. Scalars en booleans worden as-is verstuurd;
cookie_vary_parametersenquery_string_vary_parameterszijnArray<String>.
De cache leegmaken
POST /api/sites/:site_id/cdn/caching/purge
Scope sites:write (en de can_modify-rol). Maakt de volledige pull-zone-cache
leeg. Synchroon.
Een site kan ook zelf om een purge vragen
De hostingcontainer van een site kan van binnenuit een purge starten — denk
aan een WordPress-cacheplugin die na een publicatie leegmaakt — via de
inkomende CDN-cache-webhook. Die route is
infrastructuur-only (systeem-API-sleutel, geen OAuth) en asynchroon; de purge
verschijnt in de taakgeschiedenis van de site als site.cache.cdn_purge,
toegeschreven aan System. Gebruik als integrator de endpoints op deze
pagina.
Cache
Het :type-segment is de cachelaag: redis, nginx, bunny, of all
(verdeelt over elke laag). Een onbekend type retourneert 422
{"error":"unknown_cache_type","allowed":[...]}. Een laag die niet in het plan
van de site zit (sommige plannen hebben bijvoorbeeld geen Redis) retourneert 422
{"error":"cache_type_unavailable","cache_type":"redis"}.
Cachestatus
GET /api/sites/:site_id/cache
Geretourneerde params
- bunny: Boolean | Bunny CDN-cache ingeschakeld
- nginx: Boolean
- redis: Boolean
Een cachelaag inschakelen
PATCH /api/sites/:site_id/cache/:type
Async — retourneert 202 met de te pollen taak. Vereist de can_modify
(bewerk)-rol.
Geretourneerde params
- task_id: Integer
- status: String |
"PENDING" - cache_type: String
Een cachelaag uitschakelen
DELETE /api/sites/:site_id/cache/:type
Async — retourneert 202 (zelfde vorm als inschakelen). Vereist de can_destroy-rol.
Een cachelaag leegmaken
DELETE /api/sites/:site_id/cache/:type/purge
Async — retourneert 202 (zelfde vorm als inschakelen). Vereist de
can_modify (bewerk)-rol.
Edge rules
Bunny edge rules voor de site. Vereist CDN actief (409 cdn_not_active).
Alle acties zijn synchroon en geven Bunny's response door. :id is de
Guid van de rule.
Edge rules weergeven
GET /api/sites/:site_id/edge_rules
Een edge rule aanmaken
POST /api/sites/:site_id/edge_rules
Retourneert 201. Vereist de can_modify (bewerk)-rol. Laat Guid weg om
aan te maken; een opnieuw uitgevoerde create is niet idempotent (Bunny maakt
een duplicaat) — stuur een Guid (of gebruik PATCH) om ter plekke bij te werken.
Params (verpakt in edge_rule)
- Guid: String | weglaten om aan te maken
- ActionType: Integer | 0–34 (bijv. 0 = ForceSSL, 1 = Redirect, 2 = OriginUrl, 4 = BlockRequest, 5 = SetResponseHeader, 23 = DisableWAF, 28 = DisableShield)
- ActionParameter1 / ActionParameter2 / ActionParameter3: String
- TriggerMatchingType: Integer | hoe de triggers van de rule combineren: 0 = match any, 1 = match all, 2 = match none
- Description: String
- Enabled: Boolean
- OrderIndex: Integer
- Triggers:
Array<Object>| maximaal 5 condities per rule (Bunny's maximum per rule)- Type: Integer | 0 = Url, 1 = RequestHeader, 2 = ResponseHeader, 3 = UrlExtension, 4 = CountryCode, 5 = RemoteIP, 6 = UrlQueryString, 7 = RandomChance, 8 = StatusCode, 9 = RequestMethod, 10 = CookieValue, 11 = CountryStateCode, 12 = OriginRetryAttemptCount, 13 = OriginConnectionError
- PatternMatchingType: Integer | hoe de waarden van deze conditie combineren: 0 = match any, 1 = match all, 2 = match none
- Parameter1: String
- PatternMatches:
Array<String>| maximaal 5 waarden per conditie (Bunny's maximum per conditie)
- ExtraActions:
Array<Object>- ActionType: Integer
- ActionParameter1 / ActionParameter2 / ActionParameter3: String
Twee verschillende limieten van 5
Bunny maximeert een rule op 5 Triggers (condities) en elke conditie op
5 PatternMatches (waarden). Het aantal condities per rule wordt als
eerste gevalideerd. Bunny's eigen foutmelding draait het vocabulaire om — de
afwijzing voor te veel waarden luidt "Maximum 5 triggers are allowed per
condition" — dus lees de melding tegen de rule die je hebt verstuurd, niet
letterlijk.
Systeembeheerde rules (Description met prefix CPRESS -) worden uit de lijst
gefilterd en zijn niet door de klant te bewerken.
ActionType wordt rechtstreeks aan Bunny doorgegeven, dus de API accepteert het
volledige bereik 0–34. Een handvol van die action types stuurt Bunny-producten
aan die CloudPress niet doorverkoopt (perma-cache-bypass, Bunny Storage- /
Magic Containers-origins, edge scripting, request coalescing) en die niet
worden aangeboden in de edge-rule-editor van het dashboard; een bestaande rule
die er al een gebruikt, blijft daar bewerkbaar. Blijf bij de action types die je
in het dashboard kunt selecteren, tenzij je hebt bevestigd dat de onderliggende
Bunny-dienst voor je zone beschikbaar is.
Een edge rule bijwerken
PATCH /api/sites/:site_id/edge_rules/:id
De Guid wordt uit de URL gehaald. Retourneert 200. Vereist de
can_modify (bewerk)-rol. Volledige vervanging — velden die je weglaat
worden gewist, dus stuur de complete rule.
Een edge rule in-/uitschakelen
PATCH /api/sites/:site_id/edge_rules/:id/enabled
Vereist de can_modify (bewerk)-rol.
Params
- enabled: Boolean
Een edge rule verwijderen
DELETE /api/sites/:site_id/edge_rules/:id
Retourneert 204. Vereist de can_destroy-rol.
Logs
Vereisen CDN actief (409 cdn_not_active).
CDN-toegangslogs
GET /api/sites/:site_id/logs/cdn
Params (allemaal optioneel)
- from: String | ISO8601-datetime (standaard: 24 uur geleden)
- to: String | ISO8601-datetime (standaard: nu)
- period: String | vooraf ingesteld venster —
1h,6h,24h,72h. Alleen gebruikt wanneer zowelfromalstoleeg zijn. Onbekende waarden → 422. - status: String | filter op HTTP-statuscode
- cache_status: String | filter op cachestatus
- country: String | filter op tweeletterige landcode
- url_contains: String | filter op URL-substring
- limit: Integer | max resultaten (standaard: 100, max: 1000)
- offset: Integer | paginatie-offset (standaard: 0)
- order: String |
ascofdesc(standaard:desc)
Fouten
- 422 |
invalid_period,invalid_range, ofrange_exceeds_3_days - 502 | upstream-fout
CDN-logsamenvatting
GET /api/sites/:site_id/logs/cdn/summary
Geaggregeerde statistieken over dezelfde filters als het endpoint voor CDN-toegangslogs.
Origin-logs
GET /api/sites/:site_id/logs/origin
Params
- date: String | datum geaccepteerd door Bunny (optioneel)