---
title: "Generate audio from a video"
method: POST
path: "/v1/video_to_audio"
tags: ["Start generating"]
---

# Generate audio from a video

`POST /v1/video_to_audio`

## Request

- Base URL: `https://api.dev.runwayml.com`
- URL: `https://api.dev.runwayml.com/v1/video_to_audio`
- Auth: HTTP bearer

Generate synchronized sound effects for a video, optionally guided by a text description. Returns audio, not a video with a replacement soundtrack.

## Headers

- `X-Runway-Version` '2024-11-06', required

## Request body

- object
  - `duration` number, required
  - `negativePrompt` string: Sounds to avoid in the generated audio.
  - `numVariants` integer: The number of audio variations to generate.
  - `format` 'mp3' | 'wav' | 'flac': The format of the generated audio.
  - `seed` integer: A seed for reproducible generation.
  - `promptText` string: A description of the sound effects to generate.
  - `videoUri` union, required: The video to generate synchronized sound effects for. The output is audio only.
    - string: A HTTPS URL, Runway upload URI, or base64 data URI (e.g. `data:video/mp4;base64,...`, up to 5MB) containing an encoded video. See [our docs](/assets/inputs#videos) on video inputs for more information.
    - string: A Runway upload URI. See https://docs.dev.runwayml.com/assets/uploads for more information.
    - string: A data URI containing encoded media, up to 5MB.
  - `preserveSpeech` boolean: Whether to preserve dialogue from the input video. Disabling this does not guarantee speech-free output.
  - `model` 'mirelo_sfx_2_0', required

## Response `200`

The task that was created.

- object
  - `id` string, uuid, required: The ID of the task that was created. Use this to retrieve the task later.
  - `estimatedCost` object, required: The maximum credits this task may charge. The final amount may be lower after the task completes.
    - `credits` number, required: Estimated cost of the generation in credits.

## Other responses

- `400`: The request was rejected. Inspect `error` or `issues` (when present) and retry with a corrected request.
- `429`: You have exceeded the rate limit for this endpoint.

## Changes

- **2026-10-23** `48c998a7f98f`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/runwayml/apis/runwayml-api/changes/v1/video_to_audio/post.md)

---

[API](https://skmtc.dev/runwayml/apis/runwayml-api.md) - [All operations](https://skmtc.dev/runwayml/apis/runwayml-api/llms.txt) - [OpenAPI document](https://skmtc.dev/runwayml/apis/runwayml-api/revisions/28f063131307?raw)
