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.

/models/quick-start
Get an API key

Create an API key

dashboard

01

Sign in

Open the dashboard with your Pika API account.

Open dashboard
02

Create a key

Go to API Keys and create a key for the project or environment you are integrating.

Manage keys
03

Explore models

Browse video, image, audio, music, and 3D models to find exact endpoints, parameters, and pricing.

See all models

Make a request

Store your key in an environment variable, then create a generation. Successful media requests return a job id and status.

request
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.

poll
curl https://089e99349ace.pikalabs.app/v1/media/jobs/{request_id} \
-H "X-API-Key: YOUR_API_KEY"
download
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.

upload
# 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.

SurfaceEndpointDelivery
SubmitPOST /v1/media/{vendor}/{model}/{function}Async job
PollGET /v1/media/jobs/{request_id}Job envelope
ContentGET /v1/media/jobs/{request_id}/contentResult URL
UploadPOST /v1/media/uploadsPresigned URL
CatalogGET /catalog/apisPublic model list