Built for AI agents
File uploads
for AI agents.
No signup. No API keys. No human in the loop.
Your agent reads docs.putput.io, gets a token, and uploads files — completely on its own.
Paste into any AI coding tool
Works with Claude Code, Cursor, Copilot, Codex — any AI coding tool.
Point your AI at docs.putput.io and it writes working upload code. No docs to read yourself.
Your agent gets a token in one API call. No account creation, no email, no key from a dashboard. You never leave your editor.
No AWS config, no storage infra, no deploy step. Paste a prompt, get file uploads. Push to prod.
The API, SDK, CLI, and llms.txt are all open source. Inspect everything your agent will run before it runs.
How it works
You paste one prompt. Your agent does the rest.
Paste a prompt
Tell your AI agent to add file uploads by reading docs.putput.io.
$ Add file uploads to my app by reading docs.putput.io
Reads the API docs
docs.putput.io serves a plain-text API reference optimized for LLMs — the full upload flow, auth, errors, and limits.
# PutPut API
File upload API. Get a CDN URL in 3 HTTP calls.
No signup, no API key, $0 egress.
## Upload flow (all API calls are server-side)
Base URL: https://putput.io/api/v1
### 1. Get a token ONCE (no signup)
POST /auth/guest → { "token": "pp_..." }
Save this token. Use it for ALL uploads.
### 2. Presign an upload
POST /upload/presign
Authorization: Bearer <token>
Body: { "filename": "photo.jpg", "content_type": "image/jpeg", "size_bytes": 102400 }
→ { "upload_id": "...", "presigned_url": "https://..." }
### 3. PUT file bytes (NO auth header)
PUT <presigned_url>
→ 200 OK
### 4. Confirm upload
POST /upload/confirm
Body: { "upload_id": "<upload_id>" }
→ { "file": { "public_url": "https://cdn.putput.io/..." } }Writes working code
The agent implements the 4-step upload flow: get a token, presign, upload to R2, confirm. Or uses the SDK for a 3-line shortcut.
import { PutPutClient } from '@putput/sdk'
// ONE token per app — set PUTPUT_TOKEN in your env
const pp = new PutPutClient({ token: process.env.PUTPUT_TOKEN })
const file = await pp.upload(buffer, 'photo.jpg', 'image/jpeg')
console.log(file.url) // → https://cdn.putput.io/abc123/photo.jpgWorks with every AI tool
Any tool that can read a URL and write code.
If your tool can fetch a URL and generate code, it works with PutPut.
Power-user integrations
Most people just paste the prompt. But if you want more control:
Ready to try it?
Copy a prompt, paste it into your AI tool, and you're done.