Skip to main content
Muse is Meta’s video generation model, and every clip comes with its own music and sound effects. LaoZhang API charges a fixed price per video, $0.30 for a 5–10 second clip, and any standard token group can call it.
Muse text-to-video sample: a lighthouse on a rocky coast at dawn with waves breaking on the rocks

Output of the text-to-video example below: muse-video, 10 seconds, 16:9

Create a token

Add a token in Token management with these settings: You do not need a Meta account or a dedicated video group.

Pricing

Muse videos are billed per video. The price does not depend on the duration you pick within a model, the aspect ratio, or whether you send images: How charges work:
  • You are charged when the task is created, and failed tasks are refunded in full.
  • Requests rejected at submission with a parameter error are not charged.
  • Each resubmission creates a new task and is charged again, so keep a mapping between your own job ID and the task id.
The usage log shows the actual charge for every task.

Choose between video models

As of October 30, 2026, Muse has the lowest price on LaoZhang API for a 10-second clip at 720p or higher; see Models and pricing for every model. Pick by task:
  • Muse: a fixed price per video, one continuous 20- or 30-second clip, or continuing an existing video.
  • MiniMax H3: 2K output, reference video, or reference audio. For short 768P clips of about 5 seconds, H3’s per-second price is lower.
  • Seedance 2.0: 1080p, or footage of real people or virtual humans.
  • Wan: 1080P output, or editing an existing video.

How it works

1

Create a task

Call POST /v1/videos with at least model and prompt. The endpoint is asynchronous: it returns a task id within seconds instead of waiting for the video. Save it.
2

Poll the status

Call GET /v1/videos/{id} every 15 seconds and read status; each call returns right away. Clips up to 10 seconds usually finish in 2–3 minutes and can take more than 5 at busy times; 20- and 30-second clips take longer.
3

Download the result

When status is completed, download the MP4 from video_url. The download needs no Authorization header, and the link stays valid for 7 days.
Keep polling for up to 30 minutes, and do not resubmit while the task is still running.
  • Submitting and polling both return immediately, so you do not need a longer HTTP timeout.
  • 30 minutes is the polling limit: keep checking while status is queued or in_progress.
  • If you stop polling, check the same id again later. Resubmitting creates a new task and charges again.
  • A task still unfinished after 40 minutes is marked failed and refunded in full.

Set up

The cURL examples use jq to read fields from responses (brew install jq on macOS). Set your key and base URL first:

Generate a video from text

A successful request returns a queued task:
Two optional fields you will use most:
  • seconds: leave it out and muse-video makes a 10-second clip.
  • aspect_ratio: the shape of the clip; you can send size in pixels instead, such as 720x1280.

Animate from a first frame or first and last frames

Pass image to set the opening shot, and add last_frame to set the closing shot as well. Each image can be a public URL or a data:image/...;base64, data URL:
The model uses the two images as visual references: the clip opens and closes on the same composition, but details are not reproduced pixel for pixel. To upload local files, send multipart form data. The first frame goes in input_reference and the last frame in last_frame:
Do not set Content-Type: application/json when you upload with -F. Each image can be up to 10 MB.

Generate from reference images

Send 1–4 images in reference_images. The model carries their subject and style into the video without using any of them as the first frame:

Make 20s and 30s clips or continue a video

muse-video-20s and muse-video-30s generate one continuous 20- or 30-second clip. Call them the same way as muse-video; seconds can be left out. To keep going from an existing clip, pass video_url:
Continuation rules:
  • Only muse-video-20s and muse-video-30s accept video_url; they add 10 and 20 seconds after the source clip.
  • The source must be a publicly downloadable https MP4 link, no longer than 10 seconds.
  • The result includes the source clip, so a 5-second source continued with muse-video-20s becomes a 15-second video.
  • A video_url returned by LaoZhang API works as a source.

Poll and download

Get the task

While the video renders, status is in_progress and progress gives a rough percentage:
When it completes, the task carries video_url:
A failed task has status: "failed" and the reason in error.message. Its charge has already been refunded:

Download the video

You can also call GET /v1/videos/{id}/content with your Authorization header; it returns the MP4 file.

Minimal Python client

Requires requests (pip install requests):

API reference

Request fields

Output size by aspect ratio: The frame rate is always 24 fps; resolution and fps do not change the output.

Task status

Errors

The first three come back as HTTP 400 at submission: no task is created and nothing is charged. The rest arrive as a failed task, already refunded.

FAQ

Do 5-second and 10-second clips cost the same?

Yes. muse-video costs $0.30 for 5, 8, or 10 seconds. For a longer continuous shot, use muse-video-20s ($0.55) or muse-video-30s ($0.80).

Can I get 1080p video?

No. Muse outputs 1280×720 in landscape and 720×1280 in portrait; other shapes are listed under Request fields. Sending resolution: "1080p" is accepted, but the output size does not change.

Do the videos have sound? Can I turn it off?

Every clip has a soundtrack, with music and effects shaped by your prompt. There is no option to turn it off; strip the audio track after downloading if you do not need it.

Can I resubmit after a timeout or failure?

Check the task first. A client-side timeout does not mean the task failed, so keep polling the same id; resubmitting creates a new task and charges again. Only when status is failed should you fix the request and create a new task. Failed tasks are already refunded, and a task still unfinished after 40 minutes is marked failed and refunded automatically. 7 days. After that the link expires and the task cannot be downloaded again, so save the file once the task completes.