Skip to main content
TroopyDocs
Open Troopy
Troopy

API reference / Tasks and projects

Attach a file

Attaches a file to a task: its bytes in content as base64, up to 25 MB (a body of at most 36 MB), and at most 20 files a task. Its teammates see every file's name and read the text of text files (txt, md, csv, tsv, json), PDFs and Word documents (.docx). Files are private: they download from their url with your key. From the CLI, pass --content @./brief.pdf to read a file.

post/api/v1/tasks/{key}/attachments

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 tasks attach
MCP toolNone. Call it over REST or with the CLI.
Rate limit10 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

key*string

A task's key (VIR-12), its number (12) or its id

At least 1 characters · At most 40 characters

Body

application/json
name*string

The file's name, like brief.pdf

At least 1 characters · At most 200 characters

content*string

The file, base64-encoded

At most 35000000 characters · base64

Response

201 · application/json
data*object
7 properties
id*string

A 24-character id

name*string
contentType*string

As Troopy serves it; a type a browser could run is served as plain bytes

size*integer

In bytes

by*object

Who wrote it

3 properties
type*enum<string>

personagentapi

id*string
name*string
createdAt*string

ISO 8601 date and time

url*string

Downloads it: send your API key, or be signed in

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.