All API responses are JSON unless noted. Authenticated endpoints require:
Authorization: Bearer <supabase_access_token>
Creates a research session.
Request:
{ "query": "Research AI agent evaluation systems" }Response:
{ "session": { "id": "...", "status": "draft", "phase": "intake" } }Lists sessions for the authenticated user.
Returns session detail with sources, evaluations, learnings, events, and report.
Runs the research pipeline for an owned session.
Records approval, rejection, or follow-up request.
Request:
{
"action": "approve",
"notes": "Sources look good.",
"approvedSourceIds": ["src_abc"]
}Returns server-sent event formatted run events.
Exports the session report as markdown.
Errors use a consistent envelope:
{
"error": {
"code": "validation_error",
"message": "The request payload is invalid.",
"details": {}
}
}