A media API that gets out of your way.
Predictable URLs, a clean REST API, signed access, and no pipeline to maintain. Ship media features in an afternoon.
URL-based transforms
Every variant is a query string. No SDK required, though we have one.
REST upload API
Push assets from your backend or the browser with signed URLs.
Scoped API keys
Space-scoped keys, signed URLs, and webhooks for automation.
Self-host nothing
No Sharp, no workers, no CDN config. Delivery and caching are handled.
await fetch('https://api.tzzl.io/v1/upload', {
method: 'POST',
body: form,
}) Start for free An API you can read
Transforms are query parameters, assets are URLs, and responses are predictable JSON. You can learn the whole transform surface in five minutes and debug it with curl. The full API is described by an OpenAPI 3.1 spec, so your tooling already understands it.
curl "https://cdn.tzzl.io/demo/photo.jpg?w=800&f=webp&q=80" \
-o photo.webpTyped SDKs for your stack
Official @tuzzle packages cover the zero-dependency URL builder, the typed management client, React, Vue, Next, and Nuxt, plus a drop-in media chooser widget. Client types are generated straight from the API's OpenAPI spec, so they never drift from reality.
import { createTuzzle } from '@tuzzle/url'
const tz = createTuzzle({ space: 'acme' })
tz.image('photos/hero.jpg')
.width(400)
.gravity('face')
.format('avif')
.toURL()Automation hooks included
Space-scoped API keys, HMAC-signed webhooks on upload and processing events, usage analytics, and signed URLs for anything sensitive. Wire Tuzzle into CI, moderation queues, or your own dashboards without asking us for anything.
Ship with the stack you already have.
Every package is open source, typed, and published independently, so you install exactly what you need and nothing more.
@tuzzle/url
Zero-dependency URL and transform builder, plus server-side signing.
@tuzzle/client
Typed management and upload client, generated from the OpenAPI spec.
@tuzzle/react
Provider, image component, chooser, and hooks for React.
@tuzzle/vue
Plugin, components, and composables for Vue 3.
@tuzzle/next
next/image loader plus server-side signing helpers.
@tuzzle/nuxt
Nuxt module with auto-imported components and composables.
@tuzzle/chooser
Framework-agnostic, themeable media library and upload widget.
Explore other solutions
Start delivering faster media today.
Free to start, no credit card. Be up and running with your first transform URL in minutes.