Your database is a URL.
Execute SQL transactions and key-value operations over HTTP. No database server, no connection string, no driver — just an authenticated request.
# Execute a SQL transaction via HTTP POST
$ curl -X POST "https://abc123-def456-sqlite-1.node-us-1.containers.hoody.com
/api/v1/sqlite/db?db=/data/app.db" \
-d '{
"transaction": [{
"statement": "INSERT INTO orders (product_id, qty) VALUES (42, 3)"
}]
}'
# One ACID transaction, one JSON result
HTTP/1.1 200 OK
{
"results": [
{
"success": true,
"rowsUpdated": 1
}
]
}
No database server. No connection string. Just HTTP.
Run a query. See the result.
Run a shareable SQL query, set a key with a TTL, and increment a counter atomically — every operation is one HTTP call.
Request
GET /api/v1/sqlite/query
?db=/data/app.db
&sql=U0VMRUNUIHByb2R1Y3RfaWQsIENPVU5UKCopIEZST00gb3JkZXJzIEdST1VQIEJZIHByb2R1Y3RfaWQgTElNSVQgNQ==
# decodes to:
# SELECT product_id, COUNT(*) FROM orders
# GROUP BY product_id LIMIT 5
Result (5 rows)
| product_id | COUNT(*) |
|---|---|
| 1 | 42 |
| 2 | 38 |
| 3 | 27 |
| 4 | 19 |
| 5 | 11 |
The shareable query endpoint decodes the base64 SQL and returns columns and rows — read-only, so it is safe to embed in a URL.
Query results become charts.
Run a query, chart the result instantly. Base64-encoded query URLs let you share live, read-only data straight into a dashboard.
Orders by Product
Five products, aggregated and charted live from a single query.
KV Operations (ops/sec)
Set and get throughput sampled across a 24-hour window.
Shareable Query URL
GET /api/v1/sqlite/query?db=/data/app.db&sql=U0VMRUNUIFN1bShjb3VudCkgRlJPTSBvcmRlcnM=
Base64-encode any read statement and share the query as a URL. Anyone with the link sees live data — read-only, with no write access.
NoSQL speed. SQLite reliability.
Atomic operations, batch writes, and time-travel history — all backed by the same SQLite runtime, all reachable over HTTP.
Atomic Increment
Increment counters without race conditions. Simultaneous requests are serialized by the engine, so the counter steps 5, 6, 7 — never double-counts under load.
POST /api/v1/sqlite/kv/views:homepage/incr
{ "key": "views:homepage", "value": 6, "previous": 5 }
Batch 100 Keys
Get, set, or delete up to 100 keys in one atomic request. Every operation in the batch succeeds together or fails together.
POST /api/v1/sqlite/kv/batch/set
{ "items": [{ "key": "user:1", "value": "Alice" }] }
TTL Auto-Expiry
Attach a TTL to any key and it deletes itself on expiry. Ideal for sessions, cache entries, and short-lived tokens — no sweeper needed.
PUT /api/v1/sqlite/kv/session:abc?ttl=3600
{ "status": "ok", "key": "session:abc", "created": true }
Time-Travel History
Every change to a key is recorded with an operation number. Read the full history, reconstruct the value at any operation, or roll back to a prior state.
GET /api/v1/sqlite/kv/config:timeout/history
{ "operations": [{ "op_number": 12, "op_type": "set" }], "total": 12 }
HTTP beats connection strings.
Hoody SQLite drops the operational overhead of a database server. The database is just a URL you call with a token.
| Feature | Hoody SQLite over HTTP | Postgres |
|---|---|---|
| Server install | None needed | Server process |
| Connection string | Just a URL | Host / port / user / pass |
| Language driver | Any HTTP client | pg, mysql2 |
| AI agent access | Native HTTP | Driver required |
| Time-travel | Built-in KV history | Manual snapshots |
| Atomic KV ops | incr, decr, push, pop | App-level only |
| Shareable query | Base64 GET URL | Not available |
| Concurrent containers | SQLite Drive (shared) | Pool per service |
30 Endpoints. SQL and KV over HTTP.
SQL transactions, key-value CRUD, atomic operations, batch writes, time-travel, and health — every one a plain HTTP call. No SDK required.
SQL Operations
3 endpointsPOST https://abc123-def456-sqlite-1.node-us-1.containers.hoody.com/api/v1/sqlite/db
KV Core
5 endpointsGET https://abc123-def456-sqlite-1.node-us-1.containers.hoody.com/api/v1/sqlite/kv/{key}
Atomic Ops
5 endpointsPOST https://abc123-def456-sqlite-1.node-us-1.containers.hoody.com/api/v1/sqlite/kv/{key}/incr
Batch Ops
3 endpointsPOST https://abc123-def456-sqlite-1.node-us-1.containers.hoody.com/api/v1/sqlite/kv/batch/set
Time-Travel & History
10 endpointsGET https://abc123-def456-sqlite-1.node-us-1.containers.hoody.com/api/v1/sqlite/kv/{key}/history
Health & Docs
4 endpointsGET https://abc123-def456-sqlite-1.node-us-1.containers.hoody.com/api/v1/sqlite/health
Everything your database needs. Nothing it doesn't.
A complete data layer: SQL transactions, a key-value store, atomic operations, batch writes, and time-travel — all over plain HTTP.
Web Database UI
A visual SQL query interface in the browser — the main entry point for exploration. Run queries and read results without any local tooling.
SQL Transactions
Execute multi-statement transactions with full ACID guarantees over HTTP POST. Parameterized values and batched parameter sets are supported.
Key-Value Store
NoSQL-style get, set, and delete on top of SQLite. A natural fit for config, sessions, cache, and feature flags.
Atomic Operations
Thread-safe increment, decrement, push, and pop. Operations are serialized by the engine, so they stay correct under any concurrency.
Batch Operations
Get, set, or delete up to 100 keys in a single atomic request, with all-or-nothing semantics that beat one round trip per key.
Multi-Container Access
Keep databases in a shared volume so multiple containers reach the same file, concurrent-write-safe. Query over HTTP or with native SQLite libraries side by side.
Your database is a URL.
No server. No driver. No connection string. Start executing SQL and key-value operations over HTTP in minutes.