API keys and access

Keys, service users, scopes, and roles.

Every API request uses an ara_ key as a bearer token. Create keys in Settings → Ara API.

$curl https://api.ara.so/v3/self \
> -H "Authorization: Bearer ara_..."

Treat keys like passwords. They are shown once. Store them in a secret manager, never in source control.

Principals

Most API keys belong to service users. A service user is a machine principal for CI, scripts, and automations.

Human users have roles in the organization. Service users have scopes on their keys.

Scopes

ScopeGrants
runOpen, steer, tag, cancel, and schedule agent work.
sessions:readRead sessions, messages, tags, insights, and attachments.
repos:read, repos:writeRead repositories and manage indexing.
blueprints:read, blueprints:writeRead and manage environment setup.
knowledge:readLegacy compatibility scope for reading automations.
memory:read, memory:writeRead and manage editable notes for connected repositories. Generated native memory stays read-only.
secrets:read, secrets:writeList secret names, set secrets, and delete secrets.
plugins:read, plugins:writeRead and manage MCP servers and git plugins.
attachments:read, attachments:writeDownload and upload attachments.
reviews:read, reviews:writeRead and trigger pull request or merge request reviews.
guardrails:read, guardrails:writeRead and manage repository guardrails.
analytics:readRead metrics, consumption, queue status, and audit logs.
org:read, org:writeRead and manage orgs, members, roles, and service users.
ip:read, ip:writeRead and manage the IP access list.

Use the narrowest scopes that work. There is no secret-reveal scope. Secret values are write-only.

Resolving your organization

Most resources live under /v3/organizations/{org_id}/.... Resolve the id once and cache it.

GET /v3/self returns the service user and org.

1{
2 "principal_type": "service_user",
3 "service_user_id": "key_3f9a",
4 "service_user_name": "ci-bot",
5 "org_id": "org_8c2d1e"
6}

Rotation

Rotate a service user’s key when it may have left your control. The new key is shown once. The old value cannot be recovered.

Errors

StatusMeaning
401Missing, invalid, or expired key
403Key lacks the scope, or the organization is not accessible
429Rate limited. Honor the Retry-After header