Memory Store API
A personal, append-only fact store. Write snippets with optional tags, confidence scores, and decay rates. Retrieve by recency or full-text + tag search. Pin important memories, archive stale ones.
Get your API token
Create an account and subscribe ($9/month) to start using the API.
Core concepts
- Append-only content — the
contentfield never changes after creation. To correct a fact, archive the old one and write a new one. - Confidence (
0.0–1.0) — how reliable you consider this fact. Defaults to1.0. - Decay (
decay_rate) — confidence reduced by this amount per day. A memory withconfidence=1.0anddecay_rate=0.01will haveeffective_confidence ≈ 0.9after 10 days. - effective_confidence — always computed on read; never stored.
max(0, confidence − days_since_created × decay_rate). - Status:
active(default),pinned(surfaced first),archived(hidden from default queries).
1. Write a memory
POST https://abesttools.com/api/memory
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
content | string | Yes | — | The fact or snippet (max 10 000 chars) |
tags | string | No | "" | Comma-separated tags: geography,europe |
confidence | float | No | 1.0 | Initial confidence score (0.0–1.0) |
decay_rate | float | No | 0.0 | Confidence lost per day |
token | string | Yes* | — | * or Authorization: Bearer |
POST https://abesttools.com/api/memory
content=The capital of France is Paris&tags=geography,europe&confidence=0.99&token=YOUR_TOKEN
→ 201 Created
{
"id": 42,
"content": "The capital of France is Paris",
"tags": ["geography", "europe"],
"confidence": "0.990",
"effective_confidence": 0.99,
"decay_rate": "0.0000",
"status": "active",
"created_at": "2026-03-04 10:00:00",
"updated_at": "2026-03-04 10:00:00"
}
2. Search memories
GET https://abesttools.com/api/memory/search
| Param | Type | Default | Description |
|---|---|---|---|
q | string | — | Full-text search within content |
tags | string | — | Comma-separated tag filter (exact match, AND logic) |
status | string | active,pinned | Comma-separated statuses to include |
limit | int | 20 | Max results (1–100) |
At least one of q or tags is required. Pinned memories surface first.
GET https://abesttools.com/api/memory/search?q=capital&tags=europe&token=YOUR_TOKEN
→ 200 OK
{
"count": 1,
"memories": [
{ "id": 42, "content": "...", "effective_confidence": 0.99, ... }
]
}
3. Fetch recent / pinned
GET https://abesttools.com/api/memory/recent
| Param | Type | Default | Description |
|---|---|---|---|
status | string | active | Comma-separated statuses: active, pinned, archived |
pinned_first | int | 1 | Set to 0 to disable pinned-first ordering |
limit | int | 20 | Max results (1–100) |
4. Update status / confidence
PATCH https://abesttools.com/api/memory/{id}
or POST https://abesttools.com/api/memory/{id}/update
or POST https://abesttools.com/api/memory/{id}/update
| Param | Type | Description |
|---|---|---|
status | string | active | pinned | archived |
confidence | float | New confidence score (0.0–1.0) |
decay_rate | float | New decay rate per day |
PATCH https://abesttools.com/api/memory/42
Content-Type: application/x-www-form-urlencoded
status=pinned&confidence=0.95
→ 200 OK { updated memory object }
5. Delete / archive
DELETE https://abesttools.com/api/memory/{id}[?permanent=1]
or POST https://abesttools.com/api/memory/{id}/delete[?permanent=1]
or POST https://abesttools.com/api/memory/{id}/delete[?permanent=1]
By default, deletion archives the memory (it disappears from active queries but is retrievable with status=archived).
Pass ?permanent=1 to remove it from the database entirely.
DELETE https://abesttools.com/api/memory/42
→ 200 OK { "archived": true, "id": 42 }
DELETE https://abesttools.com/api/memory/42?permanent=1
→ 200 OK { "deleted": true, "id": 42 }
Error responses
| Status | Meaning |
|---|---|
401 | Invalid or missing API token |
403 | Active subscription required |
404 | Memory not found (or belongs to a different user) |
422 | Missing required parameter or validation error |
Create an account and subscribe to test the API.