Skip to content
home / kit / sqlite
SQLiteSQL + KV + Time-Travel

Your database is a URL.

Execute SQL and key-value operations over HTTP. Zero server, zero connection strings — just fetch().

hoody-sqlite · serverless database access

# Execute SQL via HTTP POST

$ curl -X POST "...sqlite-1.../api/v1/sqlite/db"

?db=/data/app.db \

-d '{

"transaction": [{

"query": "SELECT product_id, COUNT(*) FROM orders GROUP BY product_id LIMIT 5"

}]

}'

# Response with results

HTTP/1.1 200 OK

{

"success": true,

"results": [[

{ "product_id": 1, "count": 42},

{ "product_id": 2, "count": 38}

]]

}

No database server. No connection string. Just HTTP.

home / kit / sqlite / playground
Try It

Run SQL. See the result.

Execute SQL queries, set key-value pairs with TTL, and increment counters atomically — all over HTTP.

hoody-sqlite · interactive playground

Request

POST /api/v1/sqlite/db?db=/data/app.db

{

"transaction": [{

"query": "SELECT product_id, COUNT(*) FROM orders GROUP BY product_id LIMIT 5"

}]

}

Result (5 rows)

product_idCOUNT(*)
142
238
327
419
511

Pre-computed example result. SELECT query grouped by product_id.

home / kit / sqlite / charts
Data at a Glance

Query results become charts.

Run a SQL query, chart the results instantly. Shareable Base64 URLs let you embed live data in dashboards.

Orders by Product

Example: SELECT product_id, COUNT(*) FROM orders GROUP BY product_id

KV Operations (ops/sec)

Example: SET vs GET operation throughput over 24 hours

Shareable Query URL

GET /api/v1/sqlite/query?db=/data/app.db&sql=U0VMRUNUIFN1bShjb3VudCkgRlJPTSBvcmRlcnM=

Base64-encode any SELECT statement and share a read-only query URL. Anyone can view live data — no write access, perfectly safe.

home / kit / sqlite / kv
Key-Value Store

NoSQL speed. SQL reliability.

Atomic operations, batch updates, and time-travel history — all backed by SQLite, accessible via HTTP.

Atomic Increment

Increment counters without race conditions. Multiple simultaneous requests are serialized atomically — counter goes 5 → 6 → 7, never 5 → 6 → 6.

POST /api/v1/sqlite/kv/views:homepage/incr

{ "oldValue": 5, "newValue": 6 }

Batch 100 Keys

Get, set, or delete up to 100 keys in one atomic HTTP request. All operations succeed or all fail — 100x faster than individual requests.

POST /api/v1/sqlite/kv/batch/set

{ "success": true, "count": 100 }

TTL Auto-Expiry

Set a TTL on any key and it auto-deletes when expired. Perfect for sessions, cache, and tokens — no cleanup jobs needed.

PUT /api/v1/sqlite/kv/session:abc?ttl=3600

{ "success": true, "key": "session:abc" }

Time-Travel History

Every key change is recorded. View history, snapshot values at any timestamp, or rollback to a previous state instantly.

GET /api/v1/sqlite/kv/config:timeout/history

{ "history": [...], "total": 12 }

home / kit / sqlite / compare
vs Traditional DB

HTTP beats connection strings.

Hoody SQLite eliminates the operational overhead of traditional database servers. Your database is just a URL.

FeatureHoody SQLite over HTTPPostgres
Server installNone neededServer process
Connection stringJust a URLHost/port/user/pass
Language driverAny HTTP clientpg, mysql2
AI agent accessDriver required
Time-travelManual migrations
Atomic KV opsincr/decr/push/popApp-level only
Shareable URL
Concurrent containersFUSE mountPool per service
home / kit / sqlite / api
API REFERENCE

23 Endpoints. SQL and KV over HTTP.

Full SQL transactions, key-value CRUD, atomic ops, batch operations, and time-travel — all as plain HTTP. No SDK required.

SQL Operations

