Fish Audio Docs
API Reference

Uploads

Upload authorized local media for public API workflows.

Uploads

Use POST /api/open/v1/uploads to upload a local audio, image, or video file before passing its returned URL to another public API workflow.

Request

Authenticate with your Kitta API key and send multipart form data. The type value must match the file MIME type and must be audio, image, or video.

curl https://fishaudio.org/api/open/v1/uploads \
  -H "Authorization: Bearer $FISHAUDIO_API_KEY" \
  -F "type=audio" \
  -F "file=@sample.wav"

The response contains success, requestId, and upload data including the stored media URL. Keep the URL only as long as the downstream workflow needs it; uploaded media remains subject to the product retention policy.

Limits and errors

The endpoint accepts at most 30 requests per minute for each authenticated user and enforces the configured multipart body limit. Invalid media types, mismatched MIME types, oversized bodies, and storage failures return stable public error codes with a requestId.

Uploads do not start a generation job by themselves. Pass the returned URL to voice cloning, image editing, lip-sync, video dubbing, or another compatible endpoint.