Skip to main content
Every Anona Memory data-plane request — record, retrieve, reason, spaces, documents and the proxies — authenticates with a Bearer API key. A handful of control-plane endpoints do not take one at all: API keys, organization, billing, space membership and GET /v1/usage authenticate with a dashboard session instead, and answer 401 session_required to an API key.
The SDKs set the header for you. Both take the key as a constructor argument and neither reads an environment variable on its own.

Getting a key

1

Sign up and verify

Create an account at the dashboard and verify your email. Sign-in is blocked until you do.
2

Create the key

Go to API keys → New key, choose an environment, and give the key a name. Signing up does not create one for you.
3

Copy it immediately

The full key is shown once. Afterwards only its prefix is visible, in the dashboard and in the API.
Keys can also be created and revoked programmatically. See API Keys.

Handling keys safely

Organization and space context

Every request runs in the context of the organization behind the API key, plus the space_id you supply. The boundary is enforced at the gateway and again at the database layer, so another organization’s space is not reachable by naming it. The one way across that boundary is a share: another organization can invite you to one of its spaces, and from then on it is addressable with your own key like any other. A shared space comes back from GET /v1/spaces carrying shared_by (the owning organization’s name) and qualified_id. When a shared name collides with one of your own — a space’s id is its name, so both can be default — the bare name is refused with 409 space_ambiguous and you address it by the qualified {owner_slug}:{space_name} form instead. See Space members.

Rate limiting

Requests to metered endpoints — the ones that spend credits — are rate-limited per organization according to your plan. Current limits are returned on every response from one of those endpoints:
Exceeding the limit returns 429 with code rate_limited. Retry with exponential backoff. See Usage for reading your limits directly.

Authentication errors

Each cause has its own code, and that is what to branch on — never the generic unauthorized / forbidden, which no endpoint returns. The error reference is the canonical list.

Next steps

Memories API

Store and manage memories.

Retrieve API

Query memories semantically.

API Keys

Create and revoke keys over the API.

Errors

The full error code reference.