OpenAPI · Streaming · Full content lifecycle

A real API for
your RAG product.

Search, chat (with streaming), summarize, ingest, and manage content. Everything is documented and served from your own instance.

curl -X POST https://ai.example.com/v1/apps/support-bot/chat \
-H "Authorization: Bearer $KEY" \
-d '{ "message": "How do refunds work?", "stream": true }'
SSE stream of events:
message_start · content_delta · citation · message_stop

One API surface to build everything on.

Search & Summarize
Ranked results with scores and citations, plus an optional AI summary on top. A good fit for support bots, help centers, and product search.
Chat (streaming)
Full conversational RAG over SSE, with built-in tool calling so retrieval runs inside the model turn.
Content lifecycle
Create indexes, batch ingest items, update by stable ID, soft-delete, list with hashes for reconciliation.
Apps & tokens
Create scoped "apps". Mint client tokens and origin-restricted publishable keys for public widgets.
import { DatalumoClient } from '@datalumo/client'
const client = new DatalumoClient({ base: 'https://ai.example.com', key: 'pk_...' })
const { answer, citations } = await client.chat('support-bot', { message: '...' })

Served from your instance

When running the container, the OpenAPI UI is available at /docs on your instance.