Rendley docs

Projects

List projects

GET /v1/projects

List all projects in a workspace.

Request

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

res = requests.get(
    "https://api.rendley.com/v1/projects?workspace_id=WORKSPACE_ID",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
)
data = res.json()["data"]

Query parameters

Name Type Required Description
workspace_id string Required Workspace ID
Example response
{
  "data": [
    {
      "created_at": "string",
      "created_by": "string",
      "deleted_at": "string",
      "fit_duration": 0,
      "id": "string",
      "last_viewed_at": "string",
      "name": "string",
      "project_json": "string",
      "thumbnail_url": "string",
      "updated_at": "string",
      "version": 0,
      "workspace_id": "string"
    }
  ]
}
Response codes
Status Description
200 OK
400 Bad Request
401 Unauthorized
403 Forbidden

Create a project

POST /v1/projects

Create a new project in a workspace, optionally from a template.

Request

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

res = requests.post(
    "https://api.rendley.com/v1/projects",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
    json={
      "name": "<name>",
      "workspace_id": "<workspace_id>"
    },
)
data = res.json()["data"]

Request body

Name Type Required Description
name string Required
template_id string Optional
workspace_id string Required
Example response
{
  "data": {
    "created_at": "string",
    "created_by": "string",
    "deleted_at": "string",
    "fit_duration": 0,
    "id": "string",
    "last_viewed_at": "string",
    "name": "string",
    "project_json": "string",
    "thumbnail_url": "string",
    "updated_at": "string",
    "version": 0,
    "workspace_id": "string"
  }
}
Response codes
Status Description
200 OK
400 Bad Request
401 Unauthorized
403 Forbidden

Get a project

GET /v1/projects/{id}

Retrieve a single project by its ID.

Request

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

res = requests.get(
    "https://api.rendley.com/v1/projects/ID",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
)
data = res.json()["data"]

Path parameters

Name Type Description
id string Project ID
Example response
{
  "data": {
    "created_at": "string",
    "created_by": "string",
    "deleted_at": "string",
    "fit_duration": 0,
    "id": "string",
    "last_viewed_at": "string",
    "name": "string",
    "project_json": "string",
    "thumbnail_url": "string",
    "updated_at": "string",
    "version": 0,
    "workspace_id": "string"
  }
}
Response codes
Status Description
200 OK
401 Unauthorized
403 Forbidden
404 Not Found

Update a project

PATCH /v1/projects/{id}

Update a project's mutable fields. Send only the fields you want to change.

Request

curl -X PATCH "https://api.rendley.com/v1/projects/ID" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "fit_duration": 0,
    "name": "<name>",
    "project_json": "<project_json>"
  }'
const res = await fetch("https://api.rendley.com/v1/projects/ID", {
  method: "PATCH",
  headers: { Authorization: "Bearer YOUR_API_KEY", "Content-Type": "application/json" },
  body: JSON.stringify({
    "fit_duration": 0,
    "name": "<name>",
    "project_json": "<project_json>"
  }),
});
const { data } = await res.json();
import requests

res = requests.patch(
    "https://api.rendley.com/v1/projects/ID",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
    json={
      "fit_duration": 0,
      "name": "<name>",
      "project_json": "<project_json>"
    },
)
data = res.json()["data"]

Path parameters

Name Type Description
id string Project ID

Request body

Name Type Required Description
fit_duration number Optional
name string Optional
project_json string Optional
register_last_view boolean Optional
version integer Optional
Response codes
Status Description
200 OK
400 Bad Request
401 Unauthorized
403 Forbidden

Delete a project

DELETE /v1/projects/{id}

Delete a project by its ID.

Request

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

res = requests.delete(
    "https://api.rendley.com/v1/projects/ID",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
)
data = res.json()["data"]

Path parameters

Name Type Description
id string Project ID
Response codes
Status Description
200 OK
400 Bad Request
401 Unauthorized
403 Forbidden

Get a thumbnail upload URL

PATCH /v1/projects/{id}/thumbnail

Request a presigned URL to upload a new thumbnail for the project.

Request

curl -X PATCH "https://api.rendley.com/v1/projects/ID/thumbnail" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "file_size": 0
  }'
const res = await fetch("https://api.rendley.com/v1/projects/ID/thumbnail", {
  method: "PATCH",
  headers: { Authorization: "Bearer YOUR_API_KEY", "Content-Type": "application/json" },
  body: JSON.stringify({
    "file_size": 0
  }),
});
const { data } = await res.json();
import requests

res = requests.patch(
    "https://api.rendley.com/v1/projects/ID/thumbnail",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
    json={
      "file_size": 0
    },
)
data = res.json()["data"]

Path parameters

Name Type Description
id string Project ID

Request body

Name Type Required Description
file_size integer Optional
Response codes
Status Description
200 OK
400 Bad Request
401 Unauthorized
403 Forbidden

Get a project's version

GET /v1/projects/{id}/version

Retrieve the current version number of a project.

Request

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

res = requests.get(
    "https://api.rendley.com/v1/projects/ID/version",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
)
data = res.json()["data"]

Path parameters

Name Type Description
id string Project ID
Response codes
Status Description
200 OK
401 Unauthorized
403 Forbidden
404 Not Found