First-party API notes · not a Studio route
Pika Soundtrack is a video-conditioned audio model. It takes a source clip plus an optional instruction and writes a synchronized soundtrack of sound effects, voice, music, and ambience back onto the same picture. Pika introduced it on 18 August 2026. An API exists today. OfflineCreator Studio does not route it.
Last verified 2026-09-15 against Pika's model specification and pricing catalog.
Pika's launch post describes four practical output categories: motion-aware sound effects, voice, music, and ambience. Generation is conditioned on visual and temporal information from the source video and on an optional natural-language instruction that can emphasize, include, or leave sounds out.
The model specification is more mechanical. The required video field is a URL. Visuals and duration are preserved; only the soundtrack is replaced. The completed job returns an MP4 at output.video.url. Delivery is async: a submit returns a job, usually queued, not the finished file.
Pika Soundtrack is not Pika SFX and not Pika Music. SFX is text-to-audio at $0.0002 per second. Music is a reference-to-audio model at $0.015 per minute. Those sibling operations share Club access and the same job-polling envelope. They do not accept a video as the primary conditioner.
The runtime source of truth is the operation specification at pika/pika-audio/pika-soundtrack. It lists $0.005 per second and states that only successful generations are charged. Ten-, thirty-, and sixty-second figures below are calculations from that rate, not separate published SKUs.
| Item | Current verified value |
|---|---|
| Pika Soundtrack | $0.005 / sec |
| 10-second video | $0.05 calculated |
| 30-second video | $0.15 calculated |
| 60-second video | $0.30 calculated |
| Failed runs | Pika says only successful runs are charged |
| Access | Pika API Club · $10/month membership, $10 first-month usage credit (club announcement) |
Membership is a separate access fee. This page does not fold the $10 monthly Club charge into the per-second generation estimate. Re-check Pika's pricing catalog before you budget.
Endpoint names, fields, and polling below are copied from Pika's live Soundtrack specification. Do not send the API key from a browser. Use the PIKA_API_KEY environment variable on a server.
Send the Pika API key in the X-API-Key header. Keep the key on the server. The same key can read GET /billing/balance, which Pika documents as free.
Pass a reachable video URL in the video field. For a local file, POST /v1/media/uploads with content_type and size_bytes, PUT the bytes to the returned upload_url with the signed headers, then use the permanent url.
POST /v1/media/pika/pika-audio/pika-soundtrack with required video and optional instruction and seed. A successful submit returns a job object, normally queued, not the finished file.
GET /v1/media/jobs/{id} until status is completed or failed. Completed jobs expose output.video.url as an MP4. Failed jobs include error.code. Replay a failure with a fresh Idempotency-Key.
These snippets use the documented path, X-API-Key header, required video field, and optional instruction and seed. They poll /v1/media/jobs/{id} until completed or failed. Replace the example URL with a reachable H.264 or HEVC clip.
curl -X POST https://api.dev.pika.art/v1/media/pika/pika-audio/pika-soundtrack \
-H "X-API-Key: $PIKA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"video": "https://example.com/clip.mp4",
"instruction": "Natural room tone and footsteps only. No music.",
"seed": -1
}'import os
import time
import requests
API = "https://api.dev.pika.art"
headers = {
"X-API-Key": os.environ["PIKA_API_KEY"],
"Content-Type": "application/json",
}
submitted = requests.post(
"https://api.dev.pika.art/v1/media/pika/pika-audio/pika-soundtrack",
headers=headers,
json={
"video": "https://example.com/clip.mp4",
"instruction": "Natural room tone and footsteps only. No music.", # optional
"seed": -1, # optional; -1 picks a random seed
},
timeout=30,
)
submitted.raise_for_status()
job = submitted.json()
job_id = job["id"]
while True:
polled = requests.get(
f"{API}/v1/media/jobs/{job_id}",
headers={"X-API-Key": os.environ["PIKA_API_KEY"]},
timeout=30,
)
polled.raise_for_status()
payload = polled.json()
if payload["status"] in {"completed", "failed"}:
break
time.sleep(2)
if payload["status"] != "completed":
raise SystemExit(payload.get("error", payload))
print(payload["output"]["video"]["url"])const apiKey = process.env.PIKA_API_KEY;
if (!apiKey) throw new Error("Set PIKA_API_KEY in the server environment.");
const submitted = await fetch("https://api.dev.pika.art/v1/media/pika/pika-audio/pika-soundtrack", {
method: "POST",
headers: {
"X-API-Key": apiKey,
"Content-Type": "application/json",
},
body: JSON.stringify({
video: "https://example.com/clip.mp4",
instruction: "Natural room tone and footsteps only. No music.", // optional
seed: -1, // optional
}),
});
if (!submitted.ok) {
throw new Error(await submitted.text());
}
const job = (await submitted.json()) as { id: string; status: string };
let payload: {
status: string;
output?: { video?: { url?: string } };
error?: { code?: string; message?: string };
};
for (;;) {
const polled = await fetch(`https://api.dev.pika.art/v1/media/jobs/${job.id}`, {
headers: { "X-API-Key": apiKey },
});
if (!polled.ok) throw new Error(await polled.text());
payload = await polled.json();
if (payload.status === "completed" || payload.status === "failed") break;
await new Promise((resolve) => setTimeout(resolve, 2000));
}
if (payload.status !== "completed" || !payload.output?.video?.url) {
throw new Error(payload.error?.message ?? payload.status);
}
console.log(payload.output.video.url);Values below are taken from the current Soundtrack specification. Where Pika does not publish a number, this page says so instead of guessing.
| Topic | Verified value |
|---|---|
| Input | Video URL. Codecs H.264 or HEVC. Container and file extension do not matter; the codec is read from the file. |
| Duration | At most 1200 seconds (20 minutes) |
| Size | At most 2 GB |
| Working resolution | A source below about 576×320 for 16:9 is upscaled. Audio is still produced; the model has less visual detail to work from. |
| Optional instruction | Verbatim direction for effects, ambience, dialogue, music, or style. Blank or omitted uses the video alone. |
| Output | MP4 video with the original picture and a replaced soundtrack |
| Async | Job statuses: queued, running, completed, failed |
| Content policy | A content_moderation error code exists. A public policy text for Soundtrack was not specified on the model page. |
| Rate and concurrency | 429 responses mention requests per minute, per day, or concurrent jobs. Numeric limits are not publicly specified on the model page. |
This table uses first-party or clearly labeled host prices rechecked on 2026-09-15. It does not call Pika cheapest or best. Membership, credits, and reseller markups change the effective unit cost.
| API / model | Output focus | Video-conditioned | Price unit | 30s normalized | Max duration | Voice | Music | SFX | Access |
|---|---|---|---|---|---|---|---|---|---|
| Pika Soundtrack | Full-scene soundtrack on the source MP4 | Yes | $0.005 / input second | $0.15 generation (calculated) | 1,200 seconds (20 minutes) | Documented | Documented | Documented | Pika API Club |
| Sonilo Video → Music | Video-aligned music, not a combined Foley+voice+score track | Yes | $0.009 / output second | $0.27 (calculated) | 6 minutes | Not the product focus | Yes | Separate Video → SFX API | Sonilo API (pay as you go) |
| Sonilo Video → SFX | Video-aligned sound effects | Yes | $0.009 / output second | $0.27 (calculated) | 480 seconds (8 minutes) | Not the product focus | Separate Video → Music API | Yes | Sonilo API (pay as you go) |
| Mirelo SFX 1.6 API | Video- or text-conditioned sound effects | Yes (video-to-SFX) | 10 credits / generated second / variant | 300 credits (calculated); first-party USD list not published | Not publicly specified on the usage-rate page | Preserve Speech add-on (+8 credits/sec when speech is detected) | Music 1.0 is not publicly offered on the API | Yes | Mirelo API (credit plans) |
| HunyuanVideo-Foley (fal host) | Video-conditioned Foley / sound effects | Yes | $0.10 / 10 seconds on fal ($0.01/sec) | $0.30 on fal (calculated) | Not independently verified from Tencent's first-party list | Not claimed here | Not claimed here | Yes (Foley) | Open-source weights; hosted price is the fal list, not Tencent official |
Kling publishes a video-to-audio API reference. Reseller hosts advertise per-call prices that do not agree with each other. A first-party Kling list price was not independently verified in this pass, so Kling is omitted from the numeric rows.
This page does not claim professional mastering quality, real-time generation, broadcast licensing, or drop-in compatibility with OfflineCreator Studio, fal, or any other host.
The live Studio catalog has no Pika model and no video-to-audio workflow. Studio does not route, wrap, or price Pika Soundtrack. There is no partnership, endorsement, or drop-in compatibility claim on this page.
If you need picture first, Studio publishes its own video models with a credit quote before generation. Finishing those clips with Pika Soundtrack is a separate first-party Pika integration, not a Studio button.
Pika Soundtrack is Pika's video-conditioned audio model. The current API operation is pika/pika-audio/pika-soundtrack. It accepts a source video URL plus an optional instruction and returns an asynchronous job whose completed output is an MP4 with the original picture and a generated soundtrack.
Pika's current model specification lists $0.005 per second of input video and says only successful generations are charged. Access is through the Pika API Club, which Pika's club announcement lists as $10 per month with $10 in first-month usage credit. Membership is a separate fee from the per-second generation rate.
At the verified $0.005 per second rate, a 30-second successful run calculates to $0.15 in generation charges. That figure does not include the API Club membership fee.
Pika's launch post describes motion-aware sound effects, voice, music, and ambience conditioned on the source video and an optional instruction. Those are Pika's documented output categories, not an OfflineCreator quality score.
Yes. The instruction field is optional. Pika's spec says it reaches the model verbatim and can describe sound effects, ambience, dialogue, music, or overall style. Omit it, or leave it blank, for sound design derived from the video alone.
No. Soundtrack is video-to-video: it replaces the soundtrack on a source clip. Pika SFX is text-to-audio at $0.0002 per second. Pika Music is a reference-to-audio music model at $0.015 per minute. They share the same Pika API Club access path and job-polling pattern, not the same input contract.
There is no single best alternative. Sonilo publishes separate video-to-music and video-to-SFX APIs at $0.009 per second each. Mirelo's public SFX 1.6 API is billed in credits (10 credits per generated second). HunyuanVideo-Foley is open-source; fal hosted it at $0.10 per 10 seconds when last checked. Kling publishes a video-to-audio API reference, but a first-party Kling list price was not independently verified here. Compare output type, duration limits, and access terms rather than a single cheapest label.
No. The live OfflineCreator Studio model catalog and workflow list do not include Pika Soundtrack or any Pika audio operation. This page documents Pika's first-party API. Studio can generate video through its published catalog; it does not route, wrap, or price Pika Soundtrack.
Studio keeps published video models and credit quotes visible before you submit. Soundtrack remains a first-party Pika call until a catalog row says otherwise.