Memory API
Quickstart
Five calls, about five minutes: push a fact, push its update, wait for the feed to settle, ask two questions.
Base URL
https://api.revo.aiAuth header
Authorization: Bearer $REVO_API_KEYThere is no SDK to install, no schema to design and nothing to host, so the whole integration is five HTTP calls against one bearer token. Most people are through this page in five minutes, and it is small enough to hand to a coding agent as a single task: point it at this page and it can wire all five.
# 1. Push a fact. Timestamps are backdatable, so history lands on its real dates.
curl -X POST https://api.revo.ai/ingest \
-H "Authorization: Bearer $REVO_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "content": "Nadia confirmed the pilot ships March 14. Budget is 32k.",
"label": "Account review call",
"timestamp": "2026-02-03T09:00:00Z",
"group": "acme-pilot" }'
# 2. Push its update, five months later.
curl -X POST https://api.revo.ai/ingest \
-H "Authorization: Bearer $REVO_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "content": "Budget for the Acme pilot moved to 40k.",
"label": "Email from Nadia",
"timestamp": "2026-07-28T16:00:00Z",
"group": "acme-pilot" }'
# 3. Poll the second ingestionId. The queue is FIFO, so once the last id
# is settled the whole feed is applied.
curl https://api.revo.ai/ingest/f8a2d5c0b7e94d21a6c4 \
-H "Authorization: Bearer $REVO_API_KEY"
# 4. Ask in natural language.
curl -X POST https://api.revo.ai/answer \
-H "Authorization: Bearer $REVO_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "query": "when does the Acme pilot ship?" }'
# 5. Ask about the fact that changed. Expect: "40k. It moved from 32k on
# July 28; Nadia confirmed the original 32k on the February 3 account
# review call."
curl -X POST https://api.revo.ai/answer \
-H "Authorization: Bearer $REVO_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "query": "what is the Acme pilot budget?" }'