# Pika Video API

> Provider: **Pika Labs**
> Source: https://www.pixazo.ai/models/pika

Pika 2.2 — text-to-video, image-to-video, and Pika Scenes (multi-image reference) video generation by Pika Labs.

## Pika 2.2

### Text to Video

## Base URL

```
https://gateway.pixazo.ai/pika-2-2-text-to-video/v1
```

## Authentication

All requests require an API key passed via header.

Header

Type

Required

Description

Ocp-Apim-Subscription-Key

string

Yes

Your API subscription key

## Pika 2.2 (Text to Video) generate request - Pika 2.2 (Text to Video)

## Request Code

HTTP Python JavaScript cURL

```
POST https://gateway.pixazo.ai/pika-2-2-text-to-video/v1/pika-2-2-text-to-video-request
Content-Type: application/json
Cache-Control: no-cache
Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY

{
  "prompt": "A large elegant white poodle on the deck of a yacht wearing oversized sunglasses, glossy magazine style, slow camera orbit"
}
```

```
import requests

url = "https://gateway.pixazo.ai/pika-2-2-text-to-video/v1/pika-2-2-text-to-video-request"
headers = {
    "Content-Type": "application/json",
    "Cache-Control": "no-cache",
    "Ocp-Apim-Subscription-Key": "YOUR_SUBSCRIPTION_KEY"
}
data = {
    "prompt": "A large elegant white poodle on the deck of a yacht wearing oversized sunglasses, glossy magazine style, slow camera orbit"
}

response = requests.post(url, json=data, headers=headers)
print(response.json())
```

```
const url = 'https://gateway.pixazo.ai/pika-2-2-text-to-video/v1/pika-2-2-text-to-video-request';

const headers = {
  'Content-Type': 'application/json',
  'Cache-Control': 'no-cache',
  'Ocp-Apim-Subscription-Key': 'YOUR_SUBSCRIPTION_KEY'
};

const data = {
  prompt: 'A large elegant white poodle on the deck of a yacht wearing oversized sunglasses, glossy magazine style, slow camera orbit'
};

fetch(url, {
  method: 'POST',
  headers: headers,
  body: JSON.stringify(data)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
```

```
curl -X POST "https://gateway.pixazo.ai/pika-2-2-text-to-video/v1/pika-2-2-text-to-video-request" \
  -H "Content-Type: application/json" \
  -H "Cache-Control: no-cache" \
  -H "Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY" \
  --data-raw '{
    "prompt": "A large elegant white poodle on the deck of a yacht wearing oversized sunglasses, glossy magazine style, slow camera orbit"
  }'
```

## Output

```
{
  "video": {
    "file_size": 14530500,
    "file_name": "output.mp4",
    "content_type": "application/octet-stream",
    "url": "[RESPONSE_URL]"
  }
}
```

