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

# Chatbots API — List & Retrieve

> List your InsiteChat chatbots and retrieve a single chatbot's details via the REST API. Two read-only endpoints for programmatic chatbot inventory.

Two read-only **InsiteChat API** endpoints for inspecting the chatbots on your account. Useful for building custom dashboards, dropdown pickers, or any workflow that needs to enumerate the chatbots you own.

## List Chatbots

Returns every chatbot owned by the API key's user (excluding soft-deleted ones).

### Request

```
GET /v1/chatbots
```

```bash theme={null}
curl https://backend.insitechat.ai/api/v1/chatbots \
  -H "Authorization: Bearer ic_your-api-key"
```

### Response

A bare JSON array (no wrapping envelope):

```json theme={null}
[
  {
    "id": "0a1b2c3d-4e5f-6789-abcd-ef0123456789",
    "name": "Support Bot",
    "slug": "support-bot",
    "provider": "gemini",
    "is_active": true,
    "created_at": "2026-03-15T10:30:00.123456+00:00"
  },
  {
    "id": "1b2c3d4e-5f67-89ab-cdef-0123456789ab",
    "name": "Sales Assistant",
    "slug": "sales-assistant",
    "provider": "chatgpt",
    "is_active": true,
    "created_at": "2026-03-20T09:00:00.654321+00:00"
  }
]
```

### Response Fields

| Field        | Type    | Description                                                 |
| ------------ | ------- | ----------------------------------------------------------- |
| `id`         | UUID    | Unique chatbot identifier (bare UUID, no prefix).           |
| `name`       | string  | Display name.                                               |
| `slug`       | string  | URL-friendly slug derived from the name.                    |
| `provider`   | string  | LLM backend: `gemini`, `chatgpt`, or `ollama`.              |
| `is_active`  | boolean | `false` if the owner paused the chatbot from the dashboard. |
| `created_at` | string  | ISO 8601 timestamp.                                         |

## Get Chatbot Details

Returns the configuration for a single chatbot.

### Request

```
GET /v1/chatbots/{chatbot_id}
```

| Path parameter | Type | Required | Description                                  |
| -------------- | ---- | -------- | -------------------------------------------- |
| `chatbot_id`   | UUID | yes      | The chatbot's UUID (from the list response). |

```bash theme={null}
curl https://backend.insitechat.ai/api/v1/chatbots/0a1b2c3d-4e5f-6789-abcd-ef0123456789 \
  -H "Authorization: Bearer ic_your-api-key"
```

### Response

```json theme={null}
{
  "id": "0a1b2c3d-4e5f-6789-abcd-ef0123456789",
  "name": "Support Bot",
  "slug": "support-bot",
  "provider": "gemini",
  "system_prompt": "You are a helpful customer support assistant for Acme Inc.",
  "fallback_message": "I'm sorry, I don't have enough information to answer that.",
  "is_active": true,
  "created_at": "2026-03-15T10:30:00.123456+00:00"
}
```

### Response Fields

| Field              | Type    | Description                                                  |
| ------------------ | ------- | ------------------------------------------------------------ |
| `id`               | UUID    | Unique chatbot identifier.                                   |
| `name`             | string  | Display name.                                                |
| `slug`             | string  | URL-friendly slug.                                           |
| `provider`         | string  | LLM backend (`gemini`, `chatgpt`, `ollama`).                 |
| `system_prompt`    | string  | The persona / system prompt the chatbot uses.                |
| `fallback_message` | string  | The reply used when the LLM can't answer (or returns empty). |
| `is_active`        | boolean | Paused state.                                                |
| `created_at`       | string  | ISO 8601 timestamp.                                          |

<Info>
  Chatbot IDs are bare UUIDs — there is no `bot_` prefix. You can also find a chatbot's UUID in the dashboard URL (`/dashboard/chatbots/{uuid}/...`).
</Info>

## Error Responses

Error bodies use Django Ninja's default `{"detail": "..."}` shape.

| Status | When                                                                |
| ------ | ------------------------------------------------------------------- |
| `401`  | Missing, invalid, or revoked API key                                |
| `404`  | No chatbot exists with that UUID, or it belongs to a different user |
| `429`  | Per-key rate limit exceeded                                         |
