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

# API Reference

> HTTP endpoints for managing Agents, Abilities, and keys from scripts, CI, or the OpenHome CLI.

Most developers build on OpenHome through the [Dashboard](https://app.openhome.com/). This reference is for when you need programmatic access — scripting, CI pipelines, or tools like the [OpenHome CLI](/guides/getting-started/cli).

## Authentication

All endpoints require an OpenHome API key. Get one from [Settings → API Keys](https://app.openhome.com/dashboard/settings).

<Warning>
  **The Try-It playground saves your key in your browser's local storage.** If you enter your real production key to test an endpoint, clear it when you're done:

  * Open browser DevTools → **Application** tab → **Local Storage** → this site → delete the entry, or
  * Use a separate test key (revocable from [Dashboard → Settings → API Keys](https://app.openhome.com/dashboard/settings)) for playground testing and rotate it regularly.

  Never test with a key that's also used in production on a shared or public machine.
</Warning>

Two auth styles depending on the endpoint family:

| Style                    | Used by                                          | How                                              |
| ------------------------ | ------------------------------------------------ | ------------------------------------------------ |
| **`X-API-KEY` header**   | `/api/capabilities/*` and `/api/personalities/*` | Set `X-API-KEY: YOUR_KEY`                        |
| **`api_key` body field** | `/api/sdk/*`                                     | Include `"api_key": "YOUR_KEY"` in the JSON body |

## Endpoints

<CardGroup cols={2}>
  <Card title="List Agents" icon="list" href="/api-sdk/endpoints/list-agents">
    `GET /api/personalities/get-all-personalities/`
  </Card>

  <Card title="Edit Agent" icon="pen" href="/api-sdk/endpoints/edit-agent">
    `PUT /api/personalities/edit-personality/`
  </Card>

  <Card title="Upload Ability" icon="upload" href="/api-sdk/endpoints/upload-ability">
    `POST /api/capabilities/add-capability/`
  </Card>

  <Card title="Get Ability" icon="magnifying-glass" href="/api-sdk/endpoints/get-ability">
    `GET /api/capabilities/get-capability/{id}/`
  </Card>

  <Card title="List Abilities" icon="list-ul" href="/api-sdk/endpoints/list-abilities">
    `GET /api/capabilities/get-all-capabilities/`
  </Card>

  <Card title="List Installed Abilities" icon="check" href="/api-sdk/endpoints/list-installed-abilities">
    `GET /api/capabilities/get-installed-capabilities/`
  </Card>

  <Card title="Enable / Disable Ability" icon="toggle-on" href="/api-sdk/endpoints/toggle-ability">
    `PUT /api/capabilities/edit-installed-capability/{id}/`
  </Card>

  <Card title="Delete Ability" icon="trash" href="/api-sdk/endpoints/delete-ability">
    `POST /api/capabilities/delete-capability/`
  </Card>
</CardGroup>
