# Runway Gen-4.5 API

> Provider: **Runway**
> Source: https://www.pixazo.ai/models/runway

Runway Gen-4.5 API for professional AI video generation by Runway.

## Runway Gen-4.5

### Image to Video

## Base URL

```
https://gateway.pixazo.ai/runway-gen-4-5/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

## Video Generation Request - Runway gen-4.5

## Request Code

HTTP Python JavaScript cURL

```
POST https://gateway.pixazo.ai/runway-gen-4-5/v1/gen-4.5/generate
Content-Type: application/json
Cache-Control: no-cache
Ocp-Apim-Subscription-Key: YOUR_API_KEY

{
  "prompt": "A golden retriever puppy chasing butterflies through a sunlit lavender field, slow motion, cinematic depth of field, warm afternoon light casting long shadows"
}
```

```
import requests

url = "https://gateway.pixazo.ai/runway-gen-4-5/v1/gen-4.5/generate"
headers = {
    "Content-Type": "application/json",
    "Cache-Control": "no-cache",
    "Ocp-Apim-Subscription-Key": "YOUR_API_KEY"
}
data = {
    "prompt": "A golden retriever puppy chasing butterflies through a sunlit lavender field, slow motion, cinematic depth of field, warm afternoon light casting long shadows"
}

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

```
const url = 'https://gateway.pixazo.ai/runway-gen-4-5/v1/gen-4.5/generate';

const data = {
  prompt: 'A golden retriever puppy chasing butterflies through a sunlit lavender field, slow motion, cinematic depth of field, warm afternoon light casting long shadows'
};

fetch(url, {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Cache-Control': 'no-cache',
    'Ocp-Apim-Subscription-Key': 'YOUR_API_KEY'
  },
  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/runway-gen-4-5/v1/gen-4.5/generate" \
  -H "Content-Type: application/json" \
  -H "Cache-Control: no-cache" \
  -H "Ocp-Apim-Subscription-Key: YOUR_API_KEY" \
  --data-raw '{
    "prompt": "A golden retriever puppy chasing butterflies through a sunlit lavender field, slow motion, cinematic depth of field, warm afternoon light casting long shadows"
  }'
```

## Output

```
{
  "request_id": "runway-gen-4-5_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "QUEUED",
  "polling_url": "https://gateway.pixazo.ai/v2/requests/status/runway-gen-4-5_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
```

