Silo has no users and no browser sessions. Every request is authenticated with an API key, and the claims attached to that key authorize each individual operation. There is no login flow, no session cookie, and no OAuth handshake — a key is the only credential Silo recognizes.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/org-quicko/silo/llms.txt
Use this file to discover all available pages before exploring further.
Presenting a key
Every authenticated request must carry the key in one of two headers. Both are equivalent; use whichever fits your client or framework.What a key looks like
A Silo API key is the prefixsilo_ followed by 32 random bytes encoded in base64url. It looks like this:
Deny by default
Claims are deny-by-default. If the claim required for an operation is absent from the key making the request, Silo refuses the operation with a403 Forbidden response. There is no implicit permission; every allowed action must be explicitly covered by at least one claim the key carries.
Public access
Collection schema reads and entry reads are public by default — no key is needed to read them. To require a key for a collection, set"x-silo-auth": true in its JSON Schema. Once a key is presented it becomes the visibility boundary: a scoped key sees only the projects, environments, and collections its claims cover, including public ones.
Anonymous callers can reach only collections whose schema does not set
x-silo-auth. A presented key narrows that reach to what the key’s claims allow.Checking the current session
SendGET /api/session to inspect the key you are currently using. The response includes the key’s label, its prefix (the first few characters), and its full list of effective claims.
First run and the root key
On the very first start of an empty Silo instance, a root API key is generated and printed once to the console. This is the only time the plaintext appears anywhere.http://localhost:8090, add the server URL and this key in the admin UI, and you are in.
Recovery after losing all keys
If you lose every key, you can mint a new root key directly against the data directory. No server needs to be running:Claim presets
Every key is created with a set of claims. Four built-in presets cover the most common patterns. For full details on claims, wildcards, and delegation, see API Keys.| Preset | What it covers |
|---|---|
root | Full access (*) — every operation on every resource |
manage | Collection lifecycle, keys (read/create/revoke), media (not purge or configure), plugins (read and configure), audit and observability |
write | Entries (create/read/update/delete), schema reads, media upload and delete, transfer export |
read | Read entries and schemas (default for silo keys create) |