Per-app KV store
Simple key/value API for flags, counters, and small caches
Every app gets a small key/value store on the platform — handy for feature flags, counters, session state, and small caches without spinning up a table for them. It's not a replacement for PocketBase: keep larger or structured data there.
Endpoints
Authenticate with a full-scope API token — KV is excluded from the narrow deploy/env/read scopes entirely, since values can hold session state and flags.
GET /apps/<app>/kv # list keys (size + expiry, no values) GET /apps/<app>/kv/<key> # read a value (404 if missing or expired) PUT /apps/<app>/kv/<key> # write a value (optional ttlSeconds) DELETE /apps/<app>/kv/<key> # delete a key
Limits
- Keys up to 256 characters; values up to 1 MB each.
- Total size is gated by your plan's KV storage limit. Pass
ttlSecondsalongsidevaluefor expiring keys; expired keys read as 404 and are cleaned up automatically. - Access is owner + admin collaborators — viewers can't read values, since flags and session state can be sensitive.
Example
curl -X PUT https://api.percher.run/apps/my-app/kv/launch-banner \
-H "Authorization: Bearer $PERCHER_TOKEN" \
-H "Content-Type: application/json" \
-d '{"value": "on", "ttlSeconds": 86400}'