StandBy API Documentation
Access your lifelogs, notes, messages, sessions, and transcriptions through a powerful REST API and MCP Protocol integration.
Quick Start
Get up and running in minutes
Get API Key
Generate your API credentials
MCP Protocol
Integrate with AI assistants
Key Features
RESTful API
Individual endpoints for lifelogs, notes, messages, sessions, and transcriptions
MCP Protocol
Single tool wrapping multiple REST endpoints for AI assistants
Semantic Search
Natural language queries with vector search using OpenAI embeddings
Security
SHA-256 API key hashing, PII masking, and audit logging
Rate Limiting
Plan-based throttling from 100-2000 requests/hour
Multiple Data Types
Access lifelogs, notes, direct messages, sessions, and transcriptions
Quick Start
1. Get your API Key
Generate an API Key at platform.stand-by.ai/setting/api-keys
sb_ prefix. Keep it secure and never share it publicly.2. Make your first request
Use the API to fetch your lifelogs:
curl -X GET \
"https://standby-mcp-integration-fhyct5vgfq-uc.a.run.app/api/v1/lifelogs" \
-H "Authorization: Bearer sb_your_api_key_here"3. Configure Claude Desktop (Optional)
To use StandBy with Claude Desktop via MCP Protocol, edit your config file:
- • macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - • Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"standby": {
"command": "npx",
"args": [
"mcp-remote",
"https://standby-mcp-integration-fhyct5vgfq-uc.a.run.app/sse",
"--header",
"Authorization:Bearer ${STANDBY_API_KEY}"
],
"env": {
"STANDBY_API_KEY": "sb_your_api_key_here"
}
}
}
}4. Restart Claude Desktop
Close and reopen Claude Desktop. The "StandBy" tool will appear in your "add tools" options.
Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header with each request.
Header Format
Authorization: Bearer sb_your_api_key_hereAPI Key Properties
- Keys start with
sb_prefix - Keys don't expire but can be revoked anytime
- Keys are hashed with SHA-256 for storage security
- Each key is scoped to a single user account
REST API
Available Endpoints
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/v1/lifelogs | List lifelog events (chapters/scenes) |
| GET | /api/v1/lifelogs/{id} | Get single lifelog event |
| GET | /api/v1/notes | List notes with optional tag filtering |
| GET | /api/v1/notes/{id} | Get single note |
| GET | /api/v1/direct-messages | List direct messages |
| GET | /api/v1/direct-messages/{id} | Get single message |
| GET | /api/v1/sessions | List sessions |
| GET | /api/v1/sessions/{id} | Get single session |
| GET | /api/v1/transcriptions | List transcriptions |
| GET | /api/v1/transcriptions/{id} | Get single transcription |
MCP Protocol
The Model Context Protocol (MCP) provides a standardized way for AI assistants to access StandBy data. It uses Server-Sent Events (SSE) transport for real-time communication.
Available Tool: query_standby_data
A single MCP tool that provides access to all StandBy data types through a unified interface.
Tool Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
resource | string | Yes | Resource type: lifelogs, notes, direct_messages, sessions, transcriptions |
sessionId | string | No | Filter by specific session |
semantic.query | string | No | Natural language search query |
semantic.scoreThreshold | number | No | Similarity threshold (0.0-1.0) (default: 0.5) |
date | string | No | Filter by date (YYYY-MM-DD) |
start | string | No | Start datetime for range filter |
end | string | No | End datetime for range filter |
timezone | string | No | IANA timezone for date interpretation (default: UTC) |
limit | integer | No | Maximum results (max: 100) (default: 20) |
offset | integer | No | Pagination offset (default: 0) |
Semantic Search
Semantic search allows you to find relevant data using natural language queries. It uses OpenAI embeddings with Qdrant vector database for accurate similarity matching.
Example: Semantic Search
curl -X GET \
"https://standby-mcp-integration-fhyct5vgfq-uc.a.run.app/api/v1/lifelogs?semantic.query=meeting%20with%20client&semantic.scoreThreshold=0.5" \
-H "Authorization: Bearer sb_your_api_key_here"Search Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
semantic.query | string | Yes | Natural language search query |
semantic.scoreThreshold | number | No | Minimum similarity score (0.0-1.0). Higher values return more relevant results. (default: 0.5) |
score field indicating the similarity score. Results are sorted by score descending.Rate Limits
The API implements rate limiting to ensure fair usage. Limits vary based on your subscription plan.
| Plan | Requests/Hour | Daily Limit |
|---|---|---|
| Free | 100 | 1,000 |
| Basic | 500 | 5,000 |
| Premium | 2,000 | 20,000 |
429 Too Many Requests status. Wait before retrying.Error Codes
| Status | Error Code | Description |
|---|---|---|
| 400 | invalid-parameters | Invalid request parameters |
| 400 | invalid-date-format | Date/datetime format is invalid |
| 400 | invalid-request | Missing required fields or malformed request |
| 401 | missing-api-key | Authorization header not provided |
| 401 | invalid-api-key | API key is invalid or disabled |
| 403 | forbidden | Access to this resource is not allowed |
| 404 | not-found | Resource not found |
| 429 | rate-limit-exceeded | Rate limit exceeded |
| 500 | internal-error | Server error, please retry later |
Error Response Format
{
"error": "invalid-api-key",
"message": "API key is invalid or disabled",
"details": {}
}Troubleshooting
"spawn npx ENOENT"
This error means Node.js is not installed on your system.
Solution: Install Node.js from nodejs.org
"Server disconnected"
This usually indicates an authentication problem or network issue.
Solution: Check that your API key is valid and correctly formatted. Ensure it starts with sb_. Then restart Claude Desktop.
"401 Unauthorized"
Your API key is missing or invalid.
Solution: Verify your API key at platform.stand-by.ai/setting/api-keys. Make sure you're using the Bearer token format: Authorization: Bearer sb_xxx
"No results found"
Semantic search returns empty results.
Solution: Try lowering the semantic.scoreThreshold parameter (e.g., from 0.5 to 0.3). Also ensure you have data in the specified date range.
