Skip to content

Discord embed builder

Write your message, pick a color, add fields and buttons: the preview shows what members will see in Discord, and the tool checks the official limits. Then copy the message JSON for your bot.

Free, no account. Everything happens in your browser: what you write is never sent or stored, and it is gone when you close the page.

Updated

Go to the preview
0/2000
21/256
84/4096

Discord formatting works: **bold**, *italics*, lists, links [text](https://...).

Stripe color
Fields 2/25
Field 1
Field 2
15/2048
Buttons 2/5
Button 1
Button 2

Preview

Your botAPP
Welcome to the server
Read the rules before chatting. Click the green button to get the Member role.
HelpAsk your questions in the help channel
EventsEvery Friday night
The server team
I accept the rulesDiscord guidelines

Characters counted toward the 6000 limit 186/6000

Discord accepts this message as is.

Message JSON

{
  "embeds": [
    {
      "title": "Welcome to the server",
      "description": "Read the **rules** before chatting.\nClick the green button to get the *Member* role.",
      "color": 5793266,
      "fields": [
        {
          "name": "Help",
          "value": "Ask your questions in the help channel",
          "inline": true
        },
        {
          "name": "Events",
          "value": "Every Friday night",
          "inline": true
        }
      ],
      "footer": {
        "text": "The server team"
      }
    }
  ],
  "components": [
    {
      "type": 1,
      "components": [
        {
          "type": 2,
          "style": 3,
          "label": "I accept the rules",
          "custom_id": "accept_rules"
        },
        {
          "type": 2,
          "style": 5,
          "label": "Discord guidelines",
          "url": "https://discord.com/guidelines"
        }
      ]
    }
  ]
}

The body to send to the Discord API to create a message. Buttons with a custom_id only work in a message sent by an application, such as your bot.

How do I use the embed builder?

  1. Replace the example with your title and description. Discord formatting works: bold, italics, lists, links and timestamps.
  2. Pick the color of the stripe on the left, with the picker, a hex code or one of Discord’s colors.
  3. Add fields to show information side by side, then a footer.
  4. Add up to 5 buttons: a link button opens an address, the others send their custom_id to your bot.
  5. When the list of problems is empty, copy the message JSON.

What is a Discord embed?

An embed is a box that comes with a message: a colored stripe on the left, a title, a description, fields and a footer. Bots and webhooks use them for announcements, rules, game sheets or command results.

A member cannot type an embed by hand in Discord: it takes a bot or a webhook, which sends the message as JSON. That JSON is what the tool prepares.

What does each option do?

The embed builder options and their name in the JSON
OptionNameEffect
Message textcontentthe regular text, shown above the embed
Titletitlethe first line of the embed, in bold
Descriptiondescriptionthe body of the embed, with Discord formatting
Colorcolorthe left stripe, written as a decimal integer: #5865F2 becomes 5793266
Fieldsfieldsname and value pairs; “on the same line” (inline) puts them side by side
Footerfooter.texta small gray line at the bottom of the embed
Buttonscomponentsa row of buttons under the message

What are the limits of a Discord embed?

Discord refuses a message that goes over any one of these limits. The builder counts characters and flags every overrun before you copy the JSON.

Limits of a Discord message with an embed and buttons
PartLimit
Message text2000 characters
Title256 characters
Description4096 characters
Fields25 per embed
Field name256 characters
Field value1024 characters
Footer2048 characters
Message total (titles, descriptions, fields, footers and authors of all its embeds)6000 characters
Embeds per message10
Buttons per row5
Button text80 characters
Button custom_id1 to 100 characters
Link button address512 characters

How do buttons work?

A button has a style from 1 to 5: Primary (blue), Secondary (gray), Success (green), Danger (red) and Link. The first four carry a custom_id, an identifier Discord sends to your bot when a member clicks. The Link style carries an address and simply opens a page, without telling the bot.

A button with a custom_id does nothing on its own: your bot must answer the click within 3 seconds, otherwise Discord tells the member the interaction failed. Style 6 (Premium) sells an app subscription and is not offered here.

Which mistakes should I avoid?

  • Writing the color as hex in the JSON: Discord expects an integer, the tool converts it.
  • Going over 6000 characters in total by filling many fields, even if each field stays within its own limit.
  • Leaving a field without a name or a value: Discord refuses the message.
  • Giving two buttons of the same message the same custom_id: your bot could not tell which one was clicked, and Discord refuses the message.
  • Sending buttons through a regular webhook: a webhook not owned by an application cannot send buttons that respond to clicks.

Where does this information come from?

Sources: embed limits, create message and buttons in Discord’s official documentation.

Frequently asked questions

How do I send the embed to my server?

The JSON is the body of the Discord API Create Message request. Your bot sends it in a channel, or as the reply to a slash command.

Can I put a timestamp in an embed?

Yes. Paste a code like <t:1618953630:R> in the description or in a field value: Discord shows it in each member’s own time.

How many buttons fit under a message?

A row holds 5 buttons at most. The tool prepares one row; a bot can send several in the same message.

Is my embed saved anywhere?

No. Everything stays in your browser: nothing is sent to discbot.net or to Discord, and the draft is gone when you close the page.

Want your bot to send this embed and answer the buttons? Describe it in plain words, the discbot.net assistant writes the code and you test the clicks before publishing. It is free for now.