OriginChainDB docs
Get started

OriginChainDB documentation

OriginChainDB is a managed database that answers five kinds of question against the same data: SQL for filters and aggregates, vector for similarity, full-text for keywords, graph for relationships, and natural language for everything else.

All five share one endpoint, one bearer token, one row store. A row written once is visible to all of them. New to the database? Hit the quickstart below. Already shipping? Jump to the per-shape reference pages.

how it fits together

One row store, five kinds of question.

A row is written once. Every surface below reads that same row through the same endpoint and the same bearer token. There is no copy to keep in sync, no second store to provision, and no window where one surface can see a write the others cannot.

write
POST /rows/:schema
one row, written once
no second store, no sync step
one row store
the same rows, the same transaction boundary, the same access rules
one endpoint · one token
filter
SQL

Which rows match?

POST /sql
similarity
Vector

What is it similar to?

POST /vector/:t/topk
keyword
Full-text

Which mention this?

GET /fts/:t/:f
traversal
Graph

How are these linked?

GET /graph/:s/neighbors
natural language
NQL

Just ask in English.

POST /ask

Not sure which to reach for? Choosing a query shape compares them side by side on the same data.

Quickstart →

Five minutes from signup to your first SQL, vector, full-text, and graph query - with cURL, Python, TypeScript, and Go side by side.

1 · write a row — every shape commits together http
curl -X POST "https://$OC_HOST/v1/tenants/$OC_TENANT/rows/shop.orders" \
  -H "Authorization: Bearer $OC_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "id":           "01JTRX9KQ3YH8K2WMX0F5JZAB7",
    "customer":     "01JTRX1H4Q9P0N2WMX0F5JZ001",
    "amount_cents": 12950,
    "status":       "paid",
    "notes":        "rush delivery, signed by recipient",
    "placed_ms":    1714478049000
  }'
2 · read it back — SQL on the same row http
curl -X POST "https://$OC_HOST/v1/tenants/$OC_TENANT/sql" \
  -H "Authorization: Bearer $OC_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "sql": "SELECT customer, SUM(amount_cents) AS total FROM shop.orders WHERE status = '\''paid'\'' GROUP BY customer LIMIT 10"
  }'

Both calls are lifted from the quickstart, where the same steps are shown in cURL, Python, TypeScript and Go. Vector, full-text and graph reads against that row follow the same pattern.

Query shapes

Pick the right one for your question.

Each shape gets its own reference page with cURL, Python, TypeScript, and Go examples. Not sure which to use? Choosing a query shape has a side-by-side comparison.

By topic

Or by topic.

Choosing a query shape, SDKs, the CLI, the dashboard, deployment, operations.

Platform

Auth, errors, limits, fixes.

The platform reference - things you need once, then come back to when something breaks.

HTTP API reference

Every endpoint - schemas, rows, sql, vector, fts, graph, ask, migrations, replication, health. Bearer auth, idempotency keys, rate-limit headers.

MCP server for Claude Desktop / Cursor

@originchain/mcp-server - drop into claude_desktop_config.json and your AI agent can ask, SQL, vector-search, FTS, and list schemas on your tenant.

Start free · no card required See the architecture Pricing & configurations