← Research workspace

SIGNAL API

The local runner exposes the routes below. The FastAPI deployment provides interactive Swagger documentation at this same path and its schema at /openapi.json.

Collections and sources

GET  /api/health
GET  /api/config
GET  /api/collections
POST /api/collections              {"name":"Research"}
POST /api/sample                  {}
GET  /api/collections/{id}
GET  /api/collections/{id}/documents?q=term
POST /api/collections/{id}/documents
     {"title":"Source", "text":"At least 20 characters of readable text."}
POST /api/collections/{id}/upload
     {"filename":"source.txt", "data":"base64-encoded UTF-8 bytes"}
POST /api/collections/{id}/url      {"url":"https://…"}
GET  /api/documents/{id}

Analysis

POST /api/collections/{id}/analyze {"provider":"local"}
GET  /api/collections/{id}/status
GET  /api/collections/{id}/analysis
GET  /api/collections/{id}/entities
GET  /api/collections/{id}/topics
GET  /api/collections/{id}/clusters
GET  /api/collections/{id}/signals
GET  /api/collections/{id}/brief

Analysis returns HTTP 202. Poll status until complete or failed. Unchanged successful analysis is cached. Errors return a detail message with 400, 404, 409, 413, 415, 422, 429 or 503 as appropriate. The openai provider requires server configuration.

This is a single-workspace API. Protect the production service with authentication and rate limits before exposing private sources or a paid model key.