We record metadata about a request, not its content
For every request, we record the facts we need to bill it, show it to you, and tell you what happened:- when it was made
- which model was asked for
- which provider served it
- the token counts
- what it cost
- how long it took
- the outcome, meaning whether it was served, refused, or failed
The playground stores nothing either
A playground run is a real request and it is recorded exactly like one made through the API: the same metadata, on the same key’s line. The prompt and the reply are not stored, which is why the playground has no history and no shareable link. Reloading the screen loses the conversation. That absence is the data stance rather than a missing feature. See Playground.How long records are kept
Usage records are kept for a configured window. The window in force is ninety days, over a floor of sixty-two days. The floor is the part that was reasoned: support has to be able to quote a request from two full billing months back, and the longest such pair of calendar months is sixty-two days. The window in force is read from one place by the product, and the screen that shows it is the one to trust: if it prints a different figure than this page, the screen is the live value. Money outlives the usage record. The ledger entry that recorded a charge is a separate record from the usage record that described the request. When a usage record passes out of the retention window, the balance movement it caused stays on your statement. You do not lose the accounting for spend whose request detail has aged out.Your key, and what we keep of it
We keep a one-way hash of your API key, plus the non-secret parts: the prefix and the last four characters. So a key is shown to you once, at the moment it is created, and never again. The product says it in its own words:We keep only a hash, so we cannot show it to you again or recover it for you.That is a limit on us as much as on you. Nobody at Uniblock can read your key back, put it on a screen, or paste it into a support reply, because the value that would let them do it was never stored. See Create an API key. Invitation links are handled the same way: only a hash of the link’s token is stored, and an invitation is found by that hash rather than by anything that appears in a URL.