Skip to content

Migrating from embeds

Does your bot use embeds? This table tells you which V2 component matches each part of an embed.

Embed (legacy) Components V2
content Text Display outside the container
embeds[0] Container
color The Container’s accent_color
author Text Display with -# (small text)
title + url Text Display with ## [Title](url)
description Text Display
fields Several Text Displays, or one Text Display with **Name** + value
thumbnail Section with a Thumbnail as accessory
image Media Gallery with 1 item
footer + timestamp Text Display with -# and <t:seconds:R>
Button rows at the bottom Action Row inside or outside the Container
Legacy message with an embed
{
"content": "New video!",
"embeds": [
{
"color": 15548997,
"author": { "name": "Ana's Channel" },
"title": "How to build a bot in 10 minutes",
"url": "https://example.com/video",
"description": "Learn how to build your first Discord bot from scratch.",
"thumbnail": { "url": "https://cdn.discordapp.com/embed/avatars/0.png" },
"image": { "url": "https://example.com/cover.png" },
"footer": { "text": "Posted" },
"timestamp": "2026-11-02T12:00:00.000Z"
}
],
"components": [
{
"type": 1,
"components": [
{ "type": 2, "style": 5, "label": "Watch video", "url": "https://example.com/video" }
]
}
]
}
Preview
My BotAPPToday at 12:00 PM

New video!

Ana's Channel

How to build a bot in 10 minutes

Learn how to build your first Discord bot from scratch.

Posted 2026-11-02

payload.json
{
"flags": 32768,
"components": [
{
"type": 10,
"content": "New video!"
},
{
"type": 17,
"accent_color": 15548997,
"components": [
{
"type": 9,
"components": [
{
"type": 10,
"content": "-# Ana's Channel"
},
{
"type": 10,
"content": "## [How to build a bot in 10 minutes](https://example.com/video)\nLearn how to build your first Discord bot from scratch."
}
],
"accessory": {
"type": 11,
"media": {
"url": "https://cdn.discordapp.com/embed/avatars/0.png"
}
}
},
{
"type": 12,
"items": [
{
"media": {
"url": "attachment://banner.png"
}
}
]
},
{
"type": 10,
"content": "-# Posted <t:1793620800:R>"
},
{
"type": 1,
"components": [
{
"type": 2,
"style": 5,
"label": "Watch video",
"url": "https://example.com/video"
}
]
}
]
}
]
}
  1. Add "flags": 32768 (or add it to the flags you already use).
  2. Remove content and embeds: move them to Text Display and Container.
  3. If you displayed attachments, add File or Media Gallery components pointing to attachment://name.
  4. Make sure you don’t exceed 40 components in total.
  5. Move buttons where they make the most sense: they can now go inside the container or next to some text (Section).