Datastore
The Datastore is a persistent key-value store scoped to your organization. Store JSON values, organize them with namespaces, and access them from the Dashboard, REST API, or MCP tools.
How it works
- Create an entry — store a JSON value under a unique key
- Organize with namespaces — group related entries into logical namespaces
- Set an optional TTL — entries can expire automatically after a given time
- Access from any interface — Dashboard, REST API, or MCP tools
Key features
JSON values
Store any valid JSON value — strings, numbers, booleans, arrays, or objects. Values can be up to 64 KB in size.
Namespaces
Group entries into logical namespaces like production, staging, or user-preferences. Every entry belongs to a namespace — if you don't specify one, it defaults to default.
TTL and expiration
Set a time-to-live on entries so they expire automatically. Expired entries are cleaned up by a background worker and excluded from queries. Useful for caching, temporary tokens, or time-limited configuration.
Prefix search
Filter entries by key prefix to find related keys quickly. For example, search for all keys starting with stripe: or config:api:.
Entry properties
| Property | Type | Description |
|---|---|---|
key | string | Unique identifier within a namespace. 1–255 characters: letters, digits, _, ., -, :, / |
namespace | string | Logical grouping. 1–255 characters, same format as key. Defaults to "default" |
value | JSON | Any valid JSON value (max 64 KB encoded) |
description | string | Optional human-readable note (max 1,000 characters) |
expires_at | datetime | Optional expiration time. Entry is automatically removed after this time |
Entries are uniquely identified by the combination of organization, namespace, and key.
Plan limits
| Plan | Entry limit |
|---|---|
| Free | Not available |
| Starter | 100 |
| Team | 500–1,000 |
| Scale | Unlimited |
See Plans & Billing for details.
Getting started
Learn how to create, read, update, and delete entries in Manage Entries.