Getting started
Authentication
API keys, bearer auth, and namespace scoping.
Every request to https://api.illumina.sh authenticates with a bearer token:
curl "https://api.illumina.sh/v1/default/namespaces" \
-H "Authorization: Bearer $ILLUMINA_API_KEY"API keys
Workspace API keys start with sub_live_ and are minted from the dashboard at
illumina.sh. The full key is shown once at creation —
store it in a secret manager. Keys are hashed at rest and can be revoked at any
time from the dashboard.
Free workspaces can hold up to 5 API keys; pro workspaces raise the cap.
Namespace scoping
A key can be scoped to a subset of the workspace's namespaces. Scoping is enforced on every transport — REST and MCP alike:
- A request against a namespace outside the key's scope answers
404, not403. Existence never leaks across scopes. - Namespace listings are filtered to the key's scope.
- A scoped key cannot create namespaces. Use an unscoped key (or the dashboard) to bootstrap namespaces, then hand agents a scoped key.
The URL shape
Paths look like /v1/default/namespaces/{namespace_id}/.... The default
segment is a fixed literal — your workspace identity comes entirely from the
API key, not the URL. Namespace ids are yours to choose (demo,
support-agent, team-payments).
Request hygiene
- Send the key only in the
Authorizationheader — never in query strings. - Rotate keys by minting a replacement, migrating traffic, then revoking the old key.
- Scope one key per agent or integration so a leak has a small blast radius.