API Reference
Base URL
http://api.rabbit.reattend.ai:8000Authentication
All requests require a Bearer token in the Authorization header:
Authorization: Bearer rab_test_YOUR_KEYPOST /v1/remember
Ingest content into memory. Runs the full AI pipeline.
curl -X POST http://api.rabbit.reattend.ai:8000/v1/remember \
-H "Authorization: Bearer rab_test_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"content": "Sarah delayed the launch to March 15. Budget is $50K.",
"source": "meeting"
}'Returns: id, summary, triage_type, tags, extraction (people, decisions, action_items, dates), sentiment, importance, links
POST /v1/ask
Ask a question across all stored memories.
curl -X POST http://api.rabbit.reattend.ai:8000/v1/ask \
-H "Authorization: Bearer rab_test_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"question": "When is the launch?",
"limit": 5,
"reasoning": false
}'Set reasoning: true for deep analysis on complex questions.
Set stream: true for Server-Sent Events streaming.
POST /v1/check
Detect contradictions with stored memories.
curl -X POST http://api.rabbit.reattend.ai:8000/v1/check \
-H "Authorization: Bearer rab_test_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"context": "We are launching on March 1st"}'POST /v1/remember/file
Upload a file (audio, PDF, image, DOCX, etc.).
curl -X POST http://api.rabbit.reattend.ai:8000/v1/remember/file \ -H "Authorization: Bearer rab_test_YOUR_KEY" \ -F "file=@recording.mp3" \ -F "source=meeting"
Other Endpoints
GET
/v1/memoriesList stored memoriesGET
/v1/memories/:idGet a specific memoryDELETE
/v1/memories/:idDelete a memoryGET
/v1/graph/:idGet memory connectionsPOST
/v1/compile/:entityCompile wiki page for entityPOST
/v1/lintRun health auditGET
/v1/statsUsage statisticsPOST
/v1/feedbackSubmit thumbs up/downPython SDK
pip install rabbit-memory
from rabbit import Rabbit
rab = Rabbit("rab_test_YOUR_KEY")
# Remember
m = rab.remember("Meeting notes here...", source="meeting")
print(m.summary)
# Ask
a = rab.ask("What was decided?")
print(a.text)
# Check contradictions
alert = rab.check("We're launching March 1")
if alert.show:
print(f"Warning: {alert.context}")
# Feedback
rab.thumbs_up(question="...", answer_text="...")
rab.thumbs_down(question="...", answer_text="...", correction="Better answer here")JavaScript SDK
npm install @reattend/rabbit
import { Rabbit } from '@reattend/rabbit';
const rab = new Rabbit('rab_test_YOUR_KEY');
const memory = await rab.remember('Meeting notes...', { source: 'meeting' });
const answer = await rab.ask('What was decided?');
console.log(answer.text);Rate Limits
Test key (rab_test_*)100 calls/day, 1,000/month
Live key (rab_live_*)10,000 calls/day, 100,000/month