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

# API reference

> Complete reference for Omnifence API endpoints

## Base URL

```
https://api.omnifence.ai
```

Moderation and platform endpoints are under `/api/v1`. The health check is at the root (`/health`).

## Authentication

All endpoints except `/health` require a Bearer token in the `Authorization` header. See [authentication](/authentication) for details.

```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```

## Content types

* **Moderation submissions**: `multipart/form-data` (prompt text and image/video URLs sent as form fields)
* **Other requests**: `application/json`
* **All responses**: `application/json` (except [SSE progress streams](/platform/sse-progress) which return `text/event-stream`)

## Versioning

The API is versioned via URL path. The current version is `v1`. All moderation, job, usage, and webhook endpoints are prefixed with `/api/v1/`.

## Endpoints

### Client endpoints

| Method | Path                        | Description                                                         |
| ------ | --------------------------- | ------------------------------------------------------------------- |
| `GET`  | `/health`                   | [Health check](/api-reference/endpoint/health)                      |
| `POST` | `/api/v1/moderate/prompt`   | [Submit prompt moderation](/api-reference/endpoint/prompt-moderate) |
| `POST` | `/api/v1/moderate/image`    | [Submit image moderation](/api-reference/endpoint/image-moderate)   |
| `POST` | `/api/v1/moderate/video`    | [Submit video moderation](/api-reference/endpoint/video-moderate)   |
| `GET`  | `/api/v1/job/{id}`          | [Get job status](/api-reference/endpoint/get-job)                   |
| `GET`  | `/api/v1/job/{id}/progress` | [Stream job progress](/api-reference/endpoint/get-job-progress)     |
| `POST` | `/api/v1/webhook/register`  | [Register webhook](/api-reference/endpoint/register-webhook)        |

### Admin endpoints

Requires the `admin:config` scope. See [authentication](/authentication#scopes).

| Method   | Path                                              | Description                                                                      |
| -------- | ------------------------------------------------- | -------------------------------------------------------------------------------- |
| `GET`    | `/api/v1/admin/keywords`                          | [List keywords](/api-reference/endpoint/admin-list-keywords)                     |
| `POST`   | `/api/v1/admin/keywords`                          | [Create keyword](/api-reference/endpoint/admin-create-keyword)                   |
| `DELETE` | `/api/v1/admin/keywords/{id}`                     | [Delete keyword](/api-reference/endpoint/admin-delete-keyword)                   |
| `GET`    | `/api/v1/admin/prompts`                           | [List prompts](/api-reference/endpoint/admin-list-prompts)                       |
| `GET`    | `/api/v1/admin/prompts/{slug}`                    | [Get prompt](/api-reference/endpoint/admin-get-prompt)                           |
| `PUT`    | `/api/v1/admin/prompts/{slug}`                    | [Update prompt](/api-reference/endpoint/admin-upsert-prompt)                     |
| `POST`   | `/api/v1/admin/prompts/test`                      | [Test prompt](/api-reference/endpoint/admin-test-prompt)                         |
| `GET`    | `/api/v1/admin/models/{provider}`                 | [List models](/api-reference/endpoint/admin-list-models)                         |
| `DELETE` | `/api/v1/admin/models/{provider}/cache`           | [Invalidate models cache](/api-reference/endpoint/admin-invalidate-models-cache) |
| `GET`    | `/api/v1/admin/clients`                           | [List clients](/api-reference/endpoint/admin-list-clients)                       |
| `GET`    | `/api/v1/admin/clients/{id}`                      | [Get client](/api-reference/endpoint/admin-get-client)                           |
| `PUT`    | `/api/v1/admin/clients/{id}`                      | [Update client](/api-reference/endpoint/admin-update-client)                     |
| `POST`   | `/api/v1/admin/clients/{id}/ban`                  | [Ban client](/api-reference/endpoint/admin-ban-client)                           |
| `POST`   | `/api/v1/admin/clients/{id}/unban`                | [Unban client](/api-reference/endpoint/admin-unban-client)                       |
| `POST`   | `/api/v1/admin/clients/{id}/keys/{hash}/revoke`   | [Revoke API key](/api-reference/endpoint/admin-revoke-key)                       |
| `POST`   | `/api/v1/admin/clients/{id}/keys/{hash}/activate` | [Activate API key](/api-reference/endpoint/admin-activate-key)                   |
| `GET`    | `/api/v1/admin/stats`                             | [Get stats](/api-reference/endpoint/admin-get-stats)                             |
| `GET`    | `/api/v1/admin/jobs`                              | [List jobs](/api-reference/endpoint/admin-list-jobs)                             |
| `GET`    | `/api/v1/admin/queues`                            | [Get queues](/api-reference/endpoint/admin-get-queues)                           |
