Developer access · v1 stable

Pika, in your
stack.

The Pika API exposes every tool - Pika 2.5, Pikaformance, Pikaframes, AI Powers, PikaStream - as RESTful endpoints under one developer key. SDKs for Node, Python, and Go. Async webhooks. Generous rate limits. Per-token pricing.

200 OK · 1.4s
POST /v1/videos
~ pika-quickstart · zsh
$ npm install @pika/agent-api
added 1 package in 1.3s
$ PIKA_API_KEY=sk-pika-... node demo.js
→ generating with pika-2.5
→ status: queued · job_id: job_abc123
→ status: complete · 47.2s elapsed
→ url: https://cdn.pika.me/clips/abc123.mp4
Why an API

Every Pika tool, programmable.

The web app is the front door - but most production workflows can't live there. Marketing teams running thousands of ad variations. Game studios generating cinematics on demand. Newsletter platforms personalizing video for each subscriber. Content moderation pipelines validating thousands of clips a day. Each of these needs Pika's models exposed as primitives, not buttons in a UI.

The Pika API hands you exactly that. Every Pika tool - text-to-video, image-to-video, Pikaformance lip-sync, Pikaframes long-form, AI Powers styling and effects, PikaStream live video — is callable from your code under a single developer key. One authentication flow, one rate-limit ceiling, one billing wallet. The same models that power the consumer app and Pika AI Selves, exposed as RESTful endpoints with proper SDKs, async webhooks, and observability built in.

It's also explicitly agent-friendly. The API was built with autonomous AI workflows in mind - Claude through MCP, Openclaw agents, custom-built runtime, doesn't matter. Skip onboarding, get a key, ship. Selected skills are also published in the open-source Pika-Skills GitHub repository for self-hosting and customization. The whole surface is designed for products that need to call Pika at scale, not for one-off creative experiments.

Quickstart

From zero to first render, in 60 seconds.

Three lines of setup, one POST, and a finished MP4. Switch the language tab on the right to see the same flow in Node, Python, Go, or cURL.

1

Get a key

Sign in at the developer portal. Generate a secret key starting with sk-pika-. Store it in your environment as PIKA_API_KEY.

2

Install the SDK

Pick your language. Node, Python, and Go are first-class. Or hit the REST endpoints directly — same surface either way.

3

Call compose()

The compose endpoint is the simplest entry point — it chains generation, styling, and effects into a single request and returns a finished clip URL.

4

Wait for completion

Poll the job status, or register a webhook URL and Pika will POST when the render is done. Most clips finish in 60–90 seconds.

