Skip to content
For developers

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.

One URL, infinite variants
await fetch('https://api.tzzl.io/v1/upload', {
  method: 'POST',
  body: form,
})
Start for free
01

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.

Debuggable with curl
curl "https://cdn.tzzl.io/demo/photo.jpg?w=800&f=webp&q=80" \
  -o photo.webp
02

Typed 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.

@tuzzle/url
import { createTuzzle } from '@tuzzle/url'

const tz = createTuzzle({ space: 'acme' })

tz.image('photos/hero.jpg')
  .width(400)
  .gravity('face')
  .format('avif')
  .toURL()
03

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.

SDKs

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.

Start delivering faster media today.

Free to start, no credit card. Be up and running with your first transform URL in minutes.