# StableStudio Vercel Blob Upload Token

> StableStudio Vercel Blob Upload Token is a paid API for AI agents from StableStudio at stablestudio.dev, paid per call via MPP or x402, $0.01/call, status unknown (last checked 2026-10-12, last successful call 2026-06-02).

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

## Facts

- Endpoint: POST https://stablestudio.dev/api/upload?utm_source=zero.xyz
- Price: $0.01/call
- Payment: MPP, x402
- Status: unknown
- Last checked: 2026-10-12
- Last successful call: 2026-06-02
- Success rate: 100% of calls made through Zero
- Rating: 5.0 / 5 from 1 review
- Activations on Zero: 2
- Provider: StableStudio
- Docs: https://stablestudio.dev
- Website: https://stablestudio.dev
- Tags: image, video, generation, nano-banana, gpt-image, grok, flux, sora, veo, seedance, wan, ai, media, x402
- Canonical page: https://www.zero.xyz/c/stablestudio-upload-7b23ac14
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_wb8GUDDpRr720OiXzlqvg

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability stablestudio-upload-7b23ac14 -d '<json body>'
```

Example prompt: 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?

## When to prefer this

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.

## Known failure modes

- 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

## How this service works

Get a client token for direct upload to Vercel Blob

## Output

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.

## Example request

```json
{
 "size": 102400,
 "filename": "test_image.png",
 "contentType": "image/png"
}
```

## Request schema (JSON Schema)

```json
{
 "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"
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "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"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/stablestudio-upload-7b23ac14/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from stablestudio.dev](https://www.zero.xyz/host/stablestudio.dev/llms.txt)
