Api referenceFiles
Get File
Retrieve metadata, processing status, and download URL for a specific file.
Get File
GET /api/v1/files/:fileIdRetrieve 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
| Header | Type | Required | Description |
|---|---|---|---|
X-API-KEY | string | Yes | Your API key with ffsk_ prefix |
Path parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
fileId | string | Yes | The 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;
}| Field | Type | Description |
|---|---|---|
file_id | string | Unique identifier for the file. |
storage_url | string | null | Direct download URL. null if the file is still processing or has failed. |
status | string | Processing status: PROCESSING, STORED, or FAILED. |
rendi_store_type | string | How the file was created: OUTPUT (from a command), STORED_FILE (via store-file), or UPLOAD (via upload). |
is_deleted | boolean | Whether the file has been deleted from storage. |
original_file_url | string | null | The source URL if the file was created via the store-file endpoint. |
size_mbytes | number | null | File size in megabytes. |
duration | number | null | Duration in seconds (for audio/video files). |
file_type | string | null | General type (e.g., video, audio, image). |
file_format | string | null | Container format (e.g., mp4, webm, png). |
codec | string | null | Primary codec (e.g., h264, vp9, aac). |
pixel_format | string | null | Pixel format (e.g., yuv420p). |
mime_type | string | null | MIME type (e.g., video/mp4). |
width | number | null | Width in pixels (for video/image files). |
height | number | null | Height in pixels (for video/image files). |
frame_rate | number | null | Frame rate in fps (for video files). |
bitrate_video_kb | number | null | Video bitrate in kb/s. |
bitrate_audio_kb | number | null | Audio bitrate in kb/s. |
sample_rate | number | null | Audio sample rate in Hz. |
channels | number | null | Number of audio channels. |
error_status | string | null | Machine-readable error code if status is FAILED. |
error_message | string | null | Human-readable error description if status is FAILED. |
created_at | string | ISO 8601 timestamp of when the file was created. |
Error responses
| Status | Error | Description |
|---|---|---|
401 | UNAUTHORIZED | Missing or invalid API key. |
404 | NOT_FOUND | No file found with the given ID, or the file belongs to a different account. |
429 | RATE_LIMITED | Too 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")