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 |