CMS Assets Documentation
CMS Assets is an edge proxy for headless CMS platforms. It caches API responses and media globally, keeps API credentials off the client, and gives every project its own dedicated edge domain.
New here? Start with Getting Started — you'll be up and running in about 5 minutes.
Choose your integration path
CMS Assets supports two modes. They can be used together or independently.
API Proxy + Asset Proxy (recommended)
Route all CMS API requests through the edge. Credentials stay server-side, API responses are cached globally, and asset URLs in JSON are rewritten to your edge domain automatically — before your app ever sees them.
→ Getting Started · API Proxy Overview · Configuring the API Proxy
Asset proxy only
Serve CMS images, videos, and files through your edge domain without touching your CMS API calls. The lighter integration path — useful if you only need media delivery without credential management.
→ Getting Started · Response Transformer · CLI Agent
How it works
Your app calls your project's edge domain instead of your CMS directly:
# Before
https://api.your-cms.com/... ← CMS API (direct)
https://images.your-cms.com/path/to/image.jpg ← CMS CDN (direct)
# After
https://your-project.cmsassets.com/~api/... ← API proxy
https://your-project.cmsassets.com/path/to/image.jpg ← asset proxy
The edge worker injects credentials server-side, checks the cache, fetches the upstream CMS when needed, rewrites any asset URLs in the JSON response, and returns the result. Your frontend gets clean, proxy-ready data — no credentials in the bundle, no juggling CDN origins.
For the full request-by-request breakdown, see How It Works.
What CMS Assets does
- Caches at the edge — API responses and assets are cached on Cloudflare's global network. Cache hits return in under 10ms.
- Keeps credentials off the client — API tokens are stored encrypted on the edge worker. Your browser never sends a credential.
- Rewrites asset URLs automatically — JSON responses are parsed and image/file URLs are rewritten to your edge domain before they reach your app.
- Tracks and limits bandwidth — Monitor usage per project, set hard limits, and prevent CDN overage surprises.
- Serves from your own domain — Default subdomain at
your-project.cmsassets.com, or use your own hostname on the Pro plan. - Blocks bots and scrapers — Known scrapers are blocked at the edge before they consume your quota.
- Supports multiple projects — Each project (tenant) has its own isolated domain, config, and usage tracking.
Integrations
| CMS / Origin | Guide |
|---|---|
| Prismic | Prismic Integration |
| Contentful | Contentful Integration |
| Sanity | Sanity Integration |
| Storyblok | Storyblok Integration |
| Shopify | Shopify Integration |
| Cloudinary | Cloudinary Integration |
| Imgix | Imgix Integration |
| Any HTTPS origin | Generic Origin |
Reference
- How It Works — Architecture and full request flow
- API Reference — Domain-based tenant, billing, usage, admin, and user API docs
- Analytics — Cache hit ratios, bandwidth savings, and traffic patterns
- Custom Domains — Use your own hostname (Pro plan)
- Billing & Plans — Free and Pro plan details
- Limits & Usage — Bandwidth tracking and quotas
- FAQ — Common questions answered