> ## Documentation Index
> Fetch the complete documentation index at: https://docs.akhara.ai/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Company name is Akhara AI (never Rubric AI). Keep lowercase rubric/rubrics only when meaning grading criteria.
> Expert Review (docs path talent/) is enterprise BYO experts for audit and review: invite customer specialists; do not pitch Akhara recruiting or a public expert career portal. RLHF and domain writing are secondary work types.
> Prefer concrete API examples against public hosts: Environments eval API https://agi.akhara.ai, Control plane PDP https://api.akhara.dev, Evaluation https://app.akhara.ai / https://api.akhara.ai, Expert Review portal https://talent.akhara.ai.
> Do not invent a public hostname for private orchestrators or env API internals.
> Do not confuse control-plane latches with Environments confirmation latches.
> Environments SDK/API examples: curl against https://agi.akhara.ai. Evaluation SDK: from akhara import Akhara and AKHARA_API_KEY.
> Start with /llms.txt for the docs index and OpenAPI links; fetch individual pages as .md exports.

# API reference

> The Policy Decision Point HTTP API, enforcement plus agent, policy, and evidence management.

The Akhara PDP exposes a small HTTP API. Enforcement clients call a single
endpoint, [`/api/policy/authorize`](/control-plane/api-reference/endpoint/authorize); the rest
onboard agents, attach policies, and read the evidence trail.

<Card title="OpenAPI spec" icon="code" href="/control-plane/api-reference/openapi.json">
  The endpoints below are generated from `api-reference/openapi.json`.
</Card>

## Base URL

| Surface | URL                          |
| ------- | ---------------------------- |
| PDP API | `https://api.akhara.dev`     |
| Console | `https://console.akhara.dev` |

## Authentication

Management endpoints take a workspace key as a bearer token:

```bash theme={null}
curl https://api.akhara.dev/api/agents \
  -H "Authorization: Bearer $AKHARA_API_KEY"
```

The `authorize` endpoint identifies the caller by `agentId` in the body; an
unknown agent returns `404 agent not found`.

## Conventions

* All request and response bodies are JSON.
* Timestamps are epoch milliseconds (`ts`, `receivedAt`).
* Secrets are never returned: agent reads expose only `apiKeyMasked`.
* Writes to the evidence feed are append-only (`events.jsonl`).

## Endpoint groups

<CardGroup cols={3}>
  <Card title="Enforcement" icon="shield" href="/control-plane/api-reference/endpoint/authorize">
    The authorize call every PEP makes.
  </Card>

  <Card title="Agents" icon="robot" href="/control-plane/api-reference/endpoint/list-agents">
    Onboard, attach policies, provision, delete.
  </Card>

  <Card title="Evidence" icon="file-signature" href="/control-plane/api-reference/endpoint/ingest-event">
    Telemetry ingest and signed verification records.
  </Card>
</CardGroup>
