API reference
API: Projects
| Method | Path | What it does | Scope |
|---|---|---|---|
| GET | /v1/canvases | Canvases you may see (yours, and those in projects you see), e.g. status=waiting_on_you | records:read |
| POST | /v1/canvases | Make a table or document canvas (optionally in a project) | records:write |
| GET | /v1/canvases/:id | A canvas with its content | records:read |
| PATCH | /v1/canvases/:id | Edit a canvas's title, content or status | records:write |
| GET | /v1/projects | Your projects and the team's shared ones | records:read |
| POST | /v1/projects | Start a project (private, or shared with the team) | records:write |
| GET | /v1/projects/:id | A project with the items you may see (each by its own permissions) and its canvases | records:read |
| PATCH | /v1/projects/:id | Rename, describe, share or archive a project (its owner) | records:write |
| POST | /v1/projects/:id/items | Add an item you can see: a conversation, list, document, record, run, canvas or person | records:write |
| DELETE | /v1/projects/:id/items/:itemId | Take an item out of a project (the item itself stays) | records:write |
Examples
GET /v1/canvases
Canvases you may see (yours, and those in projects you see), e.g. status=waiting_on_you
curl -s "https://api.closefinch.com/v1/canvases" \
-H "Authorization: Bearer $RA_API_KEY"const res = await fetch(`https://api.closefinch.com/v1/canvases`, {
method: "GET",
headers: { authorization: `Bearer ${process.env.RA_API_KEY}` },
});
const data = await res.json();POST /v1/canvases
Make a table or document canvas (optionally in a project)
curl -s -X POST "https://api.closefinch.com/v1/canvases" \
-H "Authorization: Bearer $RA_API_KEY" \
-H "content-type: application/json" \
-d '{}'const res = await fetch(`https://api.closefinch.com/v1/canvases`, {
method: "POST",
headers: { authorization: `Bearer ${process.env.RA_API_KEY}`, "content-type": "application/json" },
body: JSON.stringify({}), // fields: see the OpenAPI schema
});
const data = await res.json();GET /v1/canvases/$ID
A canvas with its content
curl -s "https://api.closefinch.com/v1/canvases/$ID" \
-H "Authorization: Bearer $RA_API_KEY"const res = await fetch(`https://api.closefinch.com/v1/canvases/${id}`, {
method: "GET",
headers: { authorization: `Bearer ${process.env.RA_API_KEY}` },
});
const data = await res.json();PATCH /v1/canvases/$ID
Edit a canvas's title, content or status
curl -s -X PATCH "https://api.closefinch.com/v1/canvases/$ID" \
-H "Authorization: Bearer $RA_API_KEY" \
-H "content-type: application/json" \
-d '{}'const res = await fetch(`https://api.closefinch.com/v1/canvases/${id}`, {
method: "PATCH",
headers: { authorization: `Bearer ${process.env.RA_API_KEY}`, "content-type": "application/json" },
body: JSON.stringify({}), // fields: see the OpenAPI schema
});
const data = await res.json();GET /v1/projects
Your projects and the team's shared ones
curl -s "https://api.closefinch.com/v1/projects" \
-H "Authorization: Bearer $RA_API_KEY"const res = await fetch(`https://api.closefinch.com/v1/projects`, {
method: "GET",
headers: { authorization: `Bearer ${process.env.RA_API_KEY}` },
});
const data = await res.json();POST /v1/projects
Start a project (private, or shared with the team)
curl -s -X POST "https://api.closefinch.com/v1/projects" \
-H "Authorization: Bearer $RA_API_KEY" \
-H "content-type: application/json" \
-d '{}'const res = await fetch(`https://api.closefinch.com/v1/projects`, {
method: "POST",
headers: { authorization: `Bearer ${process.env.RA_API_KEY}`, "content-type": "application/json" },
body: JSON.stringify({}), // fields: see the OpenAPI schema
});
const data = await res.json();GET /v1/projects/$ID
A project with the items you may see (each by its own permissions) and its canvases
curl -s "https://api.closefinch.com/v1/projects/$ID" \
-H "Authorization: Bearer $RA_API_KEY"const res = await fetch(`https://api.closefinch.com/v1/projects/${id}`, {
method: "GET",
headers: { authorization: `Bearer ${process.env.RA_API_KEY}` },
});
const data = await res.json();PATCH /v1/projects/$ID
Rename, describe, share or archive a project (its owner)
curl -s -X PATCH "https://api.closefinch.com/v1/projects/$ID" \
-H "Authorization: Bearer $RA_API_KEY" \
-H "content-type: application/json" \
-d '{}'const res = await fetch(`https://api.closefinch.com/v1/projects/${id}`, {
method: "PATCH",
headers: { authorization: `Bearer ${process.env.RA_API_KEY}`, "content-type": "application/json" },
body: JSON.stringify({}), // fields: see the OpenAPI schema
});
const data = await res.json();POST /v1/projects/$ID/items
Add an item you can see: a conversation, list, document, record, run, canvas or person
curl -s -X POST "https://api.closefinch.com/v1/projects/$ID/items" \
-H "Authorization: Bearer $RA_API_KEY" \
-H "content-type: application/json" \
-d '{}'const res = await fetch(`https://api.closefinch.com/v1/projects/${id}/items`, {
method: "POST",
headers: { authorization: `Bearer ${process.env.RA_API_KEY}`, "content-type": "application/json" },
body: JSON.stringify({}), // fields: see the OpenAPI schema
});
const data = await res.json();DELETE /v1/projects/$ID/items/$ITEM_ID
Take an item out of a project (the item itself stays)
curl -s -X DELETE "https://api.closefinch.com/v1/projects/$ID/items/$ITEM_ID" \
-H "Authorization: Bearer $RA_API_KEY"const res = await fetch(`https://api.closefinch.com/v1/projects/${id}/items/${itemId}`, {
method: "DELETE",
headers: { authorization: `Bearer ${process.env.RA_API_KEY}` },
});
const data = await res.json();Request and response schemas: https://www.closefinch.com/openapi.json. All resources: API reference.