{"uid":"cap_wb8GUDDpRr720OiXzlqvg","slug":"stablestudio-upload-7b23ac14","name":"StableStudio Vercel Blob Upload Token","description":"Get a client token for direct upload to Vercel Blob","url":"https://stablestudio.dev/api/upload?utm_source=zero.xyz","method":"POST","headers":{},"bodySchema":{"type":"object","properties":{"size":{"type":"number","description":"File size in bytes (optional)"},"filename":{"type":"string","description":"Name of the file to upload"},"contentType":{"enum":["image/jpeg","image/jpg","image/png","image/gif","image/webp","video/mp4","video/webm","video/quicktime","audio/mpeg","audio/mp3","audio/wav","audio/x-wav","audio/mp4","audio/aac","audio/ogg"],"type":"string","description":"MIME type of the file"}}},"responseSchema":{"type":"json","example":{"pathname":"uploads/8eecdb7b-bd76-4054-94f9-94c9abb57eab/photo.jpg","uploadId":"8eecdb7b-bd76-4054-94f9-94c9abb57eab","expiresAt":"2026-05-18T20:11:05.273Z","clientToken":"vercel_blob_client_token_example_redacted","curlExample":"curl -X PUT \"https://vercel.com/api/blob/?pathname=uploads%2F8eecdb7b-bd76-4054-94f9-94c9abb57eab%2Fphoto.jpg\" -H \"authorization: Bearer <client-token>\" -H \"x-content-type: image/jpeg\" -H \"x-api-version: 11\" --data-binary @photo.jpg"}},"example":{"request":{"size":102400,"filename":"test_image.png","contentType":"image/png"},"response":{"pathname":"uploads/2a3616dc-a5fa-4135-afff-f1a24dba872a/test_image.png","uploadId":"2a3616dc-a5fa-4135-afff-f1a24dba872a","expiresAt":"2026-05-29T01:01:41.132Z","clientToken":"vercel_blob_client_wGUnICa1uHl5nIjM_YWVjMzMwYWRjZTNjNzgxZmQzZDE5ZDMzMGZjMzJmNjdiOTAyOTBkMGMyMDMxZDQ2MDQ1YzI1YjY4N2YwMmYzZS5leUp3WVhSb2JtRnRaU0k2SW5Wd2JHOWhaSE12TW1Fek5qRTJaR010WVRWbVlTMDBNVE0xTFdGbVptWXRaakZoTWpSa1ltRTROekpoTDNSbGMzUmZhVzFoWjJVdWNHNW5JaXdpWVd4c2IzZGxaRU52Ym5SbGJuUlVlWEJsY3lJNld5SnBiV0ZuWlM5d2JtY2lYU3dpYldGNGFXMTFiVk5wZW1WSmJrSjVkR1Z6SWpveU5qSXhORFF3TURBc0luWmhiR2xrVlc1MGFXd2lPakUzT0RBd01UWTFNREV4TXpKOQ==","curlExample":"curl -X PUT \"https://vercel.com/api/blob/?pathname=uploads%2F2a3616dc-a5fa-4135-afff-f1a24dba872a%2Ftest_image.png\" -H \"authorization: Bearer vercel_blob_client_wGUnICa1uHl5nIjM_YWVjMzMwYWRjZTNjNzgxZmQzZDE5ZDMzMGZjMzJmNjdiOTAyOTBkMGMyMDMxZDQ2MDQ1YzI1YjY4N2YwMmYzZS5leUp3WVhSb2JtRnRaU0k2SW5Wd2JHOWhaSE12TW1Fek5qRTJaR010WVRWbVlTMDBNVE0xTFdGbVptWXRaakZoTWpSa1ltRTROekpoTDNSbGMzUmZhVzFoWjJVdWNHNW5JaXdpWVd4c2IzZGxaRU52Ym5SbGJuUlVlWEJsY3lJNld5SnBiV0ZuWlM5d2JtY2lYU3dpYldGNGFXMTFiVk5wZW1WSmJrSjVkR1Z6SWpveU5qSXhORFF3TURBc0luWmhiR2xrVlc1MGFXd2lPakUzT0RBd01UWTFNREV4TXpKOQ==\" -H \"x-content-type: image/png\" -H \"x-api-version: 11\" --data-binary @<file>"}},"exampleRequest":{"size":102400,"filename":"test_image.png","contentType":"image/png"},"tags":["image","video","generation","nano-banana","gpt-image","grok","flux","sora","veo","seedance","wan","ai","media","x402"],"displayCostAmount":"0.01","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"settled","requiresHandshake":false,"reviewCount":1,"rating":{"score":"1.00","successRate":"1.00","reviews":1,"stars":"5.0","state":"rated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.01/call","primary":{"kind":"static","protocol":"mpp","network":"tempo","amountUsd":"0.01","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"mpp","network":"tempo","amountUsd":"0.01","per":"call","confidence":"exact"},{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.01","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_RUK39BchPA3V0X_9W2PKe","protocol":"mpp","methodType":"crypto","chain":"tempo","mode":"charge","costAmount":"0.01","costPer":"request","priority":0,"asset":"0x20c000000000000000000000b9537d11c60e8b50","unit":"request","depositMicros":null,"planRef":null},{"uid":"pm_8taB3rsyZpr5bszrBIJ3L","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.01","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":"StableStudio","brandSlug":"stablestudio","brandBaseUrl":"https://stablestudio.dev","brandDocsUrl":"https://stablestudio.dev","whatItDoes":"Issues a short-lived Vercel Blob client token so files (images, video, audio) can be uploaded directly from the client without routing through the server","exampleAgentPrompt":"I need to upload a PNG image called 'portrait.png' that's 102400 bytes — can you get me a Vercel Blob client upload token from StableStudio so I can send it directly?","exampleUseCases":null,"resultDescription":"Returns an uploadId (UUID), a short-lived clientToken for authenticating a direct PUT to Vercel Blob, the destination pathname, an expiry timestamp, and a ready-to-use curl command illustrating how to perform the upload.","failureModes":["Missing required fields (filename or contentType) returns a 400 validation error","Unsupported contentType outside the allowed MIME enum returns a 400 error","Expired or invalid payment token returns a 402 Payment Required","Server-side Vercel Blob service unavailability returns a 503","Token may expire quickly (see expiresAt); uploading after expiry will be rejected by Vercel"],"whenToPreferThis":"Use this endpoint when you need to upload a raw media file (image, video, or audio) directly to Vercel Blob storage within the StableStudio platform — for example, before submitting an image-to-video or image-editing job that requires a hosted file URL. This is the correct first step in any workflow that requires uploading user-supplied media to StableStudio rather than providing an external URL.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":2,"lastUsedAt":"2026-06-02T18:37:09.473Z","lastSuccessfullyRanAt":"2026-06-02T18:37:09.473Z","lastHealthCheckAt":"2026-10-12T00:30:03.861Z","isFirstParty":false,"canonicalSlug":"stablestudio-upload-7b23ac14"}