SQL Operations
Execute SQL transactions, create databases, and run queries.
The Hoody SQLite service provides a lightweight, container-scoped database with SQL execution, a key-value store, and health observability. It runs inside each container under the sqlite-1 service instance and is accessed over HTTPS at https://{projectId}-{containerId}-sqlite-1.{server}.containers.hoody.com.
Use the SQLite service when you need:
The endpoints on this page cover health checks. For the full API surface, see the sub-pages below.
SQL Operations
Execute SQL transactions, create databases, and run queries.
Key-Value Store
Overview of the KV Store and key listing.
KV Basic Operations
Get, set, delete, increment, and decrement values.
KV Batch Operations
Batch get, set, and delete multiple keys.
KV Atomic Operations
Push, pop, and remove array elements atomically.
KV Time-Travel & History
Snapshots, diffs, and rollbacks.
GET /api/v1/sqlite/healthLiveness and observability endpoint. By default the response carries the status field alone. With verbose=true it also returns service identity (service, built, started), the supported API features, process memory and open file descriptor counts, and the cache and counter snapshots.
| Name | In | Type | Required | Description |
|---|---|---|---|---|
verbose | query | boolean | No | Return the full snapshot. Without it the response carries the status field alone; with it, service identity, the features list, process memory and file-descriptor counters, and the cache and counter snapshots are included |
curl -X GET \ -H "Authorization: Bearer <token>" \ "https://{projectId}-{containerId}-sqlite-1.{server}.containers.hoody.com/api/v1/sqlite/health?verbose=true"import { HoodyClient } from 'hoody-sdk';
const client = new HoodyClient({ baseURL: 'https://{projectId}-{containerId}-sqlite-1.{server}.containers.hoody.com', token: process.env.HOODY_TOKEN,});
const health = await client.sqlite.kit.getHealth({ verbose: true });console.log(health);{ "status": "ok", "service": "hoody-sqlite", "built": "2025-01-15T10:30:00.000Z", "started": "2025-01-20T08:00:00.000Z", "pid": 42, "memory": { "heap": null, "rss": 52428800 }, "fds": 8, "ip": "203.0.113.42", "userAgent": "hoody-sdk/1.0", "features": [ "kv_etag", "kv_conditional_writes", "kv_conditional_reads", "kv_entry", "kv_ttl_controls", "kv_idempotency", "kv_changes", "kv_list_cursor", "retry_after" ], "cache": { "size": 256, "max_size": 1000, "directory_mode": { "size": 5, "max_size": 100, "held": 3 } }, "counters": { "queries": 15032, "transactions": 4201 }}GET /api/v1/sqlite/health/cacheReturns only the cache sub-object from /health. Use this dedicated endpoint when dashboards poll cache pressure without re-reading process-level memory and file-descriptor counters.
This endpoint takes no parameters.
curl -X GET \ -H "Authorization: Bearer <token>" \ https://{projectId}-{containerId}-sqlite-1.{server}.containers.hoody.com/api/v1/sqlite/health/cacheimport { HoodyClient } from 'hoody-sdk';
const client = new HoodyClient({ baseURL: 'https://{projectId}-{containerId}-sqlite-1.{server}.containers.hoody.com', token: process.env.HOODY_TOKEN,});
const cacheHealth = await client.sqlite.kit.getCacheStats();console.log(cacheHealth);{ "size": 256, "max_size": 1000, "directory_mode": { "size": 5, "max_size": 100, "held": 3 }}