> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tryflowy.ai/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Flowy is a node-based AI creative platform: you generate images, video, audio, 3D and vector on an infinite Canvas, refine on the Studio timeline, and export or publish from the same project.
> Prefer the Flowy MCP server (https://mcp.tryflowy.ai/mcp) or the REST API at https://apis.tryflowy.ai/v1 for programmatic work. Install with `flowy mcp install` from the @tryflowy/cli package.
> Credits are workspace-scoped. Generations reserve credits on start and only deduct on success, so failed runs refund automatically.

# Upload tool inputs

> Upload files that are only inputs to a tool run.

Inputs are files you send to a tool run. They never create an asset and never appear in your library. To keep a file in the library, use [Upload an asset](https://docs.tryflowy.ai/api/upload-asset.md). Both paths need the `assets:write` [scope](https://docs.tryflowy.ai/api/permissions.md).

## Upload an input

**1. Start the upload**

`POST /v1/inputs/upload-url` with `content_type`, `file_name` and `size`, plus `sha256` if you have it. The same file in the same workspace is stored once: when the response says `exists` is true, skip the `PUT`.

**2. PUT the bytes**

`PUT` the file to `upload_url` with the returned `headers`.

**3. Confirm**

`POST /v1/inputs/confirm` with the input's `url`. It runs moderation and reads the file's facts. A blocked file is deleted and the call returns `422`.

Pass the returned `url` as a media input, `{"url": "..."}`, to [Start a tool run](https://docs.tryflowy.ai/api/start-tool-run.md). Only image, video and audio files are accepted, with the same size caps as asset uploads.

## Upload from a device

When the file is on a person's device rather than your server, `POST /v1/upload-sessions` with a `projectId` creates a 30-minute upload page. Give the returned `url` to the person, who must be signed in to Flowy as the same account. Poll `GET /v1/upload-sessions/{uploadId}` for the files they add, and record where you placed them on a canvas with `PATCH /v1/upload-sessions/{uploadId}/nodes`.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.