Перейти к содержимому
Все статьи
· Обновлено 15 февраля 2026 г.

Полное руководство по Discord Embed: поля, цвета, изображения, лимиты

Всё о Discord embed-сообщениях: структура, поля, цвета, изображения, футеры, timestamp. Примеры кода и лимиты API для создания красивых сообщений.

embeddiscord apiwebhookтуториалembed туториалdiscord embed 2026webhook конструктор
Полное руководство по Discord Embed: поля, цвета, изображения, лимиты

Что такое Discord Embed?

Discord Embed — это структурированное сообщение с форматированием, которое выглядит намного богаче обычного текста. Embed позволяют добавлять:

  • Заголовки и описания с поддержкой Markdown
  • Цветную боковую полоску для визуального выделения
  • Поля (fields) для структурированных данных
  • Изображения и миниатюры (thumbnails)
  • Футеры с иконками и текстом
  • Временные метки (timestamp)
  • Ссылки в заголовке и описании

Embed используются ботами, webhook’ами и интеграциями для создания информативных и красивых сообщений.

Базовая структура Embed

Минимальный embed выглядит так:

{
  "embeds": [{
    "title": "Заголовок embed",
    "description": "Описание с поддержкой **Markdown**",
    "color": 5814783
  }]
}

Отправка через webhook:

const webhookUrl = "https://discord.com/api/webhooks/YOUR_WEBHOOK_URL";

const payload = {
  embeds: [{
    title: "Заголовок embed",
    description: "Описание с поддержкой **Markdown**",
    color: 5814783
  }]
};

fetch(webhookUrl, {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify(payload)
});

Цвета Embed

Цвет embed задаётся как десятичное число. Это цвет вертикальной полоски слева от сообщения.

Популярные цвета

const colors = {
  red: 15548997,      // #ED4245
  green: 5763719,     // #57F287
  blue: 3447003,      // #3498DB
  yellow: 16776960,   // #FFFF00
  purple: 10181046,   // #9B59B6
  blurple: 5793266,   // #5865F2 (фирменный Discord)
  orange: 15105570,   // #E67E22
  white: 16777215,    // #FFFFFF
  black: 2303786      // #23272A
};

Конвертация HEX в десятичный формат

