API reference
Jobs
Every slow call returns a job. List your recent jobs, read one to get its status and download URL, or cancel one that has not started yet.
#List jobs
GET
https://api.rendley.com/v1/jobsList up to 200 jobs. API-key requests always return only API-created jobs. List entries carry no output object: fetch GET /jobs/{id} for a completed job's download URL.
Don't have one? Create an API key
const res = await fetch("https://api.rendley.com/v1/jobs", {
headers: { Authorization: "Bearer YOUR_API_KEY" },
});
const { data } = await res.json();curl "https://api.rendley.com/v1/jobs" \
-H "Authorization: Bearer YOUR_API_KEY"import requests
res = requests.get(
"https://api.rendley.com/v1/jobs",
headers={"Authorization": "Bearer YOUR_API_KEY"},
)
data = res.json()["data"]$ch = curl_init("https://api.rendley.com/v1/jobs");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ["Authorization: Bearer YOUR_API_KEY"]);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true)["data"];package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://api.rendley.com/v1/jobs", nil)
req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
b, _ := io.ReadAll(res.Body)
fmt.Println(string(b))
}require "net/http"
require "json"
uri = URI("https://api.rendley.com/v1/jobs")
req = Net::HTTP::Get.new(uri)
req["Authorization"] = "Bearer YOUR_API_KEY"
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }
data = JSON.parse(res.body)["data"]Response 200
{
"data": [
{
"acknowledged": true,
"error": "string",
"id": "f0e1d2c3-b4a5-4678-9012-3456789abcde",
"input_data": "string",
"result_data": "string",
"source_id": "3f0d5a4e-3d2a-4c1f-9b3e-2a1c4d5e6f70",
"source_type": "string",
"status": "queued",
"type": "string"
}
]
}#Get a job
Get a single API-created job. Completed media and export jobs include output.url and output.url_expires_at when the stored result is available.
GET
https://api.rendley.com/v1/jobs/{id}Don't have one? Create an API key
const res = await fetch("https://api.rendley.com/v1/jobs/ID", {
headers: { Authorization: "Bearer YOUR_API_KEY" },
});
const { data } = await res.json();curl "https://api.rendley.com/v1/jobs/ID" \
-H "Authorization: Bearer YOUR_API_KEY"import requests
res = requests.get(
"https://api.rendley.com/v1/jobs/ID",
headers={"Authorization": "Bearer YOUR_API_KEY"},
)
data = res.json()["data"]$ch = curl_init("https://api.rendley.com/v1/jobs/ID");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ["Authorization: Bearer YOUR_API_KEY"]);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true)["data"];package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://api.rendley.com/v1/jobs/ID", nil)
req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
b, _ := io.ReadAll(res.Body)
fmt.Println(string(b))
}require "net/http"
require "json"
uri = URI("https://api.rendley.com/v1/jobs/ID")
req = Net::HTTP::Get.new(uri)
req["Authorization"] = "Bearer YOUR_API_KEY"
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }
data = JSON.parse(res.body)["data"]Response 200
{
"data": {
"acknowledged": true,
"error": "string",
"id": "f0e1d2c3-b4a5-4678-9012-3456789abcde",
"input_data": "string",
"output": {
"duration": 0,
"expires_at": "2026-06-09T10:00:00Z",
"file_hash": "c6c8ec4f9a6fdd9d",
"media_id": "c448b6e3-2b78-4bda-b369-d1afc6aec07f",
"mime_type": "string",
"project_id": "cf32a652-56cf-4dfd-9ac6-191e90465df5",
"size": 0,
"url": "https://cdn.example.com/generated/video.mp4?signature=...",
"url_expires_at": "2026-08-31T15:00:00Z",
"workspace_id": "3b66b9b6-de8e-44c3-9f27-848a09c79320"
},
"result_data": "string",
"source_id": "3f0d5a4e-3d2a-4c1f-9b3e-2a1c4d5e6f70",
"source_type": "string",
"status": "queued",
"type": "string"
}
}#Cancel a job
Cancel a job owned by the authenticated user by its ID.
DELETE
https://api.rendley.com/v1/jobs/{id}Don't have one? Create an API key
const res = await fetch("https://api.rendley.com/v1/jobs/ID", {
method: "DELETE",
headers: { Authorization: "Bearer YOUR_API_KEY" },
});
const { data } = await res.json();curl -X DELETE "https://api.rendley.com/v1/jobs/ID" \
-H "Authorization: Bearer YOUR_API_KEY"import requests
res = requests.delete(
"https://api.rendley.com/v1/jobs/ID",
headers={"Authorization": "Bearer YOUR_API_KEY"},
)
data = res.json()["data"]$ch = curl_init("https://api.rendley.com/v1/jobs/ID");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_setopt($ch, CURLOPT_HTTPHEADER, ["Authorization: Bearer YOUR_API_KEY"]);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true)["data"];package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("DELETE", "https://api.rendley.com/v1/jobs/ID", nil)
req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
b, _ := io.ReadAll(res.Body)
fmt.Println(string(b))
}require "net/http"
require "json"
uri = URI("https://api.rendley.com/v1/jobs/ID")
req = Net::HTTP::Delete.new(uri)
req["Authorization"] = "Bearer YOUR_API_KEY"
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }
data = JSON.parse(res.body)["data"]