Documentation

API version 2. Last updated 3 November 2026.

Getting started

Add an origin in the console. Every origin gets a delivery prefix; append the object path and optional transform parameters:

https://rext.cdnstream88.com/o/<origin-id>/photos/beach.jpg?w=800&q=75

Transform parameters

ParamExampleDescription
w, hw=640Target width / height in pixels (max 4096)
fitfit=covercover, contain, fill, inside
qq=70Quality 1–100, default 80
fmfm=avifForce output format; omit for auto
blurblur=12Gaussian blur radius 1–100
dprdpr=2Device pixel ratio multiplier 1–3

Signed URLs

When signing is enabled for an origin, append s — an HMAC-SHA256 of the path and query, keyed with the origin secret:

import hmac, hashlib
msg = "/o/7f3a/photos/beach.jpg?w=800&q=75"
sig = hmac.new(SECRET, msg.encode(), hashlib.sha256).hexdigest()[:32]
url = f"https://rext.cdnstream88.com{msg}&s={sig}"

Purge API

curl -X POST https://api.rext.cdnstream88.com/v2/purge \
  -H "Authorization: Bearer $REXT_TOKEN" \
  -d '{"origin":"7f3a","prefix":"/photos/"}'

Responds 202 Accepted; propagation usually completes within 5 seconds.

Limits

Source images up to 50 MB and 100 megapixels. Animated GIF input is converted to animated WebP. Requests above your plan's rate limit receive 429 with a Retry-After header.