# Get a chatbot

`GET https://api.chat-data.com/api/v2/get-chatbot/{chatbotId}`

Canonical: https://www.chat-data.com/api-reference/get-chatbot

## Authentication

Send an API key as a Bearer token: `Authorization: Bearer $CHAT_DATA_API_KEY`. Workspace keys reach every chatbot in the workspace; chatbot-scoped keys reach only their chatbot. Keep keys on the server.

## Description

Returns the related information about a single chatbot. The returned chatbot schema is the same as in the `/get-chatbots` endpoint.

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| chatbotId | path | string | yes | The unique identifier allocated to the chatbot. |

## Example request

```bash
curl 'https://api.chat-data.com/api/v2/get-chatbot/6650f1c2a9e4b83d2c7a1f05' \
  -H "Authorization: Bearer $CHAT_DATA_API_KEY"
```

## Example response (200)

```json
{
  "status": "success",
  "chatbot": {
    "chatbotId": "6650f1c2a9e4b83d2c7a1f05",
    "chatbotName": "Support Bot",
    "visibility": "private",
    "createdAt": 1791970200000,
    "lastTrainedAt": 1791970200000,
    "onlyAllowOnAddedDomains": true,
    "domains": [
      "example.com",
      "chat.example.com"
    ],
    "disallowedUrls": [
      "https://www.example.com/checkout"
    ],
    "basePrompt": "You are a friendly support assistant for Example Inc. Answer only from the provided knowledge base and keep replies under 120 words.",
    "imageDescriptionPrompt": "Describe the image in detail, including any visible text.",
    "rateLimitPoints": 20,
    "rateLimitTimeframe": 240,
    "rateLimitMessage": "Too many messages in a row. Please wait a few minutes and try again.",
    "suggestedMessages": [
      "What are your opening hours?",
      "How do I track my order?"
    ],
    "initialMessages": [
      "Hi! How can I help you today?"
    ],
    "styles": {
      "theme": "dark",
      "buttonColor": "rgb(0, 0, 0)",
      "displayName": "Support Bot",
      "alignChatButton": "left",
      "userMessageColor": "rgb(59, 129, 246)",
      "actionButtonColor": "rgb(59, 129, 246)",
      "profilePictureFile": "/storage/public/image/avatar_6650f1c2a9e4b83d2c7a1f05.png",
      "bubblePictureFile": "/storage/public/image/chat_icon_6650f1c2a9e4b83d2c7a1f05.png",
      "autoOpenChatWindowAfter": 3
    },
    "model": "custom-data-upload",
    "baseModel": "gpt-4o-mini",
    "numberOfConversations": 100,
    "dataSources": [
      {
        "name": "https://www.example.com/help/shipping",
        "characters": 10000,
        "type": "website"
      }
    ],
    "status": 100,
    "temperature": 0,
    "collectedCustomerInformation": [
      {
        "name": "jane@chat-data.com",
        "source": "widget",
        "createdAt": "2026-10-14T09:30:00.000Z"
      }
    ],
    "storeChat": true,
    "trackIpAddress": true,
    "calendar": {
      "showCalendar": true,
      "calendarUrl": "https://calendly.com/jane-doe/30min",
      "calendarMessage": "Book a demo"
    },
    "calCom": {
      "showCalendar": false,
      "username": "jane-doe/30min",
      "calendarMessage": "Book a demo",
      "hideEventTypeDetails": false,
      "brandColor": "#292929",
      "layout": "month"
    },
    "inputPlaceholderMsg": "Message...",
    "enableBouncingAnimation": true,
    "enableBubbleSound": true,
    "bubbleSize": 54,
    "padding": {
      "x": 16,
      "y": 16
    },
    "ignoreDataSource": false,
    "leadsConfig": {
      "message": "Let us know how to contact you.",
      "collectName": true,
      "collectEmail": true,
      "collectPhone": false,
      "nameMessage": "Name",
      "emailMessage": "Email",
      "phoneMessage": "Phone"
    },
    "notification": {
      "enableLeadsEmail": true,
      "leadsEmails": [
        "leads1@example.com",
        "leads2@example.com"
      ],
      "enableConversationEmails": true,
      "conversationEmails": [
        "conversation1@example.com",
        "conversation2@example.com"
      ]
    },
    "webhooks": [
      {
        "endpoint": "https://example.com/webhooks/chat-data",
        "events": [
          "chat"
        ],
        "secret": "4f9a2c7e1b8d3f6a0c5e9b2d7a1f4c8e3b6d9f2a5c8e1b4d7f0a3c6e9b2d5f8a",
        "enable": true,
        "contentType": "text/plain"
      }
    ],
    "team": [
      {
        "userId": "6650f1c2a9e4b83d2c7a1e11",
        "email": "jane@example.com",
        "name": "Jane Doe",
        "permissions": [
          "admin",
          "full",
          "train",
          "read"
        ],
        "role": "Owner",
        "workspaceRole": "owner",
        "joinTime": "2026-10-14T09:30:00.000Z",
        "source": "workspace"
      }
    ],
    "toolsParams": [],
    "lastMessageAt": 1791970320000,
    "customBackend": "https://bot.example.com/v1/chat",
    "bearer": "cb_7d3f9a2e5c81b4f0"
  }
}
```

## Responses

| Status | Description |
| --- | --- |
| 200 | Successful response. |
| 400 | An unexpected error occurred while processing the request; `message` contains the error. |
| 401 | Authentication failed: the `Authorization` header is missing or not in the `Bearer <key>` format, the API key does not exist, its workspace is unavailable or has no owner, or the workspace's plan does not include API access. `message` says which. |
| 403 | The API key cannot access the requested chatbot. A chatbot-scoped key used with another chatbot's ID gets `Access denied to this chatbot`. A workspace key gets `Chatbot <id> was not found in this API key's workspace. It may have been deleted or moved to another workspace.` when the chatbot does not exist or belongs to another workspace. |
| 429 | The workspace sent more than 600 API requests in the last minute. Wait the number of seconds given in the `Retry-After` header (and in `message`) before retrying. |
