Skip to main content
TroopyDocs
Open Troopy
Troopy

API reference / Brain

List brain sources

What the brain has learned from, newest first, optionally of one kind. With origin, only the notes that people said or saved (person), only the facts that teammates read in documents (document), or only the facts that the troop inferred (inferred). Read one to get its text.

get/api/v1/brain/sources

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 brain sources
MCP tooltroopy_list_brain_sources
Rate limit120 calls in 60 seconds, for each key

Query parameters

pageinteger

1-based page number

Default 1 · At least 1

limitinteger

Items per page, at most 100

Default 20 · At least 1 · At most 100

kindenum<string>

Where the text came from: a web page, an uploaded file, a note, a teammate's run, or a canvas (its words, kept current by Troopy)

webuploadnoteruncanvas

originenum<string>

persondocumentinferred

Response

200 · application/json
data*array<object>
15 properties
id*string

A 24-character id

kind*enum<string>

Where the text came from: a web page, an uploaded file, a note, a teammate's run, or a canvas (its words, kept current by Troopy)

webuploadnoteruncanvas

title*string
uri*string | null
createdAt*string

ISO 8601 date and time

by*object

Who wrote it

3 properties
type*enum<string>

personagentapi

id*string
name*string
private*boolean

One of your own notes: a fact about yourself you told a teammate in a chat you started. Kept out of the shared brain: no teammate reads it, and only you see it

saidBy*object | null

A note a teammate learned: the person who said it

2 properties
id*string

A 24-character id

name*string
confirmations*integer

How many times the same note was said again

supersededBy*string | null

The newer note that made this one untrue: it is out of search until restored

wrong*object | null

A person said this note is wrong (from a teammate's answer that relied on it): out of search until restored

3 properties
by*object

Who wrote it

3 properties
type*enum<string>

personagentapi

id*string
name*string
at*string

ISO 8601 date and time

userId*string

A 24-character id

origin*object | null

A fact that a teammate read in a document: the doc or the source, its kind, and its title when the teammate read it

4 properties
type*enum<string>

docsource

id*string

A 24-character id

kind*string
title*string
endedAt*string | null

A fact whose paragraph left its document, or whose time ended: out of search

challengedBy*string | null

A document says otherwise: the fact that says it. Still true? asks the person who said this note

derivedFrom*array<string> | null

A fact that the troop inferred: the notes that it follows from. It ends when one of them ends

pagination*object
4 properties
page*integer
limit*integer
total*integer
pages*integer

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