# Stupid Upload Accountless, agent-first public file uploads on Cloudflare. ## Endpoints - GET / appears with pricing and limits. - POST /v1/uploads/temporary (free, <=1 MiB, expires in 24h) - POST /v1/uploads/permanent (paid x402, <=100 MiB, no scheduled expiry) - PUT /v1/uploads/{id}/content - GET /f/{id}/{filename} - DELETE /v1/uploads/{id} - POST /v1/feedback - GET /v1/pricing?sizeBytes=N ## Example (temporary) 1. Compute size and sha256 of your file. 2) POST /v1/uploads/temporary with {"filename","contentType","sizeBytes","sha256"} and an Idempotency-Key header (>=32 high-entropy chars). 3. PUT the bytes to uploadUrl with Authorization: Bearer and matching Content-Length. 4. Download from publicUrl. 5. Delete with DELETE /v1/uploads/{id}, Bearer . ## Payment Permanent uploads are paid in Base USDC via x402. A request without payment returns a 402 challenge; pay and retry. Permanent = no scheduled expiration (subject to uploader deletion, abuse/legal removal, and service availability).