API Reference

The MiniMe backend is a FastAPI application running at http://localhost:8000 when running locally. The web dashboard runs at http://localhost:3000.

Stack

Python 3.10+ · FastAPI · SQLAlchemy · PostgreSQL (relational) · Qdrant (vector embeddings) · Neo4j (knowledge graph) · Redis (caching)

Authentication

Most endpoints require a JWT Bearer token. Obtain one via POST /api/v1/auth/login. Pass as Authorization: Bearer <token>.

Response format

All endpoints return JSON unless otherwise noted. Errors use standard HTTP status codes. The AI chat endpoint returns SSE (Server-Sent Events), not JSON.

Activities

POST/api/v1/activities/batch

Batch ingest activities

Primary ingest endpoint. Used by both the desktop daemon and browser extensions. Accepts an array of activity events.

Request body
{
  "source": "browser",
  "source_version": "1.1.0",
  "activities": [
    {
      "type": "web_visit",
      "occurred_at": "2026-03-05T12:00:00Z",
      "duration_seconds": 120,
      "context": {
        "url": "https://github.com",
        "domain": "github.com",
        "title": "GitHub"
      }
    }
  ]
}
GET/api/v1/activities

List activities

Retrieve paginated activities. Supports filtering by date range, source, and activity type.

Query params example

?limit=50&offset=0&start_date=2026-03-01&source=browser
GET/api/v1/activities/:id

Get single activity

Fetch a specific activity record by ID including all metadata and enrichment results.

DELETE/api/v1/activities/:id

Delete activity

Permanently remove a single activity record from your timeline.

Knowledge Graph

GET/api/v1/graph/nodes

Get graph nodes

Returns all entity nodes: person, project, skill, concept, organization, artifact, event, interaction.

Query params example

?type=skill&limit=100
GET/api/v1/graph/edges

Get graph edges

Returns relationships between nodes. Each edge has a weight reflecting how frequently the entities co-occur.

AI Chat

POST/api/ai/chat/stream

Stream a chat response

RAG-powered chat against your activity history. Returns a Server-Sent Events (SSE) stream — note the /api/ai prefix, not /api/v1/ai.

SSE response. Read with EventSource or fetch + ReadableStream. Each chunk is data: {"chunk": "...", "done": false}.

Request body
{
  "message": "What did I work on last Tuesday?",
  "conversation_id": "optional-uuid-to-continue-a-thread"
}
GET/api/ai/conversations

List conversations

Returns all saved chat conversations with their titles and creation timestamps.

Analytics

GET/api/v1/analytics/focus

Focus score

Returns daily focus scores calculated from deep work periods vs. context-switching frequency.

Query params example

?start_date=2026-03-01&end_date=2026-03-07
GET/api/v1/analytics/summary/weekly/email

Send weekly digest email

Triggers generation and delivery of the weekly activity summary email for the authenticated user.

Users & Settings

GET/api/v1/users/me

Get current user

Returns the authenticated user profile including plan, preferences, and connected integrations.

POST/api/v1/auth/login

Login

Authenticates a user and returns a JWT access token.

Request body
{
  "email": "user@example.com",
  "password": "yourpassword"
}