Skip to main content
Set stream: true on any POST /api/v1/completions request to receive a Server-Sent Events (SSE) stream instead of a single JSON response.

Request

curl -N -X POST https://hitheo.ai/api/v1/completions \
  -H "Authorization: Bearer $THEO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"prompt": "Write a haiku about code", "stream": true}'
Requires authentication via Bearer token. See Authentication.

Event Types

EventDescription
metaEngine info, resolved mode, active skills — emitted first
tokenA text chunk — emitted for each token as it’s generated
toolA tool was called — includes tool name, arguments, and status
artifactA generated file (image, document, code)
doneFinal event — includes full response with usage data
errorAn error occurred during processing

Example Stream

event: meta
data: {"resolved_mode":"fast","model":{"id":"theo-1-flash","label":"Theo Flash"}}

event: token
data: {"token":"Lines"}

event: token
data: {"token":" of"}

event: token
data: {"token":" code"}

event: done
data: {"content":"Lines of code...", "usage": {"cost_cents": 0.01}}

SDK Usage

for await (const event of theo.stream({ prompt: "Explain DNS" })) {
  switch (event.type) {
    case "meta":  console.log("Mode:", (event.data as any).resolved_mode); break;
    case "token": process.stdout.write(event.token!); break;
    case "done":  console.log("\nDone"); break;
  }
}
See Streaming for the full conceptual guide.