[Try Now](https://api.pixazo.ai/api-details#api=runway-gen-4-5-api&operation=video-generation-request)

## Webhook (Optional)

Add the `X-Webhook-URL` header to your generate request to receive a POST callback instead of polling.

```
X-Webhook-URL: https://your-server.com/webhook/callback
```

## Request Parameters - Video Generation Request

Parameter

Required

Type

Description

prompt

Yes

string

Text prompt describing the video to generate

image

No

string (URI)

Image URL for the first frame (image-to-video mode). If omitted, generates from text only

duration

No

integer

Video duration in seconds. Allowed values: 5, 10

aspect\_ratio

No

string

Video aspect ratio. Allowed values: "16:9", "9:16", "4:3", "3:4", "1:1", "21:9"

seed

No

integer

Random seed for reproducible generation

## Example Request

```
{
  "prompt": "An astronaut gazes through the cupola window of a space station at the glowing curve of Earth below, soft ambient light from control panels illuminates the cabin, the camera slowly drifts forward revealing the full panoramic viewport weightless tools float gently in the background, calm and awe-inspiring cinematic atmosphere",
  "image": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/iss043e284928~medium.jpg",
  "duration": 10,
  "aspect_ratio": "21:9",
  "seed": 42
}
```

## Response

```
{
  "request_id": "runway-gen-4-5_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "QUEUED",
  "polling_url": "https://gateway.pixazo.ai/v2/requests/status/runway-gen-4-5_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
```

## Request Headers

Header

Value

Content-Type

application/json

Cache-Control

no-cache

Ocp-Apim-Subscription-Key

Your API subscription key

## Check Prediction Status - Runway gen-4.5

## Request Code

HTTP Python JavaScript cURL

```
POST https://gateway.pixazo.ai/runway-gen-4-5/v1/gen-4.5/prediction
Content-Type: application/json
Cache-Control: no-cache
Ocp-Apim-Subscription-Key: YOUR_API_KEY

{
  "prediction_id": "phzd8zp6anrmt0cwfcntztr2xc"
}
```

```
import requests

url = "https://gateway.pixazo.ai/runway-gen-4-5/v1/gen-4.5/prediction"
headers = {
    "Content-Type": "application/json",
    "Cache-Control": "no-cache",
    "Ocp-Apim-Subscription-Key": "YOUR_API_KEY"
}
data = {
    "prediction_id": "phzd8zp6anrmt0cwfcntztr2xc"
}

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

```
const url = 'https://gateway.pixazo.ai/runway-gen-4-5/v1/gen-4.5/prediction';

const data = {
  prediction_id: 'phzd8zp6anrmt0cwfcntztr2xc'
};

fetch(url, {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Cache-Control': 'no-cache',
    'Ocp-Apim-Subscription-Key': 'YOUR_API_KEY'
  },
  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/runway-gen-4-5/v1/gen-4.5/prediction" \
  -H "Content-Type: application/json" \
  -H "Cache-Control: no-cache" \
  -H "Ocp-Apim-Subscription-Key: YOUR_API_KEY" \
  --data-raw '{
    "prediction_id": "phzd8zp6anrmt0cwfcntztr2xc"
  }'
```

## Output

```
{
  "success": true,
  "id": "phzd8zp6anrmt0cwfcntztr2xc",
  "status": "succeeded",
  "output": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/gen-4.5/phzd8zp6anrmt0cwfcntztr2xc_output_0.mp4",
  "created_at": "2026-02-20T13:09:52.341Z"
}
```

[Try Now](https://api.pixazo.ai/api-details#api=runway-gen-4-5-api&operation=check-prediction-status)

## Request Parameters - Check Prediction Status

Parameter

Required

Type

Description

prediction\_id

Yes

string

The prediction ID returned from the generate endpoint

## Example Request

```
{
  "prediction_id": "phzd8zp6anrmt0cwfcntztr2xc"
}
```

## Response

```
{
  "success": true,
  "id": "phzd8zp6anrmt0cwfcntztr2xc",
  "status": "succeeded",
  "input": {
    "aspect_ratio": "16:9",
    "duration": 5,
    "prompt": "A golden retriever puppy chasing butterflies through a sunlit lavender field..."
  },
  "output": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/gen-4.5/phzd8zp6anrmt0cwfcntztr2xc_output_0.mp4",
  "created_at": "2026-02-20T13:09:52.341Z"
}
```

## 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 Check Prediction Status.

Code

Meaning

200

Success

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found

429

Too Many Requests

500

Internal Server Error

## Response Handling

Common status codes.

Code

Meaning

202

Accepted — Request queued

400

Bad Request

401

Unauthorized

402

Insufficient Balance

403

Forbidden

429

Too Many Requests

500

Internal Server Error

## Error Responses

Queue system errors and model validation errors.

### Queue System Errors

```
// 402 — Insufficient balance
{
  "error": "Insufficient Balance",
  "message": "Your wallet does not have enough balance."
}
```

```
// 400 — Model not found
{
  "error": "Model not found",
  "message": "Model 'runway-gen-4-5' not found or is disabled"
}
```

### Error via Status/Webhook

```
{
  "request_id": "runway-gen-4-5_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "ERROR",
  "model_id": "runway-gen-4-5",
  "error": "Description of the error",
  "output": null
}
```

## Retrieving Results

Poll the universal status endpoint to check progress and retrieve results.

### Endpoint

```
GET https://gateway.pixazo.ai/v2/requests/status/{request_id}
Ocp-Apim-Subscription-Key: YOUR_API_KEY
```

## cURL Example

```
curl -H "Ocp-Apim-Subscription-Key: YOUR_API_KEY" \
  "https://gateway.pixazo.ai/v2/requests/status/runway-gen-4-5_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
```

## Response (Completed)

```
{
  "request_id": "runway-gen-4-5_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "COMPLETED",
  "model_id": "runway-gen-4-5",
  "error": null,
  "output": {
    "media_url": [
      "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/runway-gen-4-5_019dxxxx-xxxx/output.ext"
    ],
    "media_type": "application/octet-stream"
  },
  "created_at": "2026-03-31T10:00:00.000Z",
  "updated_at": "2026-03-31T10:00:15.000Z",
  "completed_at": "2026-03-31T10:00:15.000Z"
}
```

## Response Fields

Field

Type

Description

request\_id

string

Unique request identifier

status

string

QUEUED, PROCESSING, COMPLETED, FAILED, or ERROR

model\_id

string

Model that processed the request

error

string|null

Error message if failed

output.media\_url

array

URLs to generated media (R2 CDN)

output.media\_type

string

MIME type of the output

created\_at

string

When request was created

completed\_at

string|null

When request completed

polling\_url

string

Status URL (initial response only)

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

ERROR

System error — not charged

## Status Flow

```
QUEUED → PROCESSING → COMPLETED
                    → FAILED
                    → ERROR
```

## Typical Workflow

1.  **Send a generate request** to the API endpoint
2.  **Save the `request_id`** from the response
3.  **Poll** every 5-10 seconds: `GET /v2/requests/status/{request_id}`
4.  **When `status` is `"COMPLETED"`**, download from `output.media_url`

**Tip:** Use `X-Webhook-URL` header to get a callback instead of polling.