import { Pika } from '@pika/agent-api'; const pika = new Pika({ apiKey: process.env.PIKA_API_KEY, }); // Generate + style + effect, in one request const clip = await pika.compose({ generate: { model: 'pika-2.5', prompt: 'cinematic shot of a neon street', duration: '6s', aspect: '9:16', }, style: { preset: 'cyberpunk' }, effects: [{ type: 'pikaffect', name: 'levitate' }], }); console.log(clip.url); // → https://cdn.pika.me/clips/abc123.mp4
from pika import Pika import os client = Pika(api_key=os.environ['PIKA_API_KEY']) # Generate + style + effect, in one request clip = client.compose( generate={ 'model': 'pika-2.5', 'prompt': 'cinematic shot of a neon street', 'duration': '6s', 'aspect': '9:16', }, style={'preset': 'cyberpunk'}, effects=[{'type': 'pikaffect', 'name': 'levitate'}], ) print(clip.url) # → https://cdn.pika.me/clips/abc123.mp4
package main import ( "fmt" "os" "github.com/pika-labs/pika-go" ) func main() { client := pika.NewClient(os.Getenv("PIKA_API_KEY")) clip, _ := client.Compose(pika.ComposeRequest{ Generate: pika.GenerateOpts{ Model: "pika-2.5", Prompt: "cinematic shot of a neon street", Duration: "6s", Aspect: "9:16", }, Style: pika.StyleOpts{Preset: "cyberpunk"}, Effects: []pika.Effect{{Type: "pikaffect", Name: "levitate"}}, }) fmt.Println(clip.URL) // → https://cdn.pika.me/clips/abc123.mp4 }
# Compose: generate + style + effect in one POST curl -X POST https://api.pika.me/v1/compose \ -H "Authorization: Bearer $PIKA_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "generate": { "model": "pika-2.5", "prompt": "cinematic shot of a neon street", "duration": "6s", "aspect": "9:16" }, "style": { "preset": "cyberpunk" }, "effects": [{ "type": "pikaffect", "name": "levitate" }] }' # Response includes job_id and status_url for polling. # Or register a webhook for async delivery.
Endpoints

Twelve endpoints. Every Pika tool.

Each endpoint handles one capability — generation, styling, effects, lip-sync, live video. The compose endpoint chains them together when you want a single-request finished clip.

POST /v1/videos

Text-to-Video / Image-to-Video

Core Pika 2.5 generation. Accepts a text prompt, an optional reference image, duration, aspect ratio, and resolution. Returns a job_id and status URL.

Async polling + webhook
Cost 15–40 cr
POST /v1/compose

Full compose chain

Single-request pipeline. Generate + style + effect + sticker overlays in one call. Returns a finished MP4 URL — the simplest entry point for new integrations.

Async polling + webhook
Cost ~80 cr
POST /v1/pikaframes

Long-form Pikaframes

Keyframe-based extended clips up to 25 seconds at 1080p. Supports iterative extension — pass a previous job_id to extend an existing clip.

Async polling + webhook
Cost ~120 cr
POST /v1/pikaformance

Lip-sync & performance

Audio-driven talking-face generation. Accepts a still image plus an audio file. Returns a synced HD performance video — typical render in around six seconds.

Sync ~6s
Cost 3 cr/sec
POST /v1/styles/apply

AI Powers · style preset

Apply a curated style preset to an existing clip. Supports stacking multiple presets for blended looks. Non-destructive — the source is preserved.

Async polling
Cost 15 cr
POST /v1/effects/apply

AI Powers · Pikaffect

Apply a Pikaffect transformation — cake-ify, melt, levitate, crystalize, and 23 more. Returns a re-rendered clip with the effect applied throughout.

Async polling
Cost 15 cr
POST /v1/pikaswaps

Object swap

Replace an object or character in an existing clip while preserving lighting and motion. Provide source video plus the new subject as a prompt or image.

Async polling
Cost 10 cr
POST /v1/pikastream/sessions

PikaStream live video

Open a live PikaStream 1.0 session. Returns a meeting URL and session token. Bills per active minute. Pro plan and above.

Long-running WebRTC
Cost 20 cr/min
GET /v1/jobs/:id

Job status

Poll status of any async render. Returns queued, processing, complete, or failed — plus the output URL once ready and any error details if not.

Sync < 100ms
Cost Free
GET /v1/account/usage

Account & usage

Returns current credit balance, plan tier, billing cycle reset date, and API usage for the current period. Useful for in-product credit displays.

Sync < 100ms
Cost Free
POST /v1/webhooks

Webhooks

Register and manage webhook endpoints for async events — job completion, failure, billing thresholds. Each event is signed with HMAC for verification.

Sync < 100ms
Cost Free
DELETE /v1/clips/:id

Delete clip

Remove a generated clip from Pika storage. Idempotent. Useful for compliance workflows where assets must be deleted after a fixed retention window.

Sync < 200ms
Cost Free
Official SDKs

First-class clients for three stacks.

Type-safe, well-tested, and kept in sync with the API surface. All three SDKs handle authentication, async polling, webhook signature verification, and retries with exponential backoff.

JS

Node.js / TypeScript

First-class TypeScript types for every endpoint. Promise-based async, optional streaming, edge runtime support. Drop into Vercel, Cloudflare Workers, or any Node 18+.

$ npm install @pika/agent-api
v1.4.2 · MIT · ESM + CJS
Py

Python

Python 3.9+ with full type hints, sync and async clients, and Pydantic models for response shapes. Plays clean with Django, FastAPI, Flask, and notebook environments.

$ pip install pika-api
v1.3.7 · MIT · sync + async
Go

Go

Go 1.21+ with idiomatic error handling, context support for cancellation, and zero external dependencies beyond the standard library.

$ go get github.com/pika-labs/pika-go
v1.2.5 · MIT · stdlib only
Authentication

Bearer tokens. Scoped keys. Done right.

Standard Bearer token auth with optional key scoping. Rotate keys without downtime, scope them to specific endpoints, and revoke them instantly from the developer portal.

i

Bearer header

Pass your key as Authorization: Bearer sk-pika-... on every request. HTTPS only — keys sent over plain HTTP are rejected.

ii

Scoped permissions

Generate keys scoped to specific endpoints (read-only, generate-only, no PikaStream, etc.) — useful for sharing keys across teams without exposing your full account.

iii

Webhook signing

Every webhook payload is signed with HMAC-SHA256 using your webhook secret. Verify the X-Pika-Signature header in your handler before trusting any payload.

Async & webhooks

Don't poll. Listen.

For renders that take more than a few seconds, register a webhook URL and Pika will POST when the job is done. Skip polling, save bandwidth, get notified the moment a clip lands.

Receive job completion via signed POST.

When you register a webhook URL on a generation request, Pika delivers a signed POST when the render completes (or fails). The payload includes the job ID, status, the rendered MP4 URL, the credit cost, and any error details if the render failed.

Every webhook is signed with HMAC-SHA256 using your webhook secret. Verify the X-Pika-Signature header against the raw request body before processing — example code is in every SDK and the docs.

Webhooks retry up to five times with exponential backoff if your endpoint returns non-2xx or times out. After five failed attempts, the event is dropped and a delivery-failed alert lands in your developer portal.

{ "event": "video.completed", "job_id": "job_abc123", "created_at": 1717492800, "completed_at": 1717492863, "status": "complete", "output": { "url": "https://cdn.pika.me/clips/abc123.mp4", "duration_sec": 6, "resolution": "1080p", "format": "mp4", "size_bytes": 2847291 }, "billing": { "credits_used": 40, "plan": "pro" } } # Verify signature in your handler: # X-Pika-Signature: sha256=...
Rate limits

Generous by default. Custom on request.

Limits scale with your plan tier. Need higher? Reach out — Fancy plan customers and enterprise users get custom rate ceilings as part of onboarding.

Concurrent jobs
10/ key

Renders running in parallel per API key. Pro plan ceiling. Fancy doubles to 20.

Requests / minute
300/ key

Standard rate. Burst up to 600/min for short windows. Sliding-window throttle.

Job timeout
15min

Max time before a stuck render is force-cancelled. Refunds credits if timeout fires.

Webhook retries
5attempts

Exponential backoff between attempts. Failed deliveries surface in the portal.

What you can ship

Real outputs from the same models.

Three sample videos demonstrating the kinds of output your API integration can produce — the official launch reel, hands-on workflow, and creative VFX patterns from the broader Pika community.

POST /v1/videos

Pika Labs official showcase

The flagship reel demonstrating model range. Every clip in this video can be reproduced through a single POST to the videos endpoint with the right prompt structure.

Pika Labs · YouTube 2:23
POST /v1/compose

Hands-on workflow

Walkthrough of the same iteration loop the API exposes - text-to-video, image-to-video, and Pikaframes long-form, all callable as REST endpoints in your stack.

Tutorial · Community 11:42
POST /v1/effects/apply

Five creative VFX techniques

Pikaffects transformations and stacked AI Powers compose chains. Each technique maps to a specific endpoint — generate, then apply effects, then layer styling.

AI Search · YouTube 14:08
Output samples

Three resolutions, one API surface.

Same endpoint structure across every output tier. The resolution and quality scale with your plan and the parameters you pass on each request.

Use cases

What developers are shipping.

Production patterns where the API adds real lift. The common thread: workflows where a UI doesn't scale and human-in-the-loop generation is too slow.

01

Personalized email video

Newsletter platforms generating a custom video clip per subscriber — name, location, behavior context — all baked into the rendered output before send.

02

Automated ad variants

Marketing teams running thousands of creative variants for A/B testing — different prompts, aspect ratios, and styling across the same product brief.

03

E-commerce product video

Generate a product hero clip from each catalog SKU automatically. Image-to-video plus a brand-consistent style preset, queued nightly.

04

Game cinematics on demand

Indie game studios generating cinematics, intros, and trailer footage at runtime — without the full mocap and rendering pipeline.

05

Custom AI agents

Drop the API into your Openclaw agent or Claude through MCP. Your existing assistant suddenly has access to generation, lip-sync, and live video.

06

Creator tooling

SaaS products built around video creation — meme generators, lip-sync apps, viral content tools. Skip the generation infrastructure entirely.

07

Customer support video

Automated personalized response videos. PikaStream sessions for premium support tiers. Custom mascots delivering policy explanations.

08

Educational platforms

Course platforms generating lesson videos, language practice clips, and animated explainers programmatically — at scale across thousands of learners.

09

Brand mascot at scale

Animate your 2D mascot with new dialogue, new contexts, new product mentions. A single image asset becomes a content engine.

Frequently Asked

Questions, answered.

How do I get an API key? +
Sign in at the Pika developer portal and generate a secret key from the API Keys section. Keys start with the prefix sk-pika-. Store the key in a secure environment variable — Pika treats keys as bearer credentials, so anyone with the key can call the API on your account. Rotate or revoke instantly from the same portal if a key is exposed. Free-tier credits are included so you can start integrating before committing to a paid plan.
Is the API the same as the web app? +
Same models, same outputs. The web app and the API both call the same generation infrastructure under the hood — Pika 2.5, Pikaformance, Pikaframes, AI Powers, PikaStream. The API gives you programmatic access without going through the UI, plus extras like webhooks, scoped keys, and bulk job control that aren't surfaced in the consumer app. Credits draw from the same wallet either way.
What languages have official SDKs? +
Three first-class clients today: Node.js / TypeScript (@pika/agent-api), Python (pika-api), and Go (github.com/pika-labs/pika-go). All three are MIT-licensed and kept in sync with the API surface. For other languages, the REST endpoints work directly — community SDKs for Ruby, PHP, Rust, and Elixir exist on GitHub but aren't officially maintained.
How does billing work for API usage? +
API usage draws from your account's credit balance - the same pool that the web app uses. Different operations cost different numbers of credits (15 for a standard 5-second generation, 120 for a 25-second Pikaframes extension, 20/min for PikaStream). The job response includes the exact credit cost and your remaining balance. For high-volume use, top up with token packs or upgrade to Fancy plan for higher monthly allowances. Custom enterprise pricing available for very high volume.
What happens if I hit a rate limit? +
The API returns HTTP 429 with a Retry-After header indicating when to retry. The official SDKs handle this automatically with exponential backoff. Concurrent job limits are separate from request limits — if you hit the concurrency ceiling (10 on Pro, 20 on Fancy), new generation requests are queued rather than rejected. For burst capacity beyond the standard ceiling, contact the team to discuss enterprise rate limits.
How long do generated clips stay on Pika's CDN? +
Generated clip URLs are stored on the Pika CDN for 30 days by default. After that they're archived but recoverable for another 60 days through a status endpoint. After 90 days total, clips are permanently deleted. For compliance-sensitive workflows, you can DELETE a clip immediately via the API (idempotent, no charge). For longer retention, copy the MP4 to your own storage shortly after generation completes.
Can I use the API for client work? +
Yes — all paid plans (Standard, Pro, Fancy) include commercial usage rights for outputs, including those generated through the API. You can resell, license, and use API outputs in client deliverables, ads, and monetized content. AI provenance metadata is preserved on every export. Free-tier API access is for development and testing only — production client work requires at least a Standard plan.
Are webhooks reliable? +
Webhook delivery is at-least-once with up to five retries on failure (non-2xx responses or timeouts) using exponential backoff. Each event includes a unique event ID, so handle idempotency on your end — the same event ID may arrive twice in rare cases. Failed deliveries after five attempts surface as alerts in the developer portal. Polling the job status endpoint as a fallback is recommended for critical workflows.
What's the API uptime SLA? +
Standard and Pro plan API access runs on the same infrastructure as the consumer app — no formal SLA, but historical uptime has been strong. Fancy plan customers get a contractual 99.9% monthly uptime SLA on the API surface, with credit refunds for any qualifying outage. Enterprise customers can negotiate higher SLAs as part of custom contracts. The status page at status.pika.me shows real-time platform health.
Is there an OpenAPI spec? +
Yes. The full OpenAPI 3.1 specification is published at the developer portal and updated with every API release. You can use it to generate clients in any language, drive automated testing, or import into tools like Postman and Insomnia. The spec is the source of truth for endpoint shapes — the official SDKs are generated from it.
Does the API work with AI agents? +
Yes — explicitly designed for it. The API was built with autonomous AI workflows in mind. Drop your key into a Claude integration through MCP, an Openclaw agent, or any custom runtime, and your agent gains generation, lip-sync, styling, effects, and live video as primitive capabilities. The MCP server URL is published at the developer portal, and selected skills are open-sourced through the Pika-Skills GitHub repository for self-hosting and customization.
How do I report a bug or get help? +
Three channels. The Pika Discord has a dedicated developers channel where the team and community regularly help each other. The developer portal has a support form for bug reports — include your job IDs and timestamps so the team can investigate. For Pro and Fancy plan users, email support at the developer support address gets priority routing. Critical platform incidents are tracked publicly on the status page.
Start building

Get your API key in 30 seconds.

Free tier credits to test the integration. Three SDK languages first-class. Twelve endpoints covering every Pika tool. Webhook-first async. Drop in, ship.