Rendley docs

API reference

Models API

Read the model list and each model's JSON Schema at runtime, for example to build a model picker in your own product.

#List AI models

List available AI models. Use schema_url to retrieve the JSON Schema accepted in the request's params object for a specific model.

GEThttps://api.rendley.com/v1/ai/models

Don't have one? Create an API key

const res = await fetch("https://api.rendley.com/v1/ai/models", {
  headers: { Authorization: "Bearer YOUR_API_KEY" },
});
const { data } = await res.json();
curl "https://api.rendley.com/v1/ai/models" \
  -H "Authorization: Bearer YOUR_API_KEY"
import requests

res = requests.get(
    "https://api.rendley.com/v1/ai/models",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
)
data = res.json()["data"]
$ch = curl_init("https://api.rendley.com/v1/ai/models");
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/ai/models", 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/ai/models")
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": [
    {
      "action": {},
      "description": "string",
      "id": {},
      "name": "Kling 2.6",
      "schema_url": "/v1/ai/models/kling-v2.6",
      "tagline": "Realistic motion, audio included"
    }
  ]
}

#Get an AI model schema

GEThttps://api.rendley.com/v1/ai/models/{modelId}

Return one model and the JSON Schema accepted in the params object by that model's generation and cost endpoints. This schema is generated from the runtime validator and is the source of truth for dynamic forms and integrations.

Don't have one? Create an API key

const res = await fetch("https://api.rendley.com/v1/ai/models/MODEL_ID", {
  headers: { Authorization: "Bearer YOUR_API_KEY" },
});
const { data } = await res.json();
curl "https://api.rendley.com/v1/ai/models/MODEL_ID" \
  -H "Authorization: Bearer YOUR_API_KEY"
import requests

res = requests.get(
    "https://api.rendley.com/v1/ai/models/MODEL_ID",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
)
data = res.json()["data"]
$ch = curl_init("https://api.rendley.com/v1/ai/models/MODEL_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/ai/models/MODEL_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/ai/models/MODEL_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": {
    "action": {},
    "description": "string",
    "id": {},
    "name": "Kling 2.6",
    "params_schema": {},
    "schema_url": "/v1/ai/models/kling-v2.6",
    "tagline": "Realistic motion, audio included"
  }
}

#Cut bad takes and filler words

POSThttps://api.rendley.com/v1/ai/smart-cut

Enqueue a job that transcribes a recording, decides which stretches are filler, dead air, false starts or repeated takes, and returns a new video with them removed.

Don't have one? Create an API key

Body
const res = await fetch("https://api.rendley.com/v1/ai/smart-cut", {
  method: "POST",
  headers: { Authorization: "Bearer YOUR_API_KEY", "Content-Type": "application/json" },
  body: JSON.stringify({
    "media": "<media>",
    "project_id": "<project_id>"
  }),
});
const { data } = await res.json();
curl -X POST "https://api.rendley.com/v1/ai/smart-cut" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "media": "<media>",
    "project_id": "<project_id>"
  }'
import requests

res = requests.post(
    "https://api.rendley.com/v1/ai/smart-cut",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
    json={
        "media": "<media>",
        "project_id": "<project_id>"
    },
)
data = res.json()["data"]
$ch = curl_init("https://api.rendley.com/v1/ai/smart-cut");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_HTTPHEADER, ["Authorization: Bearer YOUR_API_KEY", "Content-Type: application/json"]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(["media" => "<media>", "project_id" => "<project_id>"]));

$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true)["data"];
package main

import (
	"fmt"
	"io"
	"net/http"
	"bytes"
)

func main() {
	body := bytes.NewBufferString(`{
  "media": "<media>",
  "project_id": "<project_id>"
}`)
	req, _ := http.NewRequest("POST", "https://api.rendley.com/v1/ai/smart-cut", body)
	req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
	req.Header.Set("Content-Type", "application/json")
	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/ai/smart-cut")
req = Net::HTTP::Post.new(uri)
req["Authorization"] = "Bearer YOUR_API_KEY"
req["Content-Type"] = "application/json"
req.body = { media: "<media>", project_id: "<project_id>" }.to_json

res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }
data = JSON.parse(res.body)["data"]

#Calculate smart cut cost

Calculate the credit cost of cutting bad takes and filler words out of a recording. Free while the user has transcription minutes left.

POSThttps://api.rendley.com/v1/ai/smart-cut/cost

Don't have one? Create an API key

Body
const res = await fetch("https://api.rendley.com/v1/ai/smart-cut/cost", {
  method: "POST",
  headers: { Authorization: "Bearer YOUR_API_KEY", "Content-Type": "application/json" },
  body: JSON.stringify({
    "media": "<media>",
    "project_id": "<project_id>"
  }),
});
const { data } = await res.json();
curl -X POST "https://api.rendley.com/v1/ai/smart-cut/cost" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "media": "<media>",
    "project_id": "<project_id>"
  }'
import requests

res = requests.post(
    "https://api.rendley.com/v1/ai/smart-cut/cost",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
    json={
        "media": "<media>",
        "project_id": "<project_id>"
    },
)
data = res.json()["data"]
$ch = curl_init("https://api.rendley.com/v1/ai/smart-cut/cost");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_HTTPHEADER, ["Authorization: Bearer YOUR_API_KEY", "Content-Type: application/json"]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(["media" => "<media>", "project_id" => "<project_id>"]));

$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true)["data"];
package main

import (
	"fmt"
	"io"
	"net/http"
	"bytes"
)

func main() {
	body := bytes.NewBufferString(`{
  "media": "<media>",
  "project_id": "<project_id>"
}`)
	req, _ := http.NewRequest("POST", "https://api.rendley.com/v1/ai/smart-cut/cost", body)
	req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
	req.Header.Set("Content-Type", "application/json")
	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/ai/smart-cut/cost")
req = Net::HTTP::Post.new(uri)
req["Authorization"] = "Bearer YOUR_API_KEY"
req["Content-Type"] = "application/json"
req.body = { media: "<media>", project_id: "<project_id>" }.to_json

res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }
data = JSON.parse(res.body)["data"]

#List AI tools

List the available AI tools (actions) and the models available under each.

GEThttps://api.rendley.com/v1/ai/tools

Don't have one? Create an API key

const res = await fetch("https://api.rendley.com/v1/ai/tools", {
  headers: { Authorization: "Bearer YOUR_API_KEY" },
});
const { data } = await res.json();
curl "https://api.rendley.com/v1/ai/tools" \
  -H "Authorization: Bearer YOUR_API_KEY"
import requests

res = requests.get(
    "https://api.rendley.com/v1/ai/tools",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
)
data = res.json()["data"]
$ch = curl_init("https://api.rendley.com/v1/ai/tools");
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/ai/tools", 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/ai/tools")
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": [
    {
      "action": "string",
      "description": "string",
      "models": [
        {
          "action": "transcribe",
          "description": "string",
          "id": "gemini-omni-1.1",
          "name": "string",
          "schema": {},
          "tagline": "string"
        }
      ]
    }
  ]
}