BashBrainTeammatesPricingDevelopersGet a test key

Memory

What Bash remembers about each user: read it, search it, add to it, forget it.

Send Authorization: Bearer vk_test_... on every call.

RoutesOpen one for every field it takes and answers.

GET/v1/memoryWhat Bash remembers about one user (user_id), or the company's own Bash: the profile and the memories, newest first.

Your API key, or a session's token, scope runtime or all. On the card: memory. Every call here is a checked sample.

Request3 fields

Query

limitintegerHow many items per page, 1 to 100. Default 20.
Type
integer
cursorstringWhere to go on from: the next_cursor of the page before, unchanged. Absent: the first page.
Type
string
user_idstringWhose memory, by your id for them. Absent: your company's own Bash's.
Type
string
Answers 2003 fields
profileobject | nullWhat Bash knows about the user, written up as one profile; null until it has one.
markdownstringThe profile, as Markdown.
Type
string
updated_atstring | nullWhen it last changed, as an ISO 8601 time; null when unknown.
Type
string | null
dataobject[]The memories, one page of them.
idstringThe memory (mem_...).
Type
string
textstringWhat Bash remembers, in plain words.
Example
Prefers a window seat.
kindstringWhat kind of fact it is, such as preference or identity.
Type
string
sourcestringHow Bash learned it: user_direct (you or your user said so), tool_observed (seen in an app), upload, screen, or agent_inferred (worked out from the conversation).
Type
string
observed_atstringWhen Bash learned it, as an ISO 8601 time.
Type
string
next_cursorstring | nullSend it as cursor for the next page; null on the last.
Type
string | null
TypeScript
const memory = await vestra.user('traveller-42').memory.list();
Python
memory = vestra.user("traveller-42").memory.list()
CLI
vestra memory --user traveller-42
HTTP
# Add a fact. Tell Bash something once, and it remembers it.curl "$VESTRA_BASE_URL/v1/memory" \  -H "Authorization: Bearer $VESTRA_API_KEY" \  -H "Content-Type: application/json" \  -d '{ "user_id": "traveller-42", "text": "Prefers a window seat, and never a red-eye." }' # Search what Bash remembers. Ask a question in plain words.curl "$VESTRA_BASE_URL/v1/memory/search?user_id=traveller-42&q=Which%20seat%20does%20she%20like" \  -H "Authorization: Bearer $VESTRA_API_KEY" # List and forget memories. Read the profile and every memory, newest first. Then forget one, or everything.curl "$VESTRA_BASE_URL/v1/memory?user_id=traveller-42" \  -H "Authorization: Bearer $VESTRA_API_KEY" curl -X DELETE "$VESTRA_BASE_URL/v1/memory/mem_4ka?user_id=traveller-42" \  -H "Authorization: Bearer $VESTRA_API_KEY" curl -X DELETE "$VESTRA_BASE_URL/v1/memory?user_id=traveller-42" \  -H "Authorization: Bearer $VESTRA_API_KEY"
MCP
{  "method": "tools/call",  "params": {    "name": "memory_search",    "arguments": { "user": "traveller-42", "q": "Which seat does she like?" }  }}
POST/v1/memoryTell Bash a fact once, for example 'prefers window seats', for one user (user_id) or the company's own Bash.

Your API key, scope runtime or all. On the card: memory. Every call here is a checked sample.

DELETE/v1/memoryForget everything about one user (user_id), or the company's own Bash.

Your API key, or a session's token, scope runtime or all. On the card: memory. Every call here is a checked sample.

DELETE/v1/memory/{memory_id}Forget one thing.

user_id names whose memory it is.

Your API key, or a session's token, scope runtime or all. On the card: memory. Every call here is a checked sample.