Authentication
API Key Authentication
All API requests require authentication using an API key. Include your API key in the request header:
# Using curl
curl -X POST http://localhost:9100/api/brain/memory/store \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"content": "Example memory"}'
# Using JavaScript fetch
fetch('http://localhost:9100/api/brain/memory/store', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
content: 'Example memory'
})
})Note: For local development, API key authentication is optional. In production, always use API keys and HTTPS.
Rate Limiting
API requests are rate limited to ensure fair usage:
- Free tier: 100 requests per minute
- Pro tier: 1,000 requests per minute
- Enterprise: Custom limits
Rate limit headers are included in every response:
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 95
X-RateLimit-Reset: 1704153600Memory API
Store, recall, and search semantic memories with VoyageAI embeddings
Base URL: http://localhost:9100/api/brain/memory/api/brain/memory/storeStore a new memory with embeddings
Parameters:
contentstringrequiredMemory content to storetagsstring[]Tags for categorizationmetadataobjectAdditional metadata/api/brain/memory/recallRecall memories using semantic search
Parameters:
querystringrequiredSearch querylimitnumberMax results (default: 10)scoreThresholdnumberMin similarity score (0-1)/api/brain/memory/searchUnified search across all memory types
Parameters:
querystringrequiredSearch queryfiltersobjectFilter by type, tags, date rangelimitnumberMax results (default: 20)/api/brain/memory/listList all stored memories with pagination
Parameters:
limitnumberResults per page (default: 20)offsetnumberPagination offsetVision API
Video processing, frame extraction, and scene detection
Base URL: http://localhost:9100/api/brain/videoagent/api/brain/videoagent/submit-jobSubmit video for processing
Parameters:
filenamestringrequiredVideo filenamevideoUrlstringURL to video fileoptionsobjectProcessing optionsuserIdstringUser ID for tracking/api/brain/videoagent/statusCheck video processing status
Parameters:
jobIdstringrequiredJob ID from submit-job/api/brain/videoagent/resultGet completed video processing results
Parameters:
jobIdstringrequiredJob ID from submit-job/api/brain/videoagent/cancelCancel a running video processing job
Parameters:
jobIdstringrequiredJob ID to cancelOrchestrator API
Multi-agent task coordination and execution
Base URL: http://localhost:9100/api/brain/orchestrate/api/brain/orchestrate/submitSubmit task for multi-agent orchestration
Parameters:
taskstringrequiredTask descriptionmaxAgentsnumberMax agents (default: 3)timeoutnumberTimeout in ms (default: 180000)contextobjectAdditional context/api/brain/orchestrate/statusCheck orchestration task status
Parameters:
jobIdstringrequiredJob ID from submit/api/brain/orchestrate/resultGet completed orchestration results
Parameters:
jobIdstringrequiredJob ID from submit/api/brain/orchestrate/agent/collaborateMulti-agent collaboration on complex tasks
Parameters:
objectivestringrequiredCollaboration objectiveagentsarrayAgent configurationiterationsnumberIterations (default: 2)Documents API
Document processing, chunking, and retrieval
Base URL: http://localhost:9100/api/brain/fileprocess/api/brain/fileprocess/submit-urlSubmit document URL for processing
Parameters:
fileUrlstringrequiredDocument URLfilenamestringrequiredDocument filenamemetadataobjectDocument metadatauserIdstringUser ID for tracking/api/brain/fileprocess/submit-fileSubmit document file for processing
Parameters:
filenamestringrequiredDocument filenamefileSizenumberFile size in bytesmimeTypestringMIME typemetadataobjectDocument metadata/api/brain/fileprocess/statusCheck document processing status
Parameters:
jobIdstringrequiredJob ID from submit/api/brain/fileprocess/store-documentStore document with intelligent chunking
Parameters:
contentstringrequiredDocument contenttitlestringDocument titlemetadataobjectDocument metadataGeospatial API
Geocoding, coordinate transformation, and spatial analysis
Base URL: http://localhost:9100/api/brain/geospatial/api/brain/geospatial/geocodeConvert address to coordinates
Parameters:
addressstringrequiredAddress to geocode/api/brain/geospatial/reverse-geocodeConvert coordinates to address
Parameters:
latitudenumberrequiredLatitudelongitudenumberrequiredLongitude/api/brain/geospatial/distanceCalculate distance between coordinates
Parameters:
fromobjectrequiredStart coordinatestoobjectrequiredEnd coordinatesunitstringkm or miles (default: km)/api/brain/geospatial/proximityFind points within radius
Parameters:
centerobjectrequiredCenter coordinatesradiusnumberrequiredRadius in kmpointsarrayrequiredPoints to checkLearning API
Progressive knowledge building and recall
Base URL: http://localhost:9100/api/brain/learning/api/brain/learning/triggerTrigger progressive learning on a topic
Parameters:
topicstringrequiredLearning topicprioritynumberrequiredPriority 1-10triggerstringrequiredTrigger reasoncontextobjectAdditional context/api/brain/learning/recallRecall learned knowledge on a topic
Parameters:
topicstringrequiredTopic to recalllayerstringOVERVIEW|PROCEDURES|TECHNIQUES|EXPERT|allmaxResultsnumberMax results (default: 10)Connect API
MCP tool execution and server management
Base URL: http://localhost:9100/api/brain/connect/api/brain/connect/executeExecute an MCP tool
Parameters:
toolstringrequiredTool nameparametersobjectrequiredTool parameters/api/brain/connect/toolsList all available MCP tools
/api/brain/connect/serversList all MCP servers
/api/brain/connect/server/addAdd a new MCP server
Parameters:
namestringrequiredServer nameconfigobjectrequiredServer configurationResponse Formats
Standard JSON Response
All API endpoints return JSON responses with the following structure:
{
"success": true,
"data": {
// Response data
},
"metadata": {
"requestId": "req_abc123",
"timestamp": "2025-11-07T10:00:00Z",
"processingTime": 123
}
}
// Error response
{
"success": false,
"error": {
"code": "INVALID_PARAMETER",
"message": "The 'query' parameter is required",
"details": {}
},
"metadata": {
"requestId": "req_abc123",
"timestamp": "2025-11-07T10:00:00Z"
}
}Server-Sent Events (SSE) Streaming
Long-running operations support real-time progress updates via SSE:
// Connect to SSE stream
const eventSource = new EventSource(
'http://localhost:9100/api/brain/orchestrate/stream?jobId=job_abc123'
);
eventSource.onmessage = (event) => {
const data = JSON.parse(event.data);
console.log('Progress:', data);
};
// SSE event format
{
"type": "progress",
"jobId": "job_abc123",
"state": "in_progress",
"progress": 45,
"message": "Agent 2/5 completed research phase",
"metadata": {
"agentId": "agent_xyz",
"phase": "research"
}
}Error Codes
400 Bad RequestInvalid parameters or malformed request
401 UnauthorizedMissing or invalid API key
403 ForbiddenInsufficient permissions for this operation
404 Not FoundResource not found
429 Too Many RequestsRate limit exceeded
500 Internal Server ErrorServer error - please contact support
503 Service UnavailableService temporarily unavailable
