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

# Получить иконки и баннеры

> Текущие изображения Discord-серверов независимо от наличия статистических отчётов.

Получите ссылки на текущие иконки и баннеры одного сервера или всего каталога. Метод публичный, авторизация не требуется. Даты и период передавать не нужно.

```http theme={null}
GET https://stats.kalenich.sbs/api/discord-icons
```

<Note>
  Метод возвращает JSON со ссылками на Discord CDN. Он не отдаёт файл изображения и не перенаправляет на него.
</Note>

## Параметры запроса

<ParamField query="server" type="string">
  Номер сервера (`2` или `02`) либо полный Discord ID строкой. Допускаются от 1 до 20 цифр. Без параметра возвращается весь каталог. Пустое значение недопустимо.
</ParamField>

## Формат ответа

<Tabs>
  <Tab title="Один сервер">
    При `?server=02` возвращается объект `server` со сведениями о выбранном сервере.

    ```json Условный пример: изображения отсутствуют theme={null}
    {
      "server": {
        "number": 2,
        "name": "Пример сервера",
        "guildId": "123456789012345678",
        "iconUrl": null,
        "bannerUrl": null
      }
    }
    ```
  </Tab>

  <Tab title="Все серверы">
    Без `server` возвращаются массив `servers` и число серверов `totalServers`.

    ```json Условный пример каталога из одного сервера theme={null}
    {
      "servers": [
        {
          "number": 2,
          "name": "Пример сервера",
          "guildId": "123456789012345678",
          "iconUrl": null,
          "bannerUrl": null
        }
      ],
      "totalServers": 1
    }
    ```
  </Tab>
</Tabs>

| Поле сервера | Тип | Описание |
| - | - | - |
| `number` | number | Номер сервера в каталоге |
| `name` | string | Название сервера |
| `guildId` | string | Discord ID сервера; храните строкой |
| `iconUrl` | string или null | Текущая иконка: Discord CDN, 256 px, PNG; для анимированной иконки — GIF |
| `bannerUrl` | string или null | Текущий баннер: Discord CDN, 1024 px, PNG; для анимированного баннера — GIF |

## Доступность изображений

`iconUrl` или `bannerUrl` могут быть `null`, если изображения нет либо его метаданные ещё не получены. При недоступных или повреждённых метаданных API может вернуть `200` с `iconUrl: null`.

Иконка и баннер обновляются сборщиком вместе. Старые файлы метаданных без баннера возвращают `bannerUrl: null` до обновления. HTTP-запрос не запускает получение новых метаданных из Discord.

<Tip>
  Предусмотрите заглушку для `null` и ошибки загрузки изображения. Отсутствие иконки или баннера само по себе не означает, что сервер не существует или что его статистика недоступна.
</Tip>

Изображения отражают текущее состояние метаданных. Это относится и к `iconUrl` и `bannerUrl` внутри статистики за прошлые периоды: они не являются историческими снимками оформления сервера.

## HTTP-ответы

| Код | Ошибка | Причина |
| - | - | - |
| `200` | — | Успешный ответ, включая отсутствие изображения |
| `400` | `invalid_server` | Неверный формат номера или ID, в том числе пустое значение |
| `404` | `server_not_found` | Сервер отсутствует в доступном каталоге |
| `405` | `method_not_allowed` | Метод, отличный от `GET` или `HEAD` |
| `500` | `internal_error` | Внутренняя ошибка приложения |

Ограничения CORS и возможные ответы прокси совпадают с методом статистики. Подробнее — [«Ошибки API»](/kalenich-stats/errors).

<RequestExample>
  ```bash Один сервер theme={null}
  curl 'https://stats.kalenich.sbs/api/discord-icons?server=02'
  ```

  ```bash Весь каталог theme={null}
  curl 'https://stats.kalenich.sbs/api/discord-icons'
  ```
</RequestExample>

<ResponseExample>
  ```json 200 — пример ответа theme={null}
  {
    "server": {
      "number": 2,
      "name": "Tucson",
      "guildId": "599706379296440320",
      "iconUrl": "https://cdn.discordapp.com/icons/599706379296440320/12fa55816eb96d4e2b76f952c70f61e0.png?size=256",
      "bannerUrl": "https://cdn.discordapp.com/banners/599706379296440320/b0409e748a3df8b54685d01d5f9534c4.png?size=1024"
    }
  }
  ```

  ```json 404 — сервер не найден theme={null}
  {
    "error": "server_not_found"
  }
  ```
</ResponseExample>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.