API Reference

Reattend REST API

Capture, search, and query your memory programmatically. Four endpoints. One auth header.

Base URL:https://reattend.com

Overview

The Reattend API lets you capture anything to your memory, search it semantically, and ask questions grounded in what you've saved. It's the same API used by the MCP server and GitHub Action.

Authentication

All endpoints require a Bearer token. Get yours from Settings → API Token. Tokens start with rat_.

Authorization: Bearer rat_your_token_here

Tokens are workspace-scoped. Keep them secret — treat them like a password.

POST/api/tray/capture

Save a memory

Save any text to your Reattend memory. Supports deduplication — if you send the same content twice within a short window, the second call is a no-op.

Request body

ParameterTypeRequiredDescription
textstringrequiredThe content to save. Min 15 characters.
sourcestringoptionalLabel for the source. Defaults to "api". Examples: "github", "slack", "notion".
metadataobjectoptionalArbitrary key/value pairs attached to the memory. Shown in the detail view.

Example request

curl -X POST https://reattend.com/api/tray/capture \
  -H "Authorization: Bearer rat_your_token" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "Decided to migrate auth to Clerk. Reason: better session management and built-in MFA.",
    "source": "notion",
    "metadata": { "page": "Architecture Decisions", "author": "partha" }
  }'

Response

{
  "status": "saved",      // "saved" | "deduped" | "filtered"
  "id": "rec_abc123"
}
GET/api/tray/ask

Ask a question

Ask a natural-language question and get an AI answer grounded in your saved memories. Uses RAG — retrieves relevant context, then generates a response.

Query parameters

ParameterTypeRequiredDescription
qstringrequiredThe question to answer.

Example request

curl "https://reattend.com/api/tray/ask?q=Why+did+we+choose+Clerk+for+auth%3F" \
  -H "Authorization: Bearer rat_your_token"

Response

{
  "answer": "You chose Clerk for auth because it offers better session management and built-in MFA support, as noted in your architecture decisions from March 2025.",
  "sources": [
    {
      "id": "rec_abc123",
      "title": "Auth migration decision",
      "createdAt": "2025-03-20T10:00:00.000Z"
    }
  ]
}
GET/api/tray/recent

Get recent memories

Returns the most recently saved memories, sorted by creation time descending.

Query parameters

ParameterTypeRequiredDescription
limitnumberoptionalNumber of results. Defaults to 10, max 50.

Example request

curl "https://reattend.com/api/tray/recent?limit=20" \
  -H "Authorization: Bearer rat_your_token"

Response

{
  "memories": [
    {
      "id": "rec_xyz789",
      "title": "Weekly standup — March 27",
      "summary": "Discussed Q2 roadmap, auth migration, and API docs.",
      "type": "meeting",
      "source": "slack",
      "createdAt": "2025-03-27T09:00:00.000Z"
    }
  ]
}

Errors

HTTP statusMeaning
400Bad request — missing or invalid parameters.
401Unauthorized — missing or invalid token.
429Rate limited — too many requests.
500Server error.

Capture status codes

A 200 response from /api/tray/capture includes a status field:

StatusMeaning
savedMemory was saved successfully.
dedupedIdentical or near-identical content was already saved recently. No duplicate created.
filteredContent was too short or low-signal. Not saved.

SDKs & Tools