Get AI Video Details
curl --request POST \
--url https://whollyapi.com/api/v1/runway/recordInfo \
--header 'Authorization: Bearer <token>'import requests
url = "https://whollyapi.com/api/v1/runway/recordInfo"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://whollyapi.com/api/v1/runway/recordInfo', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://whollyapi.com/api/v1/runway/recordInfo",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://whollyapi.com/api/v1/runway/recordInfo"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://whollyapi.com/api/v1/runway/recordInfo")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://whollyapi.com/api/v1/runway/recordInfo")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"code": 123,
"msg": "<string>",
"data": {
"taskId": "<string>",
"parentTaskId": "<string>",
"generateParam": {
"prompt": "<string>",
"imageUrl": "<string>",
"expandPrompt": true
},
"state": "<string>",
"generateTime": "<string>",
"videoInfo": {
"videoId": "<string>",
"taskId": "<string>",
"videoUrl": "<string>",
"imageUrl": "<string>"
},
"failCode": "<string>",
"failMsg": "<string>",
"expireFlag": 123
}
}Runway
Get AI Video Details
Retrieve comprehensive information about an AI-generated video generation or extension task.
POST
/
api
/
v1
/
runway
/
recordInfo
Get AI Video Details
curl --request POST \
--url https://whollyapi.com/api/v1/runway/recordInfo \
--header 'Authorization: Bearer <token>'import requests
url = "https://whollyapi.com/api/v1/runway/recordInfo"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://whollyapi.com/api/v1/runway/recordInfo', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://whollyapi.com/api/v1/runway/recordInfo",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://whollyapi.com/api/v1/runway/recordInfo"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://whollyapi.com/api/v1/runway/recordInfo")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://whollyapi.com/api/v1/runway/recordInfo")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"code": 123,
"msg": "<string>",
"data": {
"taskId": "<string>",
"parentTaskId": "<string>",
"generateParam": {
"prompt": "<string>",
"imageUrl": "<string>",
"expandPrompt": true
},
"state": "<string>",
"generateTime": "<string>",
"videoInfo": {
"videoId": "<string>",
"taskId": "<string>",
"videoUrl": "<string>",
"imageUrl": "<string>"
},
"failCode": "<string>",
"failMsg": "<string>",
"expireFlag": 123
}
}Retrieve comprehensive information about an AI-generated video task, including its current status, generation parameters, generated video URLs, and failure details.
Endpoint
GET /api/v1/runway/recordInfo
Authentication
All API requests require a Bearer Token.Authorization: Bearer YOUR_API_KEY
Request
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
taskId | string | Yes | Unique identifier of the video generation or extension task. Returned when creating or extending an AI video. |
string
required
Unique identifier of the video generation or extension task.
Example Request
GET /api/v1/runway/recordInfo?taskId=ee603959-debb-48d1-98c4-a6d1c717eba6
Authorization: Bearer YOUR_API_KEY
Usage
Use this endpoint to:- Check the status of a video generation or extension task.
- Access video URLs when generation is complete.
- Troubleshoot failed generation attempts.
Task Status
| State | Description |
|---|---|
wait | Task submitted but not yet queued. |
queueing | Task waiting in the processing queue. |
generating | Video generation is in progress. |
success | Video has been successfully generated. |
fail | Video generation has failed. |
Extension Tasks
This endpoint supports both standard video generation and video extension tasks. For extension tasks,parentTaskId identifies the original video task. It is empty for standard generation tasks.
Video URL Expiration
Generated video links are valid for 14 days. TheexpireFlag field indicates availability:
| Value | Meaning |
|---|---|
0 | Active — video is still available. |
1 | Expired — video is no longer available. |
Response Fields
integer
Response status code.Allowed values:
| Code | Description |
|---|---|
200 | Success — Request has been processed successfully |
401 | Unauthorized — Authentication credentials are missing or invalid |
402 | Insufficient Credits — Account does not have enough credits to perform the operation |
404 | Not Found — The requested resource or endpoint does not exist |
422 | Validation Error — The request parameters failed validation checks |
429 | Rate Limited — Request limit has been exceeded for this resource |
433 | Request Limit — Sub-key usage exceeds limit |
455 | Service Unavailable — System is currently undergoing maintenance |
500 | Server Error — An unexpected error occurred while processing the request |
501 | Generation Failed — Content generation task failed |
505 | Feature Disabled — The requested feature is currently disabled |
string
Response message. Contains the error description when the request fails.Example:
successobject
required
The task data object containing all task information.
string
required
Unique identifier of the AI video generation task.Example:
ee603959-debb-48d1-98c4-a6d1c717eba6string
Original task ID for extension tasks; empty for standard tasks.
object
string
Current generation status.Example:
successstring
Current generation time status.
object
string
default:"null"
Error code when generation fails.
string
default:"null"
Detailed error message when generation fails.
integer
default:"0"
0 when active; 1 when expired.Failure Information
Whenstate is fail, use failCode and failMsg to determine the reason. The source specification documents failure scenarios such as inappropriate content, generation limits, unsupported dimensions, upload failures, prompt moderation, excessive prompt length, NSFW content, and incorrect image format.
Response Status Codes
| Code | Meaning |
|---|---|
200 | Success. |
401 | Unauthorized — missing or invalid authentication. |
402 | Insufficient Credits. |
404 | Not Found. |
408 | Upstream issue — no result returned for over 10 minutes. |
422 | Validation Error. |
429 | Rate Limited. |
451 | Unauthorized — failed to fetch the image. |
455 | Service Unavailable / maintenance. |
500 | Server Error. |
501 | Generation Failed. |
505 | Feature Disabled. |
Error Response
{
"code": 500,
"msg": "Server Error - An unexpected error occurred while processing the request",
"data": null
}
