Skip to main content
TroopyDocs
Open Troopy
Troopy

API reference / Canvas

Turn notes into tasks

Makes a task of each note named by key (sticky notes, text and shapes with words): its first line is the title, the rest and a link back to the canvas the description. Left without an assignee, each goes to the one teammate of its area, else the Chief of Staff, who passes it on. Each note then shows its task's key; a note that already became a task is skipped.

post/api/v1/canvases/{id}/tasks

Authorization

HeaderAuthorization: Bearer <API key>
Or the headerX-API-Key: <API key>
API keyMake one in Troopy under Settings > API keys. It acts as you, in its workspace.

Other ways to call it

CLItroopy canvases tasks
MCP tooltroopy_canvas_to_tasks
Rate limit30 calls in 60 seconds, for each key
RetriesSend an Idempotency-Key header. A retry with the same key gets the first answer back, and the operation runs one time.

Path parameters

id*string

A 24-character id

Body

application/json
keys*array<string>

At most 50 items

assigneestring | null

A teammate's handle (like writer), a person's user id, me for yourself, or null for nobody

projectstring | null

A project's id or name, for every task

Response

201 · application/json
data*object
3 properties
tasks*array<object>

The tasks made, each with its note

3 properties
note*string

The item's key, unique on its canvas

key*string
title*string
skipped*array<string>

Notes left out: no words, not a note, already a task, or after a task that couldn't be made

error*string | null

Why a task couldn't be made, when one couldn't: the notes after it are skipped

Errors

400 invalid_inputFix the field named in detail. Each operation's schema is in /api/v1/openapi.json.
401 unauthorizedSend an API key as `Authorization: Bearer tr_live_...`. Create one in Troopy under Settings.
403 forbiddenThe key lacks a scope this operation needs, or its owner lacks the role. detail says which; create a key with the scope, or ask an organization owner or admin.
404 not_foundCheck the path and any id in it. Every operation is listed in /api/v1/openapi.json.
409 conflictThis Idempotency-Key was used for a different request, or that request is still running. Use a new key for a new request.
429 rate_limitedWait the number of seconds in Retry-After, then retry.