Session Artifacts
Named text artifacts attached to sessions. All routes enforce session ownership. Note: GET /api/sessions/:id/artifacts returns media artifacts (screenshots + recording). Named text artifacts use the sub-paths below.
POST
/api/sessions/:sessionId/artifactsCreate or overwrite a named artifact. Max content size: 500KB.
Body Parameters
namestringrequiredArtifact name (must not contain ":")contentstringrequiredArtifact content (max 500KB)contentTypestringMIME type (default: text/plain)metadataobjectOptional key-value metadataResponse
{
"name": "research-notes",
"content": "Key findings...",
"contentType": "text/plain",
"createdAt": "2026-03-01T10:00:00Z"
}GET
/api/sessions/:sessionId/artifacts/:nameRetrieve a named artifact by name.
Response
{
"name": "research-notes",
"content": "Key findings from the session...",
"contentType": "text/plain",
"createdAt": "2026-03-01T10:00:00Z"
}DELETE
/api/sessions/:sessionId/artifacts/:nameDelete a named artifact.
Response
204 No Content
GET
/api/artifacts/searchSearch artifacts across all sessions for the authenticated user.
Query Parameters
qstringrequiredSearch querylimitintegerMax results, 1–50 (default 10)Response
{
"results": [
{
"name": "research-notes",
"sessionId": "session-abc",
"score": 0.95
}
],
"count": 1,
"query": "pricing"
}POST
/api/artifacts/chatAsk an LLM a question about your artifacts. Searches relevant artifacts and returns an AI-generated answer.
Body Parameters
querystringrequiredQuestion to ask (max 1000 chars)sessionIdsstring[]Optional: limit to specific session UUIDslimitintegerMax artifacts to include (1–20, default 5)Response
{
"answer": "Based on your research notes, the pricing...",
"sources": [
{ "name": "research-notes", "sessionId": "session-abc" }
]
}