RenderIO
Api referenceFiles

Get File

Retrieve metadata, processing status, and download URL for a specific file.

Get File

GET /api/v1/files/:fileId

Retrieve the metadata and processing status of a file. When the file status is STORED, the response includes a storage_url for downloading and detailed media metadata (duration, codec, resolution, bitrate, etc.).

Authentication

Requires API key via X-API-KEY header.

Request

Headers

HeaderTypeRequiredDescription
X-API-KEYstringYesYour API key with ffsk_ prefix

Path parameters

ParameterTypeRequiredDescription
fileIdstringYesThe unique identifier of the file.

Response

200 OK

interface StoredFileResponse {
  file_id: string;
  storage_url: string | null;
  status: "PROCESSING" | "STORED" | "FAILED";
  rendi_store_type: "OUTPUT" | "STORED_FILE" | "UPLOAD";
  is_deleted: boolean;
  original_file_url?: string | null;
  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;
  sample_rate?: number | null;
  channels?: number | null;
  error_status?: string | null;
  error_message?: string | null;
  created_at: string;
}
FieldTypeDescription
file_idstringUnique identifier for the file.
storage_urlstring | nullDirect download URL. null if the file is still processing or has failed.
statusstringProcessing status: PROCESSING, STORED, or FAILED.
rendi_store_typestringHow the file was created: OUTPUT (from a command), STORED_FILE (via store-file), or UPLOAD (via upload).
is_deletedbooleanWhether the file has been deleted from storage.
original_file_urlstring | nullThe source URL if the file was created via the store-file endpoint.
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 files).
heightnumber | nullHeight in pixels (for video/image files).
frame_ratenumber | nullFrame rate in fps (for video files).
bitrate_video_kbnumber | nullVideo bitrate in kb/s.
bitrate_audio_kbnumber | nullAudio bitrate in kb/s.
sample_ratenumber | nullAudio sample rate in Hz.
channelsnumber | nullNumber of audio channels.
error_statusstring | nullMachine-readable error code if status is FAILED.
error_messagestring | nullHuman-readable error description if status is FAILED.
created_atstringISO 8601 timestamp of when the file was created.

Error responses

StatusErrorDescription
401UNAUTHORIZEDMissing or invalid API key.
404NOT_FOUNDNo file found with the given ID, or the file 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/files/f1a2b3c4-d5e6-7890-abcd-ef1234567890 \
  -H "X-API-KEY: ffsk_your_api_key_here"

JavaScript (fetch)

const fileId = "f1a2b3c4-d5e6-7890-abcd-ef1234567890";

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

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

if (file.status === "STORED") {
  console.log("Download URL:", file.storage_url);
  console.log("Size:", file.size_mbytes, "MB");
  console.log("Duration:", file.duration, "seconds");
}

Python (requests)

import requests

file_id = "f1a2b3c4-d5e6-7890-abcd-ef1234567890"

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

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

if file["status"] == "STORED":
    print("Download URL:", file["storage_url"])
    print("Size:", file["size_mbytes"], "MB")
    print("Duration:", file["duration"], "seconds")

On this page