JPG, PNG or HEIC. Square works best.
Drag a photo onto the uploader
Uploads, processing, storage and delivery that understand
what's in every file, set up by your agent in one prompt.
Let your coding agent add Playbook to your app, or make the calls yourself.
claude plugin marketplace add playbook-labs/mcp-pluginsclaude plugin install playbook@playbook-pluginsThen run /mcp and sign in to Playbook.
Add Playbook to this app and upload the images in /public.You'll need an API key to start. Sign in to Playbook to get one, no approval needed. Get an API key →
https://mcp.playbook.com/mcpAuthorize once in your browser.
Add Playbook to this app and upload the images in /public.You'll need an API key to start. Sign in to Playbook to get one, no approval needed. Get an API key →
https://mcp.playbook.com/mcpAllow it once in your browser.
Add Playbook to this app and upload the images in /public.You'll need an API key to start. Sign in to Playbook to get one, no approval needed. Get an API key →
export PLAYBOOK_API_TOKEN=<your key>Keep it on your server, never in the browser.
POST https://api.playbook.com/v1/<org>/assetsSend a file URL, get the asset back. Copy gives you the full curl.
You'll need an API key to start. Sign in to Playbook to get one, no approval needed. Get an API key →
Uploads, processing, delivery, storage and access, behind one API key.
A drop-in picker, URL and folder import.
Resize, convert and tag every upload.
One URL, served as AVIF or WebP.
Three renditions and scrub thumbnails.
S3, GCS or R2 as primary, with replicas.
Short-lived tokens and signed webhooks.
Handles big files, links and Drive or Dropbox folders and stores each file once.
JPG, PNG or HEIC. Square works best.
Drag a photo onto the uploader
One pipeline, whichever way the file arrives.
Two uploads of the same bytes become one asset.
Re-run an import and only what changed comes in.
Resize, convert, watermark and lock down any image, without running an image server.
Ask for any width and the height follows. Every size comes from the one original.
POST/assets/permalink_urls?width=800→ …/rs:fit:800:0/….webp
WebP or AVIF for browsers, JPEG or PNG wherever else you need it. The original stays as uploaded.
POST/assets/transform?width=1600&format=avif{ tokens: [...] }→ ….avif
Stamp previews for clients or stock buyers, tiled or in a corner.
POST/assets/transform{ watermark: { layout: 'tiled', opacity: 0.3 } }→ a stamped render, original untouched
A public link that never expires, or a signed one that does. The signed clock here runs two hours in five seconds.
POST/assets/transform?width=1600{ tokens: [...] }→ signed URL, expires within 2 hours
Each asset's average color fills the grid before images load.
// next.config.jsimages: {remotePatterns: [{ hostname: 'img.playbook.com' }],}// page.tsx<Imagesrc={asset.permalink}width={800}height={1067}style={{ backgroundColor: asset.average_color }}/>
Allow one host, pass the permalink, and paint the average color while it loads.
Attach a flow to a folder. Every photo that lands there gets cut out, squared, converted and tagged before anyone asks for it.
chair_0412.jpg · 3000 × 4000 · 6.8 MB
Encoded once, with scrub previews and captions, ready for any player.
Slide across a video and its frames follow the cursor, so you can find the moment without pressing play.
One master.m3u8, and the player steps down to 720p or 360p when the connection does.
One signed stream_url plays in Safari on iPhone, Chrome with hls.js, or VLC, with nothing else to sign.
Your API key stays on your server. Your app gets a short-lived token for one board, your agent signs in, and your people get links.
Your server trades its API key for a read-only token to one board. The browser keeps it for up to an hour.
Add Playbook's MCP server to Claude, ChatGPT or Cursor and authorize once. No API key to paste.
One call returns a board link with a password and an expiry. Anyone with it can view or upload.
Webhooks for every change, storage in your own bucket, and answers to what your security review will ask.
Get a POST when an asset is added, updated or deleted on a board, with the asset and exactly what changed.
Keep originals in your S3, GCS or R2 bucket. Playbook processes, searches and delivers on top.
SSO and SCIM for your team, an audit log, encryption at rest, and signed URLs for anything that leaves.
Playbook API is the file layer for the app you're building. Your app uploads, processes, stores and delivers images, video and documents through one API. It's powered by the same platform managing over 400 million visual assets.
One API and one key cover uploads, image delivery, video streaming and storage. Every file is accessible through your workspace, where your team can search, comment on, approve and share it without you building an admin panel, and your coding agent can manage the same files through MCP.
Yes. Large files go up in parts through signed uploads, straight from the browser to storage, so they never pass through your server. You can send up to 100 files in one batch.
It's stored once. Playbook checks the contents of every upload, and a file with identical bytes merges into the asset that's already there instead of creating a copy. For AI-generated variants you want to keep separate, mark the upload as ai_generated and merging is switched off.
Keep your S3, GCS or R2 bucket as the primary store, and Playbook processes, searches and delivers on top of it. If you're moving from another provider, send up to 100 files URLs per call and Playbook fetches them in the background.
Not for your coding agent. It signs in to Playbook with your account the first time it connects. Your app's server uses an API key, which you create in the Playbook app with no approval needs.
Files are encrypted at rest, and anything that leaves Playbook goes through signed links that expire. Your team signs in with SSO, accounts are managed through SCIM, and every action is recorded in audit log.
Media at any volume
Two million people already keep their visual work in Playbook. The API you build on is the same one the app runs on.
Set a monthly budget and get a heads-up at 80%, not a dead app.
For building and your first users.
$0a month
Included every month, before anything is metered.
Usage-based pricing
Pay as you go
Metered on what your app uses.