Если у вас есть HEX-цвет (например, #FF5733), конвертируйте его:

const hexToDecimal = (hex) => parseInt(hex.replace("#", ""), 16);

console.log(hexToDecimal("#FF5733")); // 16734003

Или используйте онлайн-конвертер: просто введите HEX в Google как “0xFF5733 to decimal”.

Поля (Fields)

Fields позволяют создавать структурированные данные в виде таблицы:

{
  "embeds": [{
    "title": "Информация о сервере",
    "color": 5793266,
    "fields": [
      {
        "name": "Онлайн",
        "value": "1,234 игрока",
        "inline": true
      },
      {
        "name": "Регион",
        "value": "EU West",
        "inline": true
      },
      {
        "name": "Статус",
        "value": "Работает",
        "inline": true
      },
      {
        "name": "Описание",
        "value": "Это поле занимает всю ширину, потому что inline: false",
        "inline": false
      }
    ]
  }]
}

Параметры полей

  • name — заголовок поля (обязательно, макс. 256 символов)
  • value — содержимое поля (обязательно, макс. 1024 символа)
  • inline — если true, поля выстраиваются в ряд (до 3 в строке)

Совет: Используйте inline: true для компактных данных (статистика, параметры), и inline: false для длинных текстов.

Изображения и миниатюры

Embed поддерживают несколько типов изображений:

{
  "embeds": [{
    "title": "Embed с изображениями",
    "description": "Демонстрация всех типов изображений",
    "color": 3447003,
    "thumbnail": {
      "url": "https://example.com/thumbnail.png"
    },
    "image": {
      "url": "https://example.com/main-image.png"
    },
    "author": {
      "name": "Автор сообщения",
      "icon_url": "https://example.com/author-icon.png",
      "url": "https://example.com/author-profile"
    },
    "footer": {
      "text": "Футер с иконкой",
      "icon_url": "https://example.com/footer-icon.png"
    }
  }]
}

Типы изображений

  • thumbnail — маленькое изображение в правом верхнем углу
  • image — большое изображение внизу embed
  • author.icon_url — маленькая иконка рядом с именем автора
  • footer.icon_url — маленькая иконка в футере

Все URL должны быть прямыми ссылками на изображения (.png, .jpg, .gif, .webp). Discord поддерживает HTTPS и attachment URLs.

Автор (Author)

Блок author добавляет имя и иконку в верхней части embed:

{
  "embeds": [{
    "author": {
      "name": "GitHub Actions",
      "url": "https://github.com/features/actions",
      "icon_url": "https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png"
    },
    "title": "Build успешен",
    "description": "Все тесты прошли",
    "color": 5763719
  }]
}
  • name — имя автора (макс. 256 символов)
  • url — ссылка при клике на имя (опционально)
  • icon_url — иконка рядом с именем (опционально)

Footer отображается внизу embed мелким шрифтом:

{
  "embeds": [{
    "title": "Уведомление",
    "description": "Что-то произошло",
    "color": 16776960,
    "footer": {
      "text": "Monitoring Bot • ID: 12345",
      "icon_url": "https://example.com/bot-icon.png"
    }
  }]
}
  • text — текст футера (макс. 2048 символов)
  • icon_url — маленькая иконка слева от текста (опционально)

Временная метка (Timestamp)

Timestamp добавляет время в футер в формате ISO 8601:

const embed = {
  title: "Событие",
  description: "Произошло в определённое время",
  color: 3447003,
  timestamp: new Date().toISOString() // "2025-03-22T14:30:00.000Z"
};

Discord автоматически конвертирует timestamp в локальное время пользователя и отображает как “сегодня в 14:30” или “вчера в 20:15”.

Ссылки в заголовке

Заголовок embed может быть кликабельным:

{
  "embeds": [{
    "title": "Новый коммит в репозитории",
    "url": "https://github.com/user/repo/commit/abc123",
    "description": "Кликните на заголовок, чтобы открыть коммит",
    "color": 5793266
  }]
}

При клике на заголовок пользователь перейдёт по указанному URL.

Markdown в Embed

Поля description и value в fields поддерживают Markdown:

{
  "embeds": [{
    "description": "**Жирный текст**\n*Курсив*\n__Подчёркнутый__\n~~Зачёркнутый~~\n`Код`\n```js\nconst code = 'block';\n```\n[Ссылка](https://example.com)\n> Цитата"
  }]
}

Поддерживаемый Markdown

  • **жирный**жирный
  • *курсив*курсив
  • __подчёркнутый__ → подчёркнутый
  • ~~зачёркнутый~~зачёркнутый
  • `код`код
  • ```язык\nкод\n``` → блок кода
  • [текст](url) → ссылка
  • > цитата → цитата

Важно: Заголовки (#, ##) и списки (-, *) не поддерживаются в embed.

Полный пример: Embed с всеми элементами

const fullEmbed = {
  embeds: [{
    author: {
      name: "Система мониторинга",
      icon_url: "https://example.com/monitor-icon.png",
      url: "https://example.com/dashboard"
    },
    title: "Отчёт о состоянии сервера",
    url: "https://example.com/server/status",
    description: "Все системы работают **нормально**.\nПоследняя проверка прошла успешно.",
    color: 5763719,
    fields: [
      {
        name: "CPU",
        value: "23%",
        inline: true
      },
      {
        name: "RAM",
        value: "4.2 ГБ / 16 ГБ",
        inline: true
      },
      {
        name: "Диск",
        value: "120 ГБ / 500 ГБ",
        inline: true
      },
      {
        name: "Время работы",
        value: "14 дней, 6 часов",
        inline: false
      },
      {
        name: "Последний инцидент",
        value: "Нет инцидентов за последние 30 дней",
        inline: false
      }
    ],
    thumbnail: {
      url: "https://example.com/server-thumbnail.png"
    },
    image: {
      url: "https://example.com/server-graph.png"
    },
    footer: {
      text: "Monitoring Bot v2.1 • ID: 98765",
      icon_url: "https://example.com/bot-icon.png"
    },
    timestamp: new Date().toISOString()
  }]
};

// Отправка
fetch("https://discord.com/api/webhooks/YOUR_WEBHOOK_URL", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify(fullEmbed)
});

Лимиты Discord Embed

Discord устанавливает жёсткие лимиты на размер embed:

ЭлементЛимит
Заголовок (title)256 символов
Описание (description)4096 символов
Количество полей (fields)25 полей
Имя поля (field.name)256 символов
Значение поля (field.value)1024 символа
Футер (footer.text)2048 символов
Имя автора (author.name)256 символов
Общий размер embed6000 символов
Количество embeds в сообщении10 embeds

Важно: Общий размер всех текстовых полей в одном embed не должен превышать 6000 символов. При превышении Discord вернёт ошибку 400 Bad Request.

Несколько Embeds в одном сообщении

Можно отправить до 10 embeds в одном сообщении:

const payload = {
  content: "Вот несколько отчётов:",
  embeds: [
    {
      title: "Сервер 1",
      description: "Статус: Онлайн",
      color: 5763719
    },
    {
      title: "Сервер 2",
      description: "Статус: Онлайн",
      color: 5763719
    },
    {
      title: "Сервер 3",
      description: "Статус: Офлайн",
      color: 15548997
    }
  ]
};

Каждый embed отображается отдельным блоком в сообщении.

Частые ошибки

1. Цвет не отображается

// Неправильно
{ color: "#5865F2" }

// Правильно
{ color: 5793266 }

Цвет должен быть десятичным числом, а не HEX-строкой.

2. Изображение не загружается

// Неправильно
{ image: { url: "image.png" } }

// Правильно
{ image: { url: "https://example.com/image.png" } }

URL должен быть полным и начинаться с https://.

3. Превышен лимит символов

Если embed не отправляется, проверьте общий размер:

const calculateEmbedSize = (embed) => {
  let total = 0;
  if (embed.title) total += embed.title.length;
  if (embed.description) total += embed.description.length;
  if (embed.footer?.text) total += embed.footer.text.length;
  if (embed.author?.name) total += embed.author.name.length;
  if (embed.fields) {
    embed.fields.forEach(f => {
      total += f.name.length + f.value.length;
    });
  }
  return total;
};

console.log(calculateEmbedSize(myEmbed)); // Должно быть <= 6000

Что дальше

Теперь вы знаете всё о структуре Discord embed и можете создавать сложные, красиво оформленные сообщения. Для быстрого прототипирования используйте визуальные инструменты вместо ручного написания JSON.

Попробуйте визуально в нашем бесплатном конструкторе Discord Webhook — создавайте embed с предпросмотром в реальном времени, а затем экспортируйте готовый JSON для вашего кода.

Кроме эмбедов, через вебхуки можно отправлять нативные опросы Discord, а также планировать отправку сообщений на определённое время — всё это доступно в нашем визуальном конструкторе.

Похожие статьи

Попробуйте в нашем инструменте

Открыть конструктор Discord Webhook