# StableStudio Upload Confirm

> StableStudio Upload Confirm is a free API for AI agents from StableStudio at stablestudio.dev, callable via MPP, Free, status unknown (last checked 2026-09-14).

Confirms a completed file upload by associating the final Vercel Blob URL with an existing upload record

## Facts

- Endpoint: POST https://stablestudio.dev/api/upload/confirm
- Price: Free
- Payment: MPP
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- 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
- Canonical page: https://www.zero.xyz/c/stablestudio-confirm-0f189727
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_L7brqS_ziHnDfqQBZCmWD

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-confirm-0f189727 -d '<json body>'
```

Example prompt: I just finished uploading my image to Vercel Blob and got back the blob URL — can you confirm the upload on StableStudio using upload ID 'upl_abc123' and blob URL 'https://blob.vercel-storage.com/myimage-xyz.png'?

## When to prefer this

Use this endpoint as the second step of a two-phase upload flow on StableStudio — after obtaining an upload ID from the initial upload endpoint and completing the Vercel Blob upload, call this to finalize the record. This is required before the uploaded media can be used in AI generation workflows on StableStudio.

## Known failure modes

- Invalid or expired uploadId returns an error
- Malformed or inaccessible blobUrl causes validation failure
- Mismatch between uploadId and blobUrl ownership returns unauthorized error
- Network timeout if Vercel Blob URL is unreachable
- Duplicate confirmation of already-confirmed upload may return conflict

## How this service works

Confirm upload with final blob URL

## Output

Returns a success boolean and an upload object containing the upload ID, the confirmed blob URL, the filename, and the media type of the uploaded file.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "uploadId",
  "blobUrl"
 ],
 "properties": {
  "blobUrl": {
   "type": "string",
   "format": "uri",
   "description": "Final blob URL from Vercel Blob upload"
  },
  "uploadId": {
   "type": "string",
   "description": "Upload ID from the upload endpoint"
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "success",
  "upload"
 ],
 "properties": {
  "upload": {
   "type": "object",
   "required": [
    "id",
    "blobUrl",
    "filename",
    "mediaType"
   ],
   "properties": {
    "id": {
     "type": "string"
    },
    "blobUrl": {
     "type": "string"
    },
    "filename": {
     "type": "string"
    },
    "mediaType": {
     "type": "string"
    }
   },
   "additionalProperties": false
  },
  "success": {
   "type": "boolean",
   "const": true
  }
 },
 "additionalProperties": false
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/stablestudio-confirm-0f189727/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)
