Get started Markdown

Introduction

SkimmerDB is a hosted database for apps and AI agents: exact and regex search, vectors and SQL over documents kept in object storage.

SkimmerDB is a hosted database you create with one call. Make a namespace per user, agent, task or dataset, push documents into it, and read them back four ways from the same copy:

  • Exact and regex search over the text, with metadata filters, newest first.
  • Exact counts of what matches.
  • Vector search (embeddings), alone or hybrid with a text and a filter.
  • SQL over the metadata, with text matches inside WHERE.

Every namespace lives in object storage (S3), and servers keep nothing of their own. An idle namespace costs only the bytes it stores, and the first query after a long sleep opens it in a round trip or two. A write is acknowledged only once it's stored in object storage.

What it's for

UseHow it looks
Agent memory and contexta namespace per user or agent run, searched by exact names, ids and error codes, and by meaning with vectors
Search over docs, code, tickets and logsliteral or RE2 regex search with filters, exact counts, cursors that survive compaction
Semantic and hybrid searchvector search narrowed by a text match and a metadata filter in one query
Analytics over events and tracesSQL with GROUP BY and aggregates over metadata, with contains() and grep() on the text

You reach it over a REST API (https://api.skimmerdb.com/v1), the Python and TypeScript clients, or MCP for agents such as Claude, ChatGPT, Codex and Cursor.

Three calls

Sign up (the answer has your key), write (the first write makes the namespace), search:

curl
B=https://api.skimmerdb.com/v1
KEY=$(curl -s $B/signup -d '{"email": "ada@example.com", "name": "Ada", "password": "correct horse"}' | jq -r .key)

curl -s $B/namespaces/support/docs -H "Authorization: Bearer $KEY" -d '{
  "wait": true,
  "docs": [{"id": "t-1", "text": "Refund requested for order ACME-1042", "meta": {"status": "open"}}]}'

curl -s $B/namespaces/support/search -H "Authorization: Bearer $KEY" \
  -d '{"q": "acme-1042", "filter": {"status": "open"}}'

The quickstart goes on from there: filters, counts, SQL and vectors.

Where to go next

  • Quickstart: from no account to search, SQL and vectors in a few minutes.
  • Concepts: tenants, keys, namespaces, documents, and what a query costs.
  • Data model: how to choose namespaces, ids, text and metadata so everything stays fast and cheap.
  • Analytics with SQL: your documents as a column store.
  • Connect an agent: the MCP server, with OAuth or a key.
  • Agent skill: teach Claude Code or Codex to use SkimmerDB well.
  • API reference: every operation, with a console to try it.