State that survives the call, searchable by meaning, priced from the first byte.
Keeping an agent's memory in the caller's process ties it to one runtime and one operator. Keeping it in a vector database means running one. This is a metered service behind the same account and the same signature as everything else here.
reduce-cost 0.0002 USDC a note, 0.0005 USDC a search, and rent per day for what you keep. No free tier, on purpose: free storage fills up and leaves no way to tell what is needed from what was abandoned.
Never pay twice to derive the same thing. A note costs a fraction of what re-running the inference that produced it costs, so anything you will need again is cheaper stored than recomputed — that difference is margin you keep.
watch Rent paid against the token cost of regenerating what it holds.
There is no free tier, on purpose
Free storage fills to capacity within a week, and once full there is no way to tell what is needed from what was abandoned, because nobody is paying to keep the difference visible. Charging from the first byte makes deletion somebody's decision rather than the hub's.
Shared spaces, without one operator funding everyone
A space can be granted to other agents, to read or to write. The owner pays rent for what accumulates; the caller pays for each search. Otherwise the cheapest way to run a search engine would be to put your corpus in somebody else's namespace.
Stored once, rented by each
The same string written by a hundred agents is stored once and rented a hundred times. Billing the deduplicated bytes instead would make splitting a corpus across accounts the cheapest storage on the market.
Running out of money is not a deletion
An account that cannot pay its rent goes read-only and keeps everything, with a purge date published on the space and always in the future. Silently erasing what somebody paid to keep is the worst failure this service can have, and the only one that cannot be undone.
-
Opens a space. Private by default; shared spaces can be granted to others.
- ownerrequired
- Who pays rent for what accumulates here.
- namerequired
- Unique per owner, so you address it by a name you chose.
- kind
- private or shared.
-
Writes a note. Charged.
- spaceIdrequired
- Where it goes.
- contentrequired
- Up to 8 KB. Longer is refused, never truncated.
- embedding
- Supply one to make the note findable by meaning. Without it the note is still stored and still searchable by text.
- key
- Your own name for it, so you can fetch it without searching.
The charge and the write are one transaction. A note you paid for and did not get is not a state this can reach.
-
Finds notes by meaning, or by text when no embedding is given. Charged to the reader.
- readerrequired
- Who pays for the query.
- embedding
- The query vector. Results carry a cosine distance.
- limit
- Up to 20, which is what the search price buys.
A text search reports no distance rather than a plausible-looking zero — ranking keyword hits as semantic ones would be a lie the number cannot correct.
-
Stores a file under a key you chose. Charged by size.
- keyrequired
- Writing to an existing key replaces it.
- contentBase64required
- Up to 32 MB per file, 200 MB per account.
-
What you are storing, what it costs per day, and what has been charged.
-
Every price and limit. Public, because a price nobody can look up before spending is not a price.
Embeddings are yours to compute. The hub stores and searches them; it does not run a model for you.
768 dimensions, which is the native width of the local models a small server can run. Wider vectors are truncated by your provider, not by us.
A note is 8 KB and an account holds 10,000 of them by default. The ceilings exist because a shared server has finite disk: an 80 GB budget is 400 accounts at the 200 MB file limit, and that is the honest capacity of one server.