RenderIO
Api referenceCommands

Get Command

Retrieve the status, results, and metadata for a specific command by its ID.

Get Command

GET /api/v1/commands/:commandId

Retrieve the current status of a command, including processing times, output file metadata, and the original request. Use this endpoint to poll for results after submitting a command.

Authentication

Requires API key via X-API-KEY header.

Request

Headers

HeaderTypeRequiredDescription
X-API-KEYstringYesYour API key with ffsk_ prefix

Path parameters

ParameterTypeRequiredDescription
commandIdstringYesThe unique identifier returned when the command was submitted.

Response

200 OK

interface CommandPollResponse {
  command_id: string;
  status: "QUEUED" | "PROCESSING" | "SUCCESS" | "FAILED";
  command_type: "FFMPEG_COMMAND" | "CHAINED_COMMAND" | "MULTIPLE_COMMAND";
  total_processing_seconds?: number | null;
  ffmpeg_command_run_seconds?: number | null;
  metadata?: Record<string, unknown> | null;
  error_status?: string | null;
  error_message?: string | null;
  output_files?: Record<string, OutputFileMeta>;
  original_request: {
    input_files: Record<string, string>;
    output_files: Record<string, string>;
    ffmpeg_command?: string;
    ffmpeg_commands?: string[];
  };
}

interface OutputFileMeta {
  file_id: string;
  storage_url: string | null;
  status: "PROCESSING" | "STORED" | "FAILED";
  rendi_store_type: "OUTPUT" | "STORED_FILE" | "UPLOAD";
  is_deleted: boolean;
  filename: string;
  size_mbytes: number | null;
  duration?: number | null;
  file_type?: string | null;
  file_format?: string | null;
  codec?: string | null;
  pixel_format?: string | null;
  mime_type?: string | null;
  width?: number | null;
  height?: number | null;
  frame_rate?: number | null;
  bitrate_video_kb?: number | null;
  bitrate_audio_kb?: number | null;
}
FieldTypeDescription
command_idstringUnique identifier for the command.
statusstringCurrent status: QUEUED, PROCESSING, SUCCESS, or FAILED.
command_typestringType of command: FFMPEG_COMMAND, CHAINED_COMMAND, or MULTIPLE_COMMAND.
total_processing_secondsnumber | nullTotal wall-clock time from submission to completion, in seconds.
ffmpeg_command_run_secondsnumber | nullTime spent running FFmpeg only, in seconds.
metadataRecord<string, unknown> | nullThe metadata object you attached when submitting the command.
error_statusstring | nullMachine-readable error code if status is FAILED.
error_messagestring | nullHuman-readable error description if status is FAILED.
output_filesRecord<string, OutputFileMeta>Map of output aliases to file metadata. Present when status is SUCCESS or partially available during PROCESSING.
original_requestobjectThe original input/output mappings and FFmpeg command(s) you submitted.

OutputFileMeta fields

FieldTypeDescription
file_idstringUnique identifier for the output file.
storage_urlstring | nullDirect download URL. null if still processing or failed.
statusstringFile status: PROCESSING, STORED, or FAILED.
rendi_store_typestringHow the file was created: OUTPUT, STORED_FILE, or UPLOAD.
is_deletedbooleanWhether the file has been deleted from storage.
filenamestringOriginal filename.
size_mbytesnumber | nullFile size in megabytes.
durationnumber | nullDuration in seconds (for audio/video files).
file_typestring | nullGeneral type (e.g., video, audio, image).
file_formatstring | nullContainer format (e.g., mp4, webm, png).
codecstring | nullPrimary codec (e.g., h264, vp9, aac).
pixel_formatstring | nullPixel format (e.g., yuv420p).
mime_typestring | nullMIME type (e.g., video/mp4).
widthnumber | nullWidth in pixels (for video/image).
heightnumber | nullHeight in pixels (for video/image).
frame_ratenumber | nullFrame rate in fps (for video).
bitrate_video_kbnumber | nullVideo bitrate in kb/s.
bitrate_audio_kbnumber | nullAudio bitrate in kb/s.

Error responses

StatusErrorDescription
401UNAUTHORIZEDMissing or invalid API key.
404NOT_FOUNDNo command found with the given ID, or the command belongs to a different account.
429RATE_LIMITEDToo many requests. Retry after the period indicated in the Retry-After header.

Examples

curl

curl https://renderio.dev/api/v1/commands/a1b2c3d4-e5f6-7890-abcd-ef1234567890 \
  -H "X-API-KEY: ffsk_your_api_key_here"

JavaScript (fetch)

const commandId = "a1b2c3d4-e5f6-7890-abcd-ef1234567890";

const response = await fetch(
  `https://renderio.dev/api/v1/commands/${commandId}`,
  {
    headers: {
      "X-API-KEY": "ffsk_your_api_key_here",
    },
  },
);

const command = await response.json();
console.log("Status:", command.status);

if (command.status === "SUCCESS") {
  for (const [alias, file] of Object.entries(command.output_files)) {
    console.log(`${alias}: ${file.storage_url}`);
  }
}

Python (requests)

import requests

command_id = "a1b2c3d4-e5f6-7890-abcd-ef1234567890"

response = requests.get(
    f"https://renderio.dev/api/v1/commands/{command_id}",
    headers={
        "X-API-KEY": "ffsk_your_api_key_here",
    },
)

command = response.json()
print("Status:", command["status"])

if command["status"] == "SUCCESS":
    for alias, file in command["output_files"].items():
        print(f"{alias}: {file['storage_url']}")

On this page