Skip to main content
TroopyDocs
Open Troopy
Troopy

API reference / Docs

One version of a doc

One version of a doc with its text and properties, and the version before it, to see what it changed.

get/api/v1/docs/{slug}/versions/{version}

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 docs version
MCP tooltroopy_get_doc_version
Rate limit60 calls in 60 seconds, for each key

Path parameters

slug*string

The doc's id in the workspace, like acme-ltd

At most 80 characters

version*integer

The version, from the doc's history

At least 1

Response

200 · application/json
data*object
11 properties
version*integer
title*string
kind*enum<string> | null

docbriefarticlepolicydecisionprojecttopicpersoncompanyproductinterviewresearch

by*object
5 properties
type*enum<string>

personagentapi

id*string
name*string
viastring | null

api: the name of the API key or the app

runstring | null

agent: the run of the teammate that wrote it

editedAt*string

When its text was last saved

name*string | null

A person's name for it. A named version stays in the history for good

restoredFrom*integer | null

The version that a restore brought back, when it is a restore

current*boolean

It is the doc as it is now

body*string
properties*array<object>

The values that it had of the properties that its collection has now

5 properties
id*string

The id of the property: a write sends its value by this id

name*string
type*enum<string>

textnumberdateselectmulti_selecturlcheckbox

value*string | number | boolean | array<string> | null

The value as it is kept: a select keeps the id of its option

text*string

The value as people read it: the name of an option, a date, Yes

before*object | null

The version before it; null for the first

4 properties
version*integer
title*string
body*string
properties*array<object>
5 properties
id*string

The id of the property: a write sends its value by this id

name*string
type*enum<string>

textnumberdateselectmulti_selecturlcheckbox

value*string | number | boolean | array<string> | null

The value as it is kept: a select keeps the id of its option

text*string

The value as people read it: the name of an option, a date, Yes

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.
429 rate_limitedWait the number of seconds in Retry-After, then retry.