Skip to main content
TroopyDocs
Open Troopy
Troopy

API reference / Troop

Finish teaching a task

study sends the recording to the teammate: a conversation opens with it and it drafts a skill (then GET shows it ready). approve saves the reviewed skill, with your edits, as a skill of the workspace that every teammate can use (GET /skills); its name can't be one a skill has already. discard drops the recording or the draft. Needs an owner or admin.

patch/api/v1/agents/{handle}/teach

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 teach update
MCP toolNone. Call it over REST or with the CLI.
Rate limit20 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

handle*string

The teammate's handle, like chief

At most 40 characters

Body

application/json
action*enum<string>

studyapprovediscard

skillobject

For approve: the skill as reviewed

3 properties
name*string

The skill's name, like cold-email: a message that starts with /cold-email asks a teammate to use it

At most 64 characters

description*string

When to use it

At least 1 characters · At most 1024 characters

text*string

The steps, as a numbered markdown list

At least 1 characters · At most 40000 characters

Response

200 · application/json
data*object
9 properties
id*string

A 24-character id

agent*string

The teammate's handle

goal*string

What the person said they would show

status*enum<string>

recordingstudyingreadysaveddiscardedfailed

steps*integer

Steps recorded: visits, clicks, typing, Enter

draft*object | null

The skill it drafted, once ready

3 properties
name*string
description*string

When to use it

text*string

The steps, in markdown

threadId*string | null

The conversation it studies the recording in

error*string | null
createdAt*string

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.