Everything you need to route a hostname through QBeam, control caching, and call the edge API. Start with the quickstart, then wire up cache rules.
Add a zone, point a CNAME at the edge, and QBeam starts pulling from your origin. TLS certificates are issued automatically.
# 1. authenticate $ qbeam auth login --token $QBEAM_TOKEN # 2. add a zone bound to your origin $ qbeam zones add cdn.example.com \ --origin origin.example.com --tls auto # 3. point DNS at the edge cdn.example.com CNAME cdn.example.com.qbeam-edge.net
A zone maps a hostname you serve to an origin we pull from. Each zone is advertised from every PoP over anycast, so users always reach the nearest node.
| Field | Description |
|---|---|
| hostname | The name your users request |
| origin | Where the edge fetches misses from |
| tls | auto issues and renews certificates |
| http3 | Enable HTTP/3 (QUIC) delivery |
Rules match on path or content type and set a TTL. The edge honours origin cache headers unless a rule overrides them.
$ qbeam cache set cdn.example.com \ --rule "path=/static/* ttl=7d" \ --rule "type=text/html ttl=60s" \ --stale-while-revalidate 30s
Purge a single object, a prefix, or everything. Purges propagate to all PoPs within seconds.
$ qbeam purge cdn.example.com --path /static/app.js $ qbeam purge cdn.example.com --prefix /images/ ✓ purged · 42 PoPs · 0.8s
Everything the CLI does is available over REST. Authenticate with a bearer token.
POST https://api.qbeam-edge.net/v1/zones Authorization: Bearer $QBEAM_TOKEN { "hostname": "cdn.example.com", "origin": "origin.example.com", "tls": "auto", "http3": true }
Control-plane calls are limited per token. Data-plane traffic (the bytes we deliver) is never rate-limited by these quotas.
| Endpoint class | Limit |
|---|---|
| Reads | 600 / min |
| Writes | 120 / min |
| Purge | 60 / min |