Each component of the assistant exposes its own REST API. Memory on port 10101, reasoning on 30101 and orchestration on 20020.
| Base URL | http://localhost:<port> |
|---|---|
| Format | JSON · Content-Type: application/json |
| Memory/brain auth | Bearer token |
| Tenant | X-Soma-Tenant |
| OpenAPI | /openapi.json |
Authorization: Bearer $SOMA_API_TOKEN X-Soma-Tenant: my-tenant Content-Type: application/json
| Method | Path | Description |
|---|---|---|
| POST | /memories | Stores a memory (coordinate + payload). |
| POST | /memories/search | Searches memories by semantic similarity. |
| POST | /graph/link | Creates an edge between two graph nodes. |
| GET | /graph/neighbors | Neighbors of a graph node. |
| GET | /graph/path | Path between two graph nodes. |
| GET | /healthz · /readyz · /health | Health probes and detail. |
| GET | /stats · /ping · /metrics | Stats, ping and Prometheus metrics. |
| GET | /openapi.json | OpenAPI specification. |
curl -X POST localhost:10101/memories \
-H "Authorization: Bearer $TOKEN" \
-H "X-Soma-Tenant: my-tenant" \
-d '{
"coord": "1.0,2.0,3.0",
"payload": {"content": "The user prefers dark mode"},
"memory_type": "semantic"
}'
curl -X POST localhost:10101/memories/search \
-H "Authorization: Bearer $TOKEN" \
-H "X-Soma-Tenant: my-tenant" \
-d '{
"query": "dark mode",
"top_k": 5
}'
curl localhost:10101/healthz
# {"kv_store":true,
# "vector_store":true,
# "graph_store":true}
| Method | Path | Description |
|---|---|---|
| POST | /memory/remember | Consolidates content into cognitive memory. |
| POST | /memory/recall | Retrieves context by query. |
| GET | /health · /healthz | Brain status. |
| GET | /api/v1/health/ | API v1 — status. |
| GET | /api/v1/memory/ | API v1 — memory. |
| GET | /api/v1/cognitive/ | API v1 — cognitive operations. |
curl -X POST localhost:30101/memory/remember \
-H "Content-Type: application/json" \
-d '{"content": "Relevant context from the session"}'
curl -X POST localhost:30101/memory/recall \
-H "Content-Type: application/json" \
-d '{"query": "what does it know about this user?"}'
| Method | Path | Description |
|---|---|---|
| POST | /api/v2/auth/token | Obtains an access token. |
| GET | /api/v2/health | Orchestrator status. |
| GET | /api/v2/docs | Interactive documentation. |
| POST | /api/v2/memory | Agent memory operations. |
| POST | /api/v2/uploads | File and attachment uploads. |
curl -X POST localhost:20020/api/v2/auth/token \
-H "Content-Type: application/json" \
-d '{"username":"...","password":"..."}'
curl localhost:20020/api/v2/health
Integrate the Yachaq assistant into your application through the chat gateway, which manages session, profile and voice.
The gateway receives the message, resolves the yachaq-ai profile, keeps the session context and syncs speech to text and back to speech.
Try the assistant live ↗{
"message": "What are the current SRI rates?",
"context_id": "session-id",
"agent_profile": "yachaq-ai",
"lang": "en",
"attachments": []
}