Pika API · Guide
Quick Start
Use one Pika API key to call video, image, audio, music, and 3D models through concrete REST media endpoints. Start with a single request, then open a model page for exact parameters, response shapes, uploads, and pricing.
Create an API key
dashboard
Sign in
Open the dashboard with your Pika API account.
Create a key
Go to API Keys and create a key for the project or environment you are integrating.
Explore models
Browse video, image, audio, music, and 3D models to find exact endpoints, parameters, and pricing.
Make a request
Store your key in an environment variable, then create a generation. Successful media requests return a job id and status.
curl -X POST https://089e99349ace.pikalabs.app/v1/media/pika/pika-2.5/text-to-video \-H "X-API-Key: YOUR_API_KEY" \-H "Content-Type: application/json" \-d '{"resolution": "720p","duration_s": 5,"prompt": "A surreal high-fashion full-figure portrait of a striking model with short cropped spiky black hair, seated on the mossy overgrown limbs of a twisting sculptural branch in a mountain meadow under a vivid blue sky with puffy white clouds. She wears a chartreuse-green knit mini turtleness dress with matching long gloves, layered pearl necklaces, tall white knee socks and silver heeled shoes. Around her float oversized felted-wool flowers in coral, salmon and dusty pink on thorned vines. Clear silhouette, editorial and painterly, saturated and dreamlike. Warm analog film grade, lifted milky blacks, pigmented (not neon) midtones, fine 35mm grain and halation, premium retro-futurist creative-studio look. Square 1:1 composition. No text, no logos, no wordmarks, no watermarks."}'
Poll async jobs
queued → completed
Media generations are asynchronous. Continue polling until status is completed or failed, then fetch the result URL from the content endpoint.
curl https://089e99349ace.pikalabs.app/v1/media/jobs/{request_id} \-H "X-API-Key: YOUR_API_KEY"
curl https://089e99349ace.pikalabs.app/v1/media/jobs/{request_id}/content \-H "X-API-Key: YOUR_API_KEY"
- Use HTTPS and JSON for REST calls.
- Send X-API-Key: YOUR_API_KEY.
- Use the concrete /v1/media/{api_id} endpoint from the model page.
- Upload local files to a hosted URL before passing them as inputs.
Upload reference media
images, audio, video
Media inputs accept any public URL. To use a local file, request a presigned upload URL, PUT the file to it, then pass the returned url into fields such as image or image_urls.
# 1. Request a presigned upload URL. Send the file's content# type and its exact size in bytes.curl -X POST https://089e99349ace.pikalabs.app/v1/media/uploads \-H "X-API-Key: YOUR_API_KEY" \-H "Content-Type: application/json" \-d '{"content_type": "image/png", "size_bytes": 12345}'# The response returns two URLs:# upload_url: a temporary URL to upload the file to. Expires in 5 minutes.# url: the permanent Pika URL. Pass it to the model as the input.# {# "upload_url": "https://upload.r2.pika.art/...?X-Amz-Signature=...",# "url": "https://cdn.pika.art/v2/media/uploads/org_abc/9f8e7d.png"# }# 2. Upload the file to upload_url, then pass url to the model.curl -X PUT "<upload_url>" \-H "Content-Type: image/png" \--data-binary @input.png
Core surfaces
choose a model
Each model page shows the exact endpoint, request parameters, response shape, sample code, and pricing for that model.
| Surface | Endpoint | Delivery |
|---|---|---|
| Submit | POST /v1/media/{vendor}/{model}/{function} | Async job |
| Poll | GET /v1/media/jobs/{request_id} | Job envelope |
| Content | GET /v1/media/jobs/{request_id}/content | Result URL |
| Upload | POST /v1/media/uploads | Presigned URL |
| Catalog | GET /catalog/apis | Public model list |