Skip to content

Export my memory

GET
/memory/export
curl --request GET \
--url https://api.asklucy.eu/v1/memory/export \
--header 'Authorization: Bearer <token>'

Everything in your own scope, as one JSON document. Works even when memory is off.

OK

Media typeapplication/json

Everything in your own scope, including facts and relations that were replaced or found wrong, and every version of your processes.

object
exported_at
required
string format: date-time
user
required
object
id
required

Zitadel user ID.

string
name
required
string
email
string | null format: email
kind

service is a customer system’s Zitadel service user; agent is a service agent (its ID is the agt_ ID), the author of its runs’ messages.

string
Allowed values: person service agent
entities
required
Array<object>

Something the organization deals with (a person, a company, a contract…).

object
id
required
string
type
required

Lowercase, singular, snake_case: person, company, contract…

string
name
required
string
aliases
required

Other names it goes by.

Array<string>
summary
required

Empty when there is none.

string
attributes

Structured details (e.g. a registration number).

object
key
additional properties
any
scope
required

Who a piece of memory is for: user (only you, and Lucy when she works for you), group:<groupId> (the members of a group from the identity provider) or org (everyone in the organization).

string
/^(user|org|group:.+)$/
fact_count
required

Live facts about it that you can see.

integer
created_at
required
string format: date-time
updated_at
required
string format: date-time
facts
required
Array<object>

One statement about an entity, with where it comes from. Facts are never changed; a correction replaces them.

object
id
required
string
entity
required
object
id
required
string
type
required
string
name
required
string
text
required
string
<= 500 characters
scope
required

Who a piece of memory is for: user (only you, and Lucy when she works for you), group:<groupId> (the members of a group from the identity provider) or org (everyone in the organization).

string
/^(user|org|group:.+)$/
valid_from
required

Since when it holds, when known.

string | null format: date
valid_to
required

Until when it held, when known.

string | null format: date
recorded_at
required

When Lucy learned it.

string format: date-time
invalidated_at
required

When it was replaced or found wrong; null while it is live.

string | null format: date-time
superseded_by
required

The fact that replaced it.

string | null
source
required

Where it comes from. The conversation, message and file are given only to the person they belong to (null for others).

object
kind
required
string
Allowed values: said_by_person from_file from_tool inferred
user_id
required

The person who said it, or for whom Lucy was working.

string | null
conversation_id
required
string | null
message_id
required
string | null
file_id
required
string | null
relations
required
Array<object>
object
id
required
string
type
required

Lowercase snake_case, read from from to to: works_at, party_to, supplier_of…

string
from
required
object
id
required
string
type
required
string
name
required
string
to
required
object
id
required
string
type
required
string
name
required
string
scope
required

Who a piece of memory is for: user (only you, and Lucy when she works for you), group:<groupId> (the members of a group from the identity provider) or org (everyone in the organization).

string
/^(user|org|group:.+)$/
attributes
object
key
additional properties
any
valid_from
required
string | null format: date
valid_to
required
string | null format: date
invalidated_at

When it was found wrong; null while it is live.

string | null format: date-time
processes
required
Array
object
id
required
string
scope
required

Who a piece of memory is for: user (only you, and Lucy when she works for you), group:<groupId> (the members of a group from the identity provider) or org (everyone in the organization).

string
/^(user|org|group:.+)$/
status
required

archived: Lucy no longer uses it; its versions are kept.

string
Allowed values: active archived
current
required
One of:
object
id
required
string
process_id
required
string
version
required

1, 2, … in order of creation, proposals included.

integer
>= 1
state
required
  • proposed: waiting for an admin.
  • accepted: the current version.
  • superseded: was current, replaced by a later version.
  • rejected: an admin turned the proposal down.
  • withdrawn: its author took it back or undid it.
string
Allowed values: proposed accepted rejected superseded withdrawn
title
required
string
when
required

When to use it (the requests or situations it is for).

string
body
required

The steps, in Markdown.

string
reads
required

Types of entities and relations it reads.

Array<string>
writes
required

Types of entities and relations it writes.

Array<string>
applies_to
required

The entities it is about (IDs).

Array<string>
rationale
required

Why it was written or changed; empty when not given.

string
base_version_id
required

The version it was written from; null for a first version.

string | null
author
required

A person, or Lucy working for that person. The person is null once their memory was erased.

object
kind
required
string
Allowed values: person lucy
user_id
required
string | null
name
required

The person’s name.

string | null
source_conversation_id
required

The conversation Lucy wrote it in; given only to its author.

string | null
flags
required

untrusted_input: Lucy wrote it after reading a file or a tool’s output, which may have steered her. Review it with care.

Array<string>
Allowed values: untrusted_input
decided_by
required
One of:
object
id
required

Zitadel user ID.

string
name
required
string
email
string | null format: email
kind

service is a customer system’s Zitadel service user; agent is a service agent (its ID is the agt_ ID), the author of its runs’ messages.

string
Allowed values: person service agent
decided_at
required
string | null format: date-time
decision_note
required
string | null
created_at
required
string format: date-time
use_count
required

How many times Lucy read it to follow it.

integer
last_used_at
required
string | null format: date-time
pending_proposals
required

Proposals waiting for review; for members, only their own.

integer
created_at
required
string format: date-time
updated_at
required
string format: date-time
versions
required

Every version, version 1 first.

Array<object>
object
id
required
string
process_id
required
string
version
required

1, 2, … in order of creation, proposals included.

integer
>= 1
state
required
  • proposed: waiting for an admin.
  • accepted: the current version.
  • superseded: was current, replaced by a later version.
  • rejected: an admin turned the proposal down.
  • withdrawn: its author took it back or undid it.
string
Allowed values: proposed accepted rejected superseded withdrawn
title
required
string
when
required

When to use it (the requests or situations it is for).

string
body
required

The steps, in Markdown.

string
reads
required

Types of entities and relations it reads.

Array<string>
writes
required

Types of entities and relations it writes.

Array<string>
applies_to
required

The entities it is about (IDs).

Array<string>
rationale
required

Why it was written or changed; empty when not given.

string
base_version_id
required

The version it was written from; null for a first version.

string | null
author
required

A person, or Lucy working for that person. The person is null once their memory was erased.

object
kind
required
string
Allowed values: person lucy
user_id
required
string | null
name
required

The person’s name.

string | null
source_conversation_id
required

The conversation Lucy wrote it in; given only to its author.

string | null
flags
required

untrusted_input: Lucy wrote it after reading a file or a tool’s output, which may have steered her. Review it with care.

Array<string>
Allowed values: untrusted_input
decided_by
required
One of:
object
id
required

Zitadel user ID.

string
name
required
string
email
string | null format: email
kind

service is a customer system’s Zitadel service user; agent is a service agent (its ID is the agt_ ID), the author of its runs’ messages.

string
Allowed values: person service agent
decided_at
required
string | null format: date-time
decision_note
required
string | null
created_at
required
string format: date-time

Example

{
"user": {
"kind": "person"
},
"entities": [
{
"id": "ent_5Tq9Bm",
"type": "company",
"name": "Acme SA",
"scope": "user"
}
],
"facts": [
{
"id": "fact_2Rk8Vp",
"entity": {
"id": "ent_5Tq9Bm",
"type": "company"
},
"text": "Custody fees are billed quarterly, in arrears.",
"scope": "user",
"source": {
"kind": "said_by_person"
}
}
],
"relations": [
{
"id": "rel_8Nw3Js",
"type": "party_to",
"from": {
"id": "ent_5Tq9Bm",
"type": "company"
},
"to": {
"id": "ent_5Tq9Bm",
"type": "company"
},
"scope": "user"
}
],
"processes": [
{
"id": "proc_3Fz7Xa",
"scope": "user",
"status": "active",
"current": {
"id": "prv_7Hc2Lw",
"state": "proposed",
"title": "Answer a custody-fee question",
"when": "Someone asks why custody fees changed, or to check a custody invoice.",
"reads": [
"company"
],
"writes": [
"invoice"
],
"applies_to": [
"ent_5Tq9Bm"
],
"author": {
"kind": "person"
},
"flags": [
"untrusted_input"
],
"decided_by": {
"kind": "person"
}
},
"versions": [
{
"id": "prv_7Hc2Lw",
"state": "proposed",
"title": "Answer a custody-fee question",
"when": "Someone asks why custody fees changed, or to check a custody invoice.",
"reads": [
"company"
],
"writes": [
"invoice"
],
"applies_to": [
"ent_5Tq9Bm"
],
"author": {
"kind": "person"
},
"flags": [
"untrusted_input"
],
"decided_by": {
"kind": "person"
}
}
]
}
]
}

Missing, expired or invalid token.

Media typeapplication/problem+json

RFC 9457 problem details.

object
type
required
string format: uri-reference
title
required
string
status
required
integer
detail
string
instance
string
request_id
string
quota

For quota-exceeded, the window that is used up.

object
window
required
string
Allowed values: five_hours week month
percent_used
required
number
<= 100
resets_at
required

Null for a rolling window that hasn’t started.

string | null format: date-time
limited_by
required

organization when the organization’s budget is closer to running out than the member’s own limit.

string
Allowed values: personal organization
request
One of:

A request as its member sees it, where they asked.

object
id
required
string
status
required
string
Allowed values: pending approved declined withdrawn
created_at
required
string format: date-time
decided_at
required
string | null format: date-time
note
required

What the admin who decided wrote back.

string | null
errors

Field-level problems (400 only).

Array<object>
object
field
required

JSON pointer into the request body.

string
message
required
string

Example

{
"type": "https://docs.asklucy.eu/errors/answer-in-progress",
"quota": {
"window": "five_hours",
"limited_by": "personal",
"request": {
"status": "pending"
}
}
}
X-Request-Id
string

Unique per request; quote it to support.

The token is valid but lacks the role this needs.

Media typeapplication/problem+json

RFC 9457 problem details.

object
type
required
string format: uri-reference
title
required
string
status
required
integer
detail
string
instance
string
request_id
string
quota

For quota-exceeded, the window that is used up.

object
window
required
string
Allowed values: five_hours week month
percent_used
required
number
<= 100
resets_at
required

Null for a rolling window that hasn’t started.

string | null format: date-time
limited_by
required

organization when the organization’s budget is closer to running out than the member’s own limit.

string
Allowed values: personal organization
request
One of:

A request as its member sees it, where they asked.

object
id
required
string
status
required
string
Allowed values: pending approved declined withdrawn
created_at
required
string format: date-time
decided_at
required
string | null format: date-time
note
required

What the admin who decided wrote back.

string | null
errors

Field-level problems (400 only).

Array<object>
object
field
required

JSON pointer into the request body.

string
message
required
string

Example

{
"type": "https://docs.asklucy.eu/errors/answer-in-progress",
"quota": {
"window": "five_hours",
"limited_by": "personal",
"request": {
"status": "pending"
}
}
}
X-Request-Id
string

Unique per request; quote it to support.