# Vaaya FAL Upload

> Vaaya FAL Upload is a paid API for AI agents from vaaya.ai, paid per call via x402, $0.01/call, status unknown (last checked 2026-09-14).

Upload a file to FAL (a media/ML inference platform) via the Vaaya proxy, returning a hosted URL usable in subsequent AI media generation or processing calls.

## Facts

- Endpoint: POST https://vaaya.ai/api/run/fal/upload
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/vaaya-fal-upload-69d5dec6
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_kSDxcODGwlfu2tqyVJ4pq

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 vaaya-fal-upload-69d5dec6 -d '<json body>'
```

Example prompt: Upload this image file to FAL through Vaaya so I can use the hosted URL in my next image-to-image generation step.

## When to prefer this

Use this endpoint when you need to make a locally held or agent-accessible file available at a publicly reachable FAL URL before passing it into a fal.ai model inference call. It is the correct pre-step for any fal.ai workflow that requires a URL input rather than accepting raw binary data directly. Prefer this over generic storage services when the downstream consumer is specifically a fal.ai model.

## Known failure modes

- File too large — FAL upload size limits may cause rejection
- Unsupported file format — FAL may not accept certain MIME types
- Network timeout on large file uploads
- Invalid or missing file body in POST request
- Upstream FAL service unavailable causing proxy failure

## How this service works

Stage a media file on the fal CDN before a fal generation. Returns { upload_url, file_url }: PUT the raw file bytes to upload_url (with the matching Content-Type header), then pass file_url as the image_url/video_url/audio_url param of the generation. Upload originals UNCOMPRESSED — never downscale or re-encode; high-res inputs cost nothing extra and compression degrades outputs.

## Output

A hosted FAL asset URL pointing to the uploaded file, which can be passed directly as an input parameter to fal.ai model inference endpoints for image-to-image, inpainting, upscaling, or other media generation workflows.

## Request schema (JSON Schema)

```json
{
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "type": "object",
 "properties": {
  "input": {
   "type": "object",
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "type": "string",
     "enum": [
      "POST"
     ]
    },
    "bodyType": {
     "type": "string",
     "enum": [
      "json",
      "form-data",
      "text"
     ]
    },
    "body": {
     "type": "object",
     "properties": {
      "file_name": {
       "type": "string",
       "minLength": 1
      },
      "content_type": {
       "type": "string",
       "minLength": 1
      }
     },
     "required": [
      "file_name",
      "content_type"
     ],
     "additionalProperties": false,
     "$schema": "http://json-schema.org/draft-07/schema#"
    },
    "pathParams": {
     "type": "object"
    }
   },
   "required": [
    "type",
    "method",
    "bodyType",
    "body"
   ],
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object"
    }
   },
   "required": [
    "type"
   ]
  }
 },
 "required": [
  "input"
 ]
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/vaaya-fal-upload-69d5dec6/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from vaaya.ai](https://www.zero.xyz/host/vaaya.ai/llms.txt)
