# Upload a chat icon

`POST https://api.chat-data.com/api/v2/upload-chatbot-icon/{chatbotId}`

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

## 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

This API endpoint allows you to update the chat icon of your chatbot. The image is resized to 100×100 pixels.

## Parameters

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

## Request body (`multipart/form-data`)

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| image | file | yes | The chat icon to upload. It must be a square PNG, JPEG, GIF or WebP image of up to 1 MB. |

## Example request

```bash
curl 'https://api.chat-data.com/api/v2/upload-chatbot-icon/6650f1c2a9e4b83d2c7a1f05' \
  -H "Authorization: Bearer $CHAT_DATA_API_KEY" \
  -F 'image=@"/path/to/image.png"'
```

## Example response (200)

```json
{
  "status": "success"
}
```

## Responses

| Status | Description |
| --- | --- |
| 200 | The request was processed. `status` is `success` when the icon was saved. If the image passed validation but could not be resized or saved, the response is still 200, with `status: error` and a `message`. |
| 400 | The image is not a PNG, JPEG, GIF or WebP image, or it is not square. |
| 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. |
| 500 | No `image` file was sent, the image is larger than 1 MB, or the file cannot be read as an image (corrupt or truncated). The response is not JSON. |