{count, plural, =1 {# endpoint} other {# endpoints}'}

POST .../api/v1/sqlite/db → {results: [{changes: 1}]}

POST
/api/v1/sqlite/dbExecute SQL transaction with full ACID guarantees
GET
/api/v1/sqlite/queryRun shareable base64-encoded SQL query via URL
POST
/api/v1/sqlite/db/createCreate a new SQLite database with optional KV init

KV Core

{count, plural, =1 {# endpoint} other {# endpoints}'}

GET .../api/v1/sqlite/kv/session-abc → {value: "...", metadata: {'}'}

GET
/api/v1/sqlite/kv/{key}Retrieve value with optional JSON path and time-travel
PUT
/api/v1/sqlite/kv/{key}Store or update value with optional TTL and compare-and-swap
DELETE
/api/v1/sqlite/kv/{key}Delete a key from the KV store
HEAD
/api/v1/sqlite/kv/{key}Check key existence without fetching the value
GET
/api/v1/sqlite/kvList all keys with optional filtering and pagination

Atomic & Batch

{count, plural, =1 {# endpoint} other {# endpoints}'}

POST .../api/v1/sqlite/kv/counter/incr → {value: 6, oldValue: 5}

POST
/api/v1/sqlite/kv/{key}/incrAtomically increment a numeric counter
POST
/api/v1/sqlite/kv/{key}/decrAtomically decrement a numeric counter
POST
/api/v1/sqlite/kv/{key}/pushAppend a value to an array (supports JSON path)
POST
/api/v1/sqlite/kv/{key}/popRemove the last element from an array
POST
/api/v1/sqlite/kv/{key}/removeRemove array element by index or value
POST
/api/v1/sqlite/kv/batch/getBatch-retrieve up to 100 keys in one atomic request
POST
/api/v1/sqlite/kv/batch/setBatch-set up to 100 keys in one atomic transaction
POST
/api/v1/sqlite/kv/batch/deleteBatch-delete up to 100 keys in one atomic transaction

Time-Travel

{count, plural, =1 {# endpoint} other {# endpoints}'}

GET .../api/v1/sqlite/kv/price/history → [{op: "set", value: 99}]

GET
/api/v1/sqlite/historyList query execution history with stats and audit trail
GET
/api/v1/sqlite/kv/{key}/historyRetrieve full change history for a specific key
GET
/api/v1/sqlite/kv/{key}/snapshotGet key value at a specific operation number
GET
/api/v1/sqlite/kv/snapshotSnapshot entire KV table state at a timestamp
GET
/api/v1/sqlite/kv/diffDiff KV table state between two timestamps
POST
/api/v1/sqlite/kv/{key}/rollbackRoll back a key N operations to a previous value
POST
/api/v1/sqlite/kv/rollbackRoll back entire KV table to a previous timestamp
home / kit / sqlite / capabilities
Capabilities

Everything your database needs. Nothing it doesn't.

A complete database toolkit: SQL transactions, key-value store, atomic operations, batch processing, and time-travel — all over HTTP.

Web Database UI

Visual SQL query interface in your browser. Execute queries, browse schema, view results in table format — no local tools needed.

SQL Transactions

Execute atomic SQL transactions via HTTP POST. Multiple statements, parameterized queries, and bulk inserts in one request.

Key-Value Store

NoSQL-style GET/SET/DELETE operations on SQLite. Perfect for config, sessions, cache, and feature flags.

Atomic Operations

Thread-safe incr, decr, push, and pop. No race conditions. Works correctly under any concurrency level.

Batch Operations

Get or set up to 100 keys in one atomic request. All-or-nothing semantics. 100x faster than individual requests.

SQLite Drive FUSE

Store databases in /hoody/databases/ for multi-container access. Concurrent-write-safe via host-level FUSE mount.

home / kit / sqlite / cta

Your database is a URL.

No server. No driver. Just HTTP. Start executing SQL and key-value operations in minutes.

Read the Docs