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

# API Reference

> Use the Snorbe API to programmatically run research agents from external applications

# API Reference

The Snorbe API lets you call Snorbe's research agents programmatically from external applications and scripts.

## Authentication

All API requests require an API key. You can create API keys from the **API Keys** page in the dashboard.

Include the API key in your request headers using one of these formats:

```bash theme={null}
# Authorization header (recommended)
Authorization: Bearer snorbe_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

# Or x-api-key header
x-api-key: snorbe_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
```

<Warning>
  API keys are shown only once when created. If you lose a key, create a new one.
</Warning>

## Base URL

```
https://app.snorbe.deskrex.ai/api/v1
```

## Interactive API Reference

A Scalar-powered UI is available for browsing, searching, and executing every endpoint from your browser.

<Card title="Snorbe API Reference (Scalar UI)" icon="code" href="https://app.snorbe.deskrex.ai/api/v1/docs">
  [https://app.snorbe.deskrex.ai/api/v1/docs](https://app.snorbe.deskrex.ai/api/v1/docs)
</Card>

* Browse parameters, responses, and code samples for every endpoint
* Use "Try it out" to send real requests with your own API key
* Conforms to OpenAPI 3.1

## OpenAPI JSON

The machine-readable API spec is available as OpenAPI JSON (the Scalar UI uses this spec under the hood).

```bash theme={null}
curl "https://app.snorbe.deskrex.ai/api/v1/openapi.json"
```

To print only the available paths:

```bash theme={null}
curl -s "https://app.snorbe.deskrex.ai/api/v1/openapi.json" | jq -r '.paths | keys[]'
```

## Rate Limits

Each API key is limited to **100 requests per minute**. Exceeding the limit returns `429 Too Many Requests`.

***

## Endpoints

### Agent Execution

| Endpoint                    | Method | Description                      |
| --------------------------- | ------ | -------------------------------- |
| `/agent/run`                | POST   | Execute agent (non-streaming)    |
| `/agent/run/stream`         | POST   | Execute agent (SSE streaming)    |
| `/agent/run/stream/{runId}` | POST   | Resume agent run (SSE streaming) |
| `/agent/run/{runId}/status` | GET    | Get execution status             |
| `/agent/run/{runId}/resume` | POST   | Resume agent run (non-streaming) |

### HITL (Human-in-the-Loop)

| Endpoint                            | Method | Description                    |
| ----------------------------------- | ------ | ------------------------------ |
| `/agent/run/{runId}/plan/answer`    | POST   | Answer plan review questions   |
| `/agent/run/{runId}/plan/confirm`   | POST   | Confirm plan                   |
| `/agent/run/{runId}/plan/skip`      | POST   | Skip plan review               |
| `/agent/run/{runId}/report/answer`  | POST   | Answer report review questions |
| `/agent/run/{runId}/report/confirm` | POST   | Confirm report                 |
| `/agent/run/{runId}/matrix/answer`  | POST   | Answer matrix review questions |
| `/agent/run/{runId}/matrix/confirm` | POST   | Confirm matrix                 |

### Workspace & Turns

| Endpoint     | Method | Description                                           |
| ------------ | ------ | ----------------------------------------------------- |
| `/workspace` | GET    | Get workspace information associated with the API key |
| `/turn/list` | GET    | List turn history with pagination                     |

### Browser Control

| Endpoint                                | Method | Description                                            |
| --------------------------------------- | ------ | ------------------------------------------------------ |
| `/browser/answer-question`              | POST   | Answer a question asked by the browser agent           |
| `/browser/spontaneous-input`            | POST   | Send an extra instruction to an active browser session |
| `/browser/answer-question-with-files`   | POST   | Answer a browser question with files                   |
| `/browser/spontaneous-input-with-files` | POST   | Send an extra browser instruction with files           |

### Agent Management

| Endpoint      | Method | Description                |
| ------------- | ------ | -------------------------- |
| `/agent/list` | GET    | List agents in a workspace |

### Secrets

| Endpoint  | Method | Description                                           |
| --------- | ------ | ----------------------------------------------------- |
| `/secret` | POST   | Register secrets such as API keys for agent execution |

### Graph Data

| Endpoint           | Method | Description                                          |
| ------------------ | ------ | ---------------------------------------------------- |
| `/graph/workspace` | GET    | Get workspace graph data                             |
| `/graph/entities`  | GET    | List entities with filtering, search, and pagination |
| `/graph/edges`     | GET    | List edges (relationships) by entity IDs             |

### Agent Skill

| Page                                         | Description                                                                        |
| -------------------------------------------- | ---------------------------------------------------------------------------------- |
| [Agent Skill](/en/api-reference/agent-skill) | Install the Snorbe API skill for Claude Code / Cursor / Codex / Google Antigravity |