[Try Now](https://api.pixazo.ai/api-details#api=pika-2-2-text-to-video&operation=pika-2-2-text-to-video-request)

## Request Parameters - Pika 2.2 (Text to Video) generate request

Parameter

Required

Type

Default

Allowed values / range

Description

prompt

Yes

string

—

—

Text description of the desired video. Be specific for best results.

seed

No

integer

—

—

Optional integer to control randomness for reproducible outputs.

negative\_prompt

No

string

ugly, bad, terrible

—

Text describing undesired elements to avoid. Helps refine output quality.

aspect\_ratio

No

enum

16:9

16:9, 9:16, 1:1, 4:5, 5:4, 3:2, 2:3

Video aspect ratio. Allowed values: 16:9, 9:16, 1:1, 4:5, 5:4, 3:2, 2:3.

resolution

No

enum

720p

720p, 1080p

Output video resolution. Allowed values: 720p, 1080p.

duration

No

enum

5

5, 10

Duration of the generated video in seconds. Allowed values: 5, 10.

## Minimum Request

```
{
  "prompt": "A large elegant white poodle on the deck of a yacht wearing oversized sunglasses, glossy magazine style, slow camera orbit"
}
```

## Full Request (all options)

```
{
  "prompt": "A large elegant white poodle on the deck of a yacht wearing oversized sunglasses, glossy magazine style, slow camera orbit",
  "seed": 42,
  "negative_prompt": "ugly, bad, terrible",
  "aspect_ratio": "16:9",
  "resolution": "1080p",
  "duration": 5
}
```

## Response

```
{
  "request_id": "pika-2-2-text-to-video_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "QUEUED",
  "polling_url": "https://gateway.pixazo.ai/v2/requests/status/pika-2-2-text-to-video_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
```

## Response Fields - Pika 2.2 (Text to Video) generate request

Field

Type

Description

request\_id

string

Unique identifier for tracking the video generation request.

status

string

Current status of the request (e.g., QUEUED, PROCESSING).

polling\_url

string

URL to check the status of the request for result retrieval.

## Request Headers

Header

Value

Content-Type

application/json

Cache-Control

no-cache

Ocp-Apim-Subscription-Key

Your subscription key

## Response Handling

Common status codes for Pika 2.2 (Text to Video) generate request.

Code

Meaning

200

Success

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found

429

Too Many Requests

500

Internal Server Error

## Error Responses

### 400 Validation Error

```
{
  "error": "Missing required field: prompt"
}
```

### 401 Unauthorized

```
{
  "error": "Invalid or missing subscription key"
}
```

## Status Values

Status

Description

QUEUED

Request accepted, waiting to be processed

PROCESSING

Being processed by the model

COMPLETED

Done — output contains the result

FAILED

Failed — check error field for details

ERROR

System error — request was not processed and not charged

## Status Flow

```
Submit Request → QUEUED → PROCESSING → COMPLETED
                            ↘ FAILED
                            ↘ ERROR
```

## Typical Workflow

1.  Submit request to /pika-2-2-text-to-video-request endpoint
2.  Receive response with request\_id
3.  Poll /v2/requests/status/{request\_id} every 2–3 seconds
4.  When status is COMPLETED, use the media\_url in response
5.  Handle FAILED or ERROR statuses by retrying or adjusting prompts

## Pika 2.2 (Text to Video) check status - Pika 2.2 (Text to Video)

## Request Code

HTTP Python JavaScript cURL

```
POST https://gateway.pixazo.ai/v2/requests/status/pika-2-2-text-to-video_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY

{
  "request_id": "pika-2-2-text-to-video_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
```

```
import requests

url = "https://gateway.pixazo.ai/v2/requests/status/pika-2-2-text-to-video_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
headers = {
    "Ocp-Apim-Subscription-Key": "YOUR_SUBSCRIPTION_KEY"
}
data = {
    "request_id": "pika-2-2-text-to-video_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}

response = requests.post(url, json=data, headers=headers)
print(response.json())
```

```
const url = 'https://gateway.pixazo.ai/v2/requests/status/pika-2-2-text-to-video_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx';

const headers = {
  'Ocp-Apim-Subscription-Key': 'YOUR_SUBSCRIPTION_KEY'
};

const data = {
  request_id: 'pika-2-2-text-to-video_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
};

fetch(url, {
  method: 'POST',
  headers: headers,
  body: JSON.stringify(data)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
```

```
curl -X POST "https://gateway.pixazo.ai/v2/requests/status/pika-2-2-text-to-video_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" \
  -H "Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY" \
  --data-raw '{
    "request_id": "pika-2-2-text-to-video_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
  }'
```

## Output

```
{
  "video": {
    "file_size": 14530500,
    "file_name": "output.mp4",
    "content_type": "application/octet-stream",
    "url": "[RESPONSE_URL]"
  }
}
```

[Try Now](https://api.pixazo.ai/api-details#api=pika-2-2-text-to-video&operation=pika-2-2-text-to-video-request-result)

## Request Parameters - Pika 2.2 (Text to Video) check status

Parameter

Required

Type

Default

Allowed values / range

Description

request\_id

Yes

string

—

—

Unique identifier returned from the initial request to check status.

## Minimum Request

```
{
  "request_id": "pika-2-2-text-to-video_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
```

## Full Request (all options)

```
{
  "request_id": "pika-2-2-text-to-video_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
```

## Response

```
{
  "request_id": "pika-2-2-text-to-video_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "COMPLETED",
  "model_id": "pika-2-2-text-to-video",
  "error": null,
  "output": {
    "media_url": ["https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/pika-2-2-text-to-video_019dxxxx/output.mp4"],
    "media_type": "video/mp4"
  },
  "created_at": "2026-03-31T10:00:00.000Z",
  "updated_at": "2026-03-31T10:00:45.000Z",
  "completed_at": "2026-03-31T10:00:45.000Z"
}
```

## Response Fields - Pika 2.2 (Text to Video) check status

Field

Type

Description

request\_id

string

Unique identifier for tracking the video generation request.

status

string

Current status of the request (e.g., COMPLETED, FAILED).

model\_id

string

Identifier of the model used for generation.

error

string/null

Error message if status is FAILED or ERROR; null otherwise.

output.media\_url

array

Array containing the URL to the generated video file.

output.media\_type

string

MIME type of the output media (e.g., video/mp4).

created\_at

string

Timestamp when the request was created.

updated\_at

string

Timestamp when the request was last updated.

completed\_at

string

Timestamp when the request was completed.

## Request Headers

Header

Value

Ocp-Apim-Subscription-Key

Your subscription key

## Response Handling

Common status codes for Pika 2.2 (Text to Video) check status.

Code

Meaning

200

Success

400

Bad Request (invalid request\_id)

401

Unauthorized

403

Forbidden

404

Not Found (request\_id not found)

429

Too Many Requests

500

Internal Server Error

## Notes & Tips

-   Poll the status endpoint every 2–3 seconds until COMPLETED, FAILED, or ERROR.
-   Implement exponential backoff for retry logic on ERROR or 500 responses.
-   Use detailed, vivid prompts with style and motion cues (e.g., “slow camera orbit”, “glossy magazine style”).
-   Use negative\_prompt to exclude unwanted elements like blur, distortion, or artifacts.
-   For consistent results across generations, specify a fixed seed value.
-   Prefer 1080p resolution for professional use, but use 720p for faster turnaround.
-   Video generation typically takes 30–90 seconds depending on complexity and server load.
-   Failed requests are not charged; only completed requests incur costs.

### Image to Video

## Base URL

```
https://gateway.pixazo.ai/pika-2-2-image-to-video/v1
```

## Authentication

All requests require an API key passed via header.

Header

Type

Required

Description

Ocp-Apim-Subscription-Key

string

Yes

Your API subscription key

## Pika 2.2 (Image to Video) generate request - Pika 2.2 (Image to Video)

## Request Code

HTTP Python JavaScript cURL

```
POST https://gateway.pixazo.ai/pika-2-2-image-to-video/v1/pika-2-2-image-to-video-request
Content-Type: application/json
Cache-Control: no-cache
Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY

{
  "image_url": "https://example.com/example_inputs/pika/pika_i2v_v22_input.png",
  "prompt": "The man and the horse are slowly walking towards the camera, the camera orbits and dolly out"
}
```

```
import requests

url = "https://gateway.pixazo.ai/pika-2-2-image-to-video/v1/pika-2-2-image-to-video-request"
headers = {
    "Content-Type": "application/json",
    "Cache-Control": "no-cache",
    "Ocp-Apim-Subscription-Key": "YOUR_SUBSCRIPTION_KEY"
}
data = {
    "image_url": "https://example.com/example_inputs/pika/pika_i2v_v22_input.png",
    "prompt": "The man and the horse are slowly walking towards the camera, the camera orbits and dolly out"
}

response = requests.post(url, json=data, headers=headers)
print(response.json())
```

```
const url = "https://gateway.pixazo.ai/pika-2-2-image-to-video/v1/pika-2-2-image-to-video-request";
const headers = {
  "Content-Type": "application/json",
  "Cache-Control": "no-cache",
  "Ocp-Apim-Subscription-Key": "YOUR_SUBSCRIPTION_KEY"
};
const data = {
  image_url: "https://example.com/example_inputs/pika/pika_i2v_v22_input.png",
  prompt: "The man and the horse are slowly walking towards the camera, the camera orbits and dolly out"
};

fetch(url, {
  method: "POST",
  headers: headers,
  body: JSON.stringify(data)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error("Error:", error));
```

```
curl -X POST "https://gateway.pixazo.ai/pika-2-2-image-to-video/v1/pika-2-2-image-to-video-request" \
  -H "Content-Type: application/json" \
  -H "Cache-Control: no-cache" \
  -H "Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY" \
  --data-raw '{
    "image_url": "https://example.com/example_inputs/pika/pika_i2v_v22_input.png",
    "prompt": "The man and the horse are slowly walking towards the camera, the camera orbits and dolly out"
  }'
```

## Output

```
{
  "video": {
    "file_size": 14530500,
    "file_name": "output.mp4",
    "content_type": "application/octet-stream",
    "url": "[RESPONSE_URL]"
  }
}
```

[Try Now](https://api.pixazo.ai/api-details#api=pika-2-2-image-to-video&operation=pika-2-2-image-to-video-request)

## Request Parameters - Pika 2.2 (Image to Video) generate request

Parameter

Required

Type

Default

Allowed values / range

Description

image\_url

Yes

string

—

—

URL of the image to use as the first frame. Must be publicly accessible.

prompt

Yes

string

—

—

Text prompt describing the desired motion. Be specific about camera movement, subject action, and environmental details.

seed

No

integer

—

—

Seed for reproducibility. Use the same seed to generate identical results from the same input.

negative\_prompt

No

string

""

—

A negative prompt to guide the model away from undesired elements. Example: "blurry, low quality, distorted limbs".

resolution

No

enum

720p

—

Output video resolution. Allowed: 720p, 1080p.

duration

No

enum

5

—

Duration of the generated video in seconds. Allowed: 5, 10.

## Minimum Request

```
{
  "image_url": "https://example.com/example_inputs/pika/pika_i2v_v22_input.png",
  "prompt": "The man and the horse are slowly walking towards the camera, the camera orbits and dolly out"
}
```

## Full Request (all options)

```
{
  "image_url": "https://example.com/example_inputs/pika/pika_i2v_v22_input.png",
  "prompt": "The man and the horse are slowly walking towards the camera, the camera orbits and dolly out",
  "seed": 42,
  "negative_prompt": "blurry, low quality, distorted limbs",
  "resolution": "1080p",
  "duration": 5
}
```

## Response

```
{
  "request_id": "pika-2-2-image-to-video_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "QUEUED",
  "polling_url": "https://gateway.pixazo.ai/v2/requests/status/pika-2-2-image-to-video_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
```

## Response Fields - Pika 2.2 (Image to Video) generate request

Field

Type

Description

request\_id

string

Unique identifier for the generated request.

status

string

Current status of the request (e.g., QUEUED, PROCESSING).

polling\_url

string

URL to use for checking the status of the request.

## Request Headers

Header

Value

Content-Type

application/json

Cache-Control

no-cache

Ocp-Apim-Subscription-Key

Your subscription key

## Response Handling

Common status codes for Pika 2.2 (Image to Video) generate request.

Code

Meaning

200

Success

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found

429

Too Many Requests

500

Internal Server Error

## Error Responses

### 400 Validation Error

```
{
  "error": "Missing required parameter: image_url"
}
```

### 404 Not Found

```
{
  "error": "Endpoint not found"
}
```

## Status Values

Status

Description

QUEUED

Request accepted, waiting to be processed

PROCESSING

Being processed by the model

COMPLETED

Done — output contains the result

FAILED

Failed — check error field for details

ERROR

System error — request was not processed and will not be charged

### Status Flow

QUEUED → PROCESSING → (COMPLETED | FAILED)

### Typical Workflow

1.  Submit request to /pika-2-2-image-to-video-request
2.  Receive request\_id in response
3.  Poll /v2/requests/status/{request\_id} every 2-3 seconds
4.  Once status is COMPLETED, retrieve video from output.media\_url

## Pika 2.2 (Image to Video) check status - Pika 2.2 (Image to Video)

## Request Code

HTTP Python JavaScript cURL

```
POST https://gateway.pixazo.ai/v2/requests/status/pika-2-2-image-to-video_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY

{
  "request_id": "pika-2-2-image-to-video_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
```

```
import requests

url = "https://gateway.pixazo.ai/v2/requests/status/pika-2-2-image-to-video_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
headers = {
    "Ocp-Apim-Subscription-Key": "YOUR_SUBSCRIPTION_KEY"
}
data = {
    "request_id": "pika-2-2-image-to-video_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}

response = requests.post(url, json=data, headers=headers)
print(response.json())
```

```
const url = "https://gateway.pixazo.ai/v2/requests/status/pika-2-2-image-to-video_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx";
const headers = {
  "Ocp-Apim-Subscription-Key": "YOUR_SUBSCRIPTION_KEY"
};
const data = {
  request_id: "pika-2-2-image-to-video_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
};

fetch(url, {
  method: "POST",
  headers: headers,
  body: JSON.stringify(data)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error("Error:", error));
```

```
curl -X POST "https://gateway.pixazo.ai/v2/requests/status/pika-2-2-image-to-video_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" \
  -H "Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY" \
  --data-raw '{
    "request_id": "pika-2-2-image-to-video_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
  }'
```

## Output

```
{
  "video": {
    "file_size": 14530500,
    "file_name": "output.mp4",
    "content_type": "application/octet-stream",
    "url": "[RESPONSE_URL]"
  }
}
```

[Try Now](https://api.pixazo.ai/api-details#api=pika-2-2-image-to-video&operation=pika-2-2-image-to-video-request-result)

## Request Parameters - Pika 2.2 (Image to Video) check status

Parameter

Required

Type

Default

Allowed values / range

Description

request\_id

Yes

string

—

—

Unique identifier of the request from the initial submission.

## Minimum Request

```
{
  "request_id": "pika-2-2-image-to-video_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
```

## Full Request (all options)

```
{
  "request_id": "pika-2-2-image-to-video_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
```

## Response

```
{
  "request_id": "pika-2-2-image-to-video_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "COMPLETED",
  "model_id": "pika-2-2-image-to-video",
  "error": null,
  "output": {
    "media_url": [
      "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/pika-2-2-image-to-video_019dxxxx/output.mp4"
    ],
    "media_type": "video/mp4"
  },
  "created_at": "2026-03-31T10:00:00.000Z",
  "updated_at": "2026-03-31T10:01:45.000Z",
  "completed_at": "2026-03-31T10:01:45.000Z"
}
```

## Response Fields - Pika 2.2 (Image to Video) check status

Field

Type

Description

request\_id

string

Unique identifier for the generated request.

status

string

Current status of the request (e.g., COMPLETED).

model\_id

string

Model used to generate the video.

error

string or null

Error message if the request failed, otherwise null.

output.media\_url

string array

Array of URLs pointing to the generated video file.

output.media\_type

string

MIME type of the generated media (e.g., video/mp4).

## Request Headers

Header

Value

Ocp-Apim-Subscription-Key

Your subscription key

## Response Handling

Common status codes for Pika 2.2 (Image to Video) check status.

Code

Meaning

200

Success

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found

429

Too Many Requests

500

Internal Server Error

## Notes & Tips

-   Poll the status endpoint every 2–3 seconds until COMPLETED or FAILED.
-   Implement exponential backoff for retry logic on ERROR or 500 responses.
-   Use detailed, cinematic prompts for best motion control (e.g., "camera slowly zooms in while the subject turns slowly").
-   Test with lower resolution (720p) first to optimize prompts before generating 1080p.
-   Always validate that image\_url is publicly accessible and uses HTTPS.

### Reference to Video (Ref Images to Video)

## Base URL

```
https://gateway.pixazo.ai/pika-scenes-2-2/v1
```

## Authentication

All requests require an API key passed via header.

Header

Type

Required

Description

Ocp-Apim-Subscription-Key

string

Yes

Your API subscription key

## Pika Scenes 2.2 generate request - Pika Scenes 2.2

## Request Code

HTTP Python JavaScript cURL

```
POST https://gateway.pixazo.ai/pika-scenes-2-2/v1/pika-scenes-2-2-request
Content-Type: application/json
Cache-Control: no-cache
Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY

{
  "image_urls": [
    "https://example.com/example_inputs/pika/pika_scenes/a.png"
  ],
  "prompt": "A cinematic scene with smooth motion"
}
```

```
import requests

url = "https://gateway.pixazo.ai/pika-scenes-2-2/v1/pika-scenes-2-2-request"
headers = {
    "Content-Type": "application/json",
    "Cache-Control": "no-cache",
    "Ocp-Apim-Subscription-Key": "YOUR_SUBSCRIPTION_KEY"
}
data = {
    "image_urls": ["https://example.com/example_inputs/pika/pika_scenes/a.png"],
    "prompt": "A cinematic scene with smooth motion"
}

response = requests.post(url, json=data, headers=headers)
print(response.json())
```

```
const url = 'https://gateway.pixazo.ai/pika-scenes-2-2/v1/pika-scenes-2-2-request';

const headers = {
  'Content-Type': 'application/json',
  'Cache-Control': 'no-cache',
  'Ocp-Apim-Subscription-Key': 'YOUR_SUBSCRIPTION_KEY'
};

const data = {
  image_urls: ['https://example.com/example_inputs/pika/pika_scenes/a.png'],
  prompt: 'A cinematic scene with smooth motion'
};

fetch(url, {
  method: 'POST',
  headers: headers,
  body: JSON.stringify(data)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
```

```
curl -X POST "https://gateway.pixazo.ai/pika-scenes-2-2/v1/pika-scenes-2-2-request" \
  -H "Content-Type: application/json" \
  -H "Cache-Control: no-cache" \
  -H "Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY" \
  --data-raw '{
    "image_urls": [
      "https://example.com/example_inputs/pika/pika_scenes/a.png"
    ],
    "prompt": "A cinematic scene with smooth motion"
  }'
```

## Output

```
{
  "video": {
    "file_size": 14530500,
    "file_name": "output.mp4",
    "content_type": "application/octet-stream",
    "url": "[RESPONSE_URL]"
  }
}
```

[Try Now](https://api.pixazo.ai/api-details#api=pika-scenes-2-2&operation=pika-scenes-2-2-request)

## Request Parameters - Pika Scenes 2.2 generate request

Parameter

Required

Type

Default

Allowed values / range

Description

image\_urls

Yes

string\[\]

—

—

Array of HTTP/HTTPS URLs pointing to input images to be combined into a video. Must contain at least one image.

prompt

Yes

string

—

—

Text prompt describing the desired video motion, scene, and style. Must be detailed for best results.

negative\_prompt

No

string

"ugly, bad, terrible"

—

Text prompt specifying undesired elements to avoid. Helps guide the model away from low-quality or irrelevant outputs.

seed

No

integer

—

—

Optional integer seed for reproducible results. Using the same seed with identical inputs produces the same output.

aspect\_ratio

No

enum

"16:9"

16:9, 9:16, 1:1, 4:5, 5:4, 3:2, 2:3

Aspect ratio of the output video. Allowed values: 16:9, 9:16, 1:1, 4:5, 5:4, 3:2, 2:3.

resolution

No

enum

"1080p"

720p, 1080p

Output video resolution. Allowed values: 720p, 1080p.

duration

No

enum

5

5, 10

Duration of the output video in seconds. Allowed values: 5, 10.

ingredients\_mode

No

enum

"precise"

—

Control over how input images are interpreted. precise maintains exact object placement and motion; creative allows more imaginative interpretation and motion variation.

## Minimum Request

```
{
  "image_urls": [
    "https://example.com/example_inputs/pika/pika_scenes/a.png"
  ],
  "prompt": "A cinematic scene with smooth motion"
}
```

## Full Request (all options)

```
{
  "image_urls": [
    "https://example.com/example_inputs/pika/pika_scenes/a.png",
    "https://example.com/example_inputs/pika/pika_scenes/b.png",
    "https://example.com/example_inputs/pika/pika_scenes/c.png"
  ],
  "prompt": "The gorilla is wearing the coat and sitting in the living room, cinematic scene, camera orbit and dolly out",
  "negative_prompt": "ugly, bad, terrible",
  "seed": 42,
  "aspect_ratio": "16:9",
  "resolution": "1080p",
  "duration": 5,
  "ingredients_mode": "precise"
}
```

## Response

```
{
  "request_id": "pika-scenes-2-2_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "QUEUED",
  "polling_url": "https://gateway.pixazo.ai/v2/requests/status/pika-scenes-2-2_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
```

## Response Fields - Pika Scenes 2.2 generate request

Field

Type

Description

request\_id

string

Unique identifier for the request used to poll for results.

status

string

Current status of the request (QUEUED, PROCESSING, etc.).

polling\_url

string

URL to use for checking the status of the request.

## Request Headers

Header

Value

Content-Type

application/json

Cache-Control

no-cache

Ocp-Apim-Subscription-Key

Your API subscription key

## Response Handling

Common status codes for Pika Scenes 2.2 generate request.

Code

Meaning

200

Success

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found

429

Too Many Requests

500

Internal Server Error

## Error Responses

### 401 Unauthorized

```
{
  "error": "Unauthorized",
  "message": "Invalid or missing Ocp-Apim-Subscription-Key header"
}
```

### 400 Bad Request

```
{
  "error": "Bad Request",
  "message": "Required parameter 'prompt' is missing",
  "details": [
    {
      "field": "image_urls",
      "message": "Array must contain at least one URL"
    }
  ]
}
```

## Status Values

Status

Description

QUEUED

Request accepted, waiting to be processed

PROCESSING

Being processed by the model

COMPLETED

Done — output contains the result

FAILED

Failed — check error field for details

ERROR

System error occurred — request was not processed and will not be charged

## Status Flow

```
Submitted → QUEUED → PROCESSING → COMPLETED
                          ↘ FAILED
                          ↘ ERROR
```

## Typical Workflow

1.  Submit request to /pika-scenes-2-2-request endpoint.
2.  Receive response with request\_id.
3.  Poll status endpoint every 2–5 seconds using request\_id.
4.  When status is COMPLETED, extract video URL from output.
5.  For FAILED or ERROR, check error details and retry or adjust input.

## Pika Scenes 2.2 check status - Pika Scenes 2.2

## Request Code

HTTP Python JavaScript cURL

```
POST https://gateway.pixazo.ai/v2/requests/status/pika-scenes-2-2_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY

{
  "request_id": "pika-scenes-2-2_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
```

```
import requests

url = "https://gateway.pixazo.ai/v2/requests/status/pika-scenes-2-2_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
headers = {
    "Ocp-Apim-Subscription-Key": "YOUR_SUBSCRIPTION_KEY"
}
data = {
    "request_id": "pika-scenes-2-2_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}

response = requests.post(url, json=data, headers=headers)
print(response.json())
```

```
const url = 'https://gateway.pixazo.ai/v2/requests/status/pika-scenes-2-2_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx';

const headers = {
  'Ocp-Apim-Subscription-Key': 'YOUR_SUBSCRIPTION_KEY'
};

const data = {
  request_id: 'pika-scenes-2-2_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
};

fetch(url, {
  method: 'POST',
  headers: headers,
  body: JSON.stringify(data)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
```

```
curl -X POST "https://gateway.pixazo.ai/v2/requests/status/pika-scenes-2-2_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" \
  -H "Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY" \
  --data-raw '{
    "request_id": "pika-scenes-2-2_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
  }'
```

## Output

```
{
  "video": {
    "file_size": 14530500,
    "file_name": "output.mp4",
    "content_type": "application/octet-stream",
    "url": "[RESPONSE_URL]"
  }
}
```

[Try Now](https://api.pixazo.ai/api-details#api=pika-scenes-2-2&operation=pika-scenes-2-2-request-result)

## Request Parameters - Pika Scenes 2.2 check status

Parameter

Required

Type

Default

Allowed values / range

Description

request\_id

Yes

string

—

—

The unique request\_id returned from the initial submission.

## Minimum Request

```
{
  "request_id": "pika-scenes-2-2_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
```

## Full Request (all options)

```
{
  "request_id": "pika-scenes-2-2_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
```

## Response

```
{
  "request_id": "pika-scenes-2-2_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "COMPLETED",
  "model_id": "pika-scenes-2-2",
  "error": null,
  "output": {
    "media_url": [
      "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/pika-scenes-2-2_019dxxxx/output.mp4"
    ],
    "media_type": "video/mp4"
  },
  "created_at": "2026-03-31T10:00:00.000Z",
  "updated_at": "2026-03-31T10:00:45.000Z",
  "completed_at": "2026-03-31T10:00:45.000Z"
}
```

## Response Fields - Pika Scenes 2.2 check status

Field

Type

Description

request\_id

string

The unique identifier for the request.

status

string

Current status: QUEUED, PROCESSING, COMPLETED, FAILED, ERROR.

model\_id

string

The model used to generate the video.

error

null | string

Details of error if status is FAILED or ERROR.

output.media\_url

string\[\]

Array of URLs to the generated video files.

output.media\_type

string

Media type of output (e.g., video/mp4).

created\_at

string

Timestamp when the request was created.

updated\_at

string

Timestamp when the request was last updated.

completed\_at

string

Timestamp when the request was completed.

## Request Headers

Header

Value

Ocp-Apim-Subscription-Key

Your API subscription key

## Response Handling

Common status codes for Pika Scenes 2.2 check status.

Code

Meaning

200

Success

400

Bad Request

401

Unauthorized

404

Not Found

429

Too Many Requests

500

Internal Server Error

## Notes & Tips

-   Poll the status endpoint every 2–5 seconds until status is COMPLETED, FAILED, or ERROR.
-   Use exponential backoff when retrying after ERROR or 500 responses.
-   Use detailed prompts describing motion, lighting, camera movement, and mood for best results.
-   Specify a seed value for reproducible outputs across runs.
-   Use precise mode for object fidelity; creative mode for artistic interpretations.
-   Ensure image URLs are publicly accessible and use HTTPS.
-   Processing time varies based on video duration and complexity — typically 30–120 seconds.
-   The maximum video duration is 10 seconds and maximum resolution is 1080p.
-   Each request consumes credits based on video duration and resolution.
