Interactive OpenAPI docs are available at /docs and /redoc when the backend is running.
POST /api/auth/registerCreates a user and returns a bearer token.POST /api/auth/loginAuthenticates an existing user and returns a bearer token.GET /api/auth/googleStarts Google OAuth.GET /api/auth/google/callbackCompletes Google OAuth and redirects back to the frontend.GET /api/auth/meReturns the current authenticated user.
POST /api/documents/uploadUpload one or morePDF,HTML, orCSVfiles. Supports bounded batched ingestion and optional namespace isolation. Response status is202 Acceptedbecause ingestion continues in the background.GET /api/documents/namespacesLists isolated document namespaces available to the authenticated user.GET /api/documents/Lists the current user's uploaded documents and processing state. Supports namespace-scoped listing.DELETE /api/documents/namespaces/{namespace}Deletes an isolated namespace and its associated uploaded documents.DELETE /api/documents/{doc_id}Deletes a document, its chunks, and its stored object.
GET /api/chat/conversationsLists saved conversations.POST /api/chat/conversationsCreates a conversation scoped to selected document IDs.DELETE /api/chat/conversations/{conv_id}Deletes a conversation and its messages.GET /api/chat/conversations/{conv_id}/messagesReturns stored conversation history.POST /api/chat/conversations/{conv_id}/streamStreams a chat answer over Server-Sent Events.
chunk: partial model outputsources: cited source chunkshallucination: grounding score and labeldone: terminal eventerror: error payload
GET /Basic service health.GET /healthDetailed health, including database/storage status.GET /metricsPrometheus metrics endpoint.
For the public Render deployment, the most reliable scripted evaluation path is:
- authenticate,
- upload documents in batches of
25to50, - poll
GET /api/documents/untilready, - run sampled chat checks instead of a full uncontrolled public stress sweep.
This uses the real production paths while staying within the limits of the public demo environment.