Docs / Platform
KV store
A small per-project key/value store. Reach it with a normal API key (scope-checked as kv:*), or from inside an edge function via the auto-injected token — no credential to manage.
per-projectedge-nativevalues ≤ 256 KB
Endpoints
PUT
/v1/kv/{key} kv:write Write a value (raw request body). Limits: key ≤ 512 chars, value ≤ 256 KB.
curl
curl -X PUT https://api.ollanode.com/v1/kv/feature-flags/beta \
-H "Authorization: Bearer $OLLANODE_API_KEY" --data 'on' GET
/v1/kv/{key} kv:read Read a value (raw string body; 404 if missing).
curl
curl https://api.ollanode.com/v1/kv/feature-flags/beta \
-H "Authorization: Bearer $OLLANODE_API_KEY" GET
/v1/kv?prefix=… kv:read List keys under a prefix (up to 1000).
curl
curl "https://api.ollanode.com/v1/kv?prefix=feature-flags/" \
-H "Authorization: Bearer $OLLANODE_API_KEY" DELETE
/v1/kv/{key} kv:write Delete a key.
From an edge function
Functions get a scoped KV binding automatically — read and write with the injected OLLANODE_KV_URL + OLLANODE_KV_TOKEN and the x-kv-token header.
edge function
// Inside an edge function — OLLANODE_KV_URL + OLLANODE_KV_TOKEN are auto-injected,
// scoped to this function's project. No key management.
const base = Deno.env.get("OLLANODE_KV_URL");
const tok = Deno.env.get("OLLANODE_KV_TOKEN");
await fetch(base + "/visits", { method:"PUT", headers:{ "x-kv-token": tok }, body:"42" });
const n = await (await fetch(base + "/visits", { headers:{ "x-kv-token": tok } })).text(); Use cases: per-project feature flags read at the edge; small config a function and the dashboard both touch; per-key counters and rate-limit state. Limits: keys ≤ 512 chars, values ≤ 256 KB, list returns up to 1000 keys.