Quickstart
From signup to your first memory in under a minute.
End-to-end in five steps. Total time: under a minute.
1. Create an account
Go to thebreeth.com/auth/register and sign up. You're auto-provisioned into a personal team with a default project on the Hobby tier (10,000 writes / month, free).
2. Mint an API key
In the dashboard, open API Keys → New key. Give it a name, pick scopes (write is the minimum for ingestion; admin adds retraction). Copy the key starting with ck_live_… — it's shown once.
Save the key immediately
The plaintext is shown exactly one time. If you lose it, revoke and mint a new one.
3. Write your first memory
Replace <KEY> with your ck_live_… key.
curl -X POST https://api.thebreeth.com/v1/episodes \
-H "Authorization: Bearer <KEY>" \
-H "Content-Type: application/json" \
-d '{
"content": "Sridhar prefers async Rust over Go for IO-heavy services because tail latency matters more than ramp-up time.",
"group_id": "default",
"extract_intent": true
}'import httpx
r = httpx.post(
"https://api.thebreeth.com/v1/episodes",
headers={"Authorization": "Bearer <KEY>"},
json={
"content": "Sridhar prefers async Rust over Go for IO-heavy services because tail latency matters more than ramp-up time.",
"group_id": "default",
"extract_intent": True,
},
)
print(r.json())const r = await fetch("https://api.thebreeth.com/v1/episodes", {
method: "POST",
headers: {
"Authorization": "Bearer <KEY>",
"Content-Type": "application/json",
},
body: JSON.stringify({
content: "Sridhar prefers async Rust over Go for IO-heavy services because tail latency matters more than ramp-up time.",
group_id: "default",
extract_intent: true,
}),
});
console.log(await r.json());You should see a response with ok: true, the episode name, and the count of entities + edges extracted.
4. Search
curl -X POST https://api.thebreeth.com/v1/search \
-H "Authorization: Bearer <KEY>" \
-H "Content-Type: application/json" \
-d '{"query": "What does Sridhar think about Rust?", "limit": 5}'r = httpx.post(
"https://api.thebreeth.com/v1/search",
headers={"Authorization": "Bearer <KEY>"},
json={"query": "What does Sridhar think about Rust?", "limit": 5},
)
for edge in r.json()["edges"]:
print(edge["fact"])const r = await fetch("https://api.thebreeth.com/v1/search", {
method: "POST",
headers: {
"Authorization": "Bearer <KEY>",
"Content-Type": "application/json",
},
body: JSON.stringify({ query: "What does Sridhar think about Rust?", limit: 5 }),
});
const { edges } = await r.json();
edges.forEach(e => console.log(e.fact));You get back a ranked list of edges. Each carries the fact, source/target entity names, and (if you opted into intent extraction) the cognitive pattern behind it.
5. Plug it into an agent
That's the loop. Write, retrieve, repeat.