Discord embed generator and visualizer

Build a Discord embed with a live preview, then copy JSON that works with webhooks and the bot API. Nothing you type leaves your browser.

Title, description and color
Color

Saved as the decimal number 5793266 in the JSON.

Author
Fields (2/25)
Field 1
Field 2
Images
Footer and timestamp
Import existing JSON

Live preview

WebhookAPPToday at 4:20 PM

Server Team

Welcome to the server

Glad you made it! Read #rules before chatting, then grab your roles. Need help? Open a ticket and a staff member will reply.

Rules

Be kind, no spam, keep it SFW.

Support

Open a ticket in #support.

See you around

242 of 6,000 embed characters used.

JSON for webhooks and the bot API

{
  "embeds": [
    {
      "author": {
        "name": "Server Team"
      },
      "title": "Welcome to the server",
      "description": "Glad you made it! Read **#rules** before chatting, then grab your roles.\nNeed help? Open a ticket and a staff member will reply.",
      "color": 5793266,
      "fields": [
        {
          "name": "Rules",
          "value": "Be kind, no spam, keep it SFW.",
          "inline": true
        },
        {
          "name": "Support",
          "value": "Open a ticket in #support.",
          "inline": true
        }
      ],
      "footer": {
        "text": "See you around"
      }
    }
  ]
}

How to use the embed generator

1

Fill in the embed

Start with a title, description and color. Open Author, Fields, Images and Footer and timestamp for anything else you need. Every section is optional, but Discord won't send a completely empty message.

2

Check the live preview

The preview updates as you type. It renders Discord markdown such as **bold**, *italic*, __underline__ and [masked links](https://example.com), and places inline fields up to three per row.

3

Fix any warnings

Warnings appear under the preview if a part goes over Discord's limits, a URL doesn't start with https://, or a field is missing its name or value.

4

Copy the JSON

Click Copy JSON. Send it to a webhook URL, or use it as the body of a bot's create message request.

What a Discord embed is made of

An embed is a structured card attached to a message. Every part is optional, and each has its own limit:

PartWhat it doesLimit
AuthorSmall name and icon at the top, optionally linked256 characters
TitleBold heading, optionally a link256 characters
DescriptionMain text, supports markdown4,096 characters
FieldsName and value pairs, stacked or inline25 fields; 256-character name, 1,024-character value
ColorThe bar on the left edgeOne solid color
ThumbnailSmall image top rightImage URL
ImageLarge image under the textImage URL
FooterSmall text and icon at the bottom2,048 characters
TimestampTime shown next to the footer, in each viewer's time zoneISO 8601 date

The text in all of an embed's parts together can't pass 6,000 characters, and one message can carry up to 10 embeds. These numbers come from Discord's developer documentation.

Webhook JSON vs. bot JSON

The output is a message body: an optional content string plus an embeds array. Webhooks accept that body directly and also let you set username and avatar_url to change the sender's name and picture for that one message. Bots send the same body through the create message endpoint. For when to use which, read Discord webhook vs. bot messages.

Embeds vs. Components v2

Discord's newer Components v2 layouts (containers, sections, galleries and buttons) can replace embeds for richer messages. They use a different JSON format and a message flag, and a Components v2 message can't also carry embeds, so embed JSON can't be reused as-is. For layouts with buttons and menus, the Better Tickets message builder builds Components v2 messages visually.

Frequently asked questions

How do I send this embed with a webhook?

Copy the JSON and send it in a POST request to your webhook URL with the header Content-Type: application/json. The JSON is a complete message body, so tools like curl, Postman or your own script can send it as-is.

Can I use the JSON with a Discord bot?

Yes. The output matches the body of Discord's create message endpoint (content plus an embeds array), so you can pass it to your library's send method or post it to the API directly. With discord.js or discord.py you can also rebuild it from the same values.

What are Discord's embed limits?

Titles can be 256 characters, descriptions 4,096, and each embed can have 25 fields with names up to 256 and values up to 1,024 characters. Footer text can be 2,048 and author names 256. All of those together can't exceed 6,000 characters. The generator counts each part and warns you before you hit a limit.

Why is the embed color a number in the JSON?

Discord's API stores colors as a decimal integer, so #5865F2 becomes 5793266. Pick the color as HEX here and the JSON gets the right number automatically. The Discord color picker shows both formats.

Does the image need to be uploaded somewhere?

Yes. Image, thumbnail and icon fields take a public https:// URL. Discord fetches the image from that address when the message is sent.

Can I edit an embed I already sent?

Paste the old JSON into Import existing JSON, change what you need, and copy it again. To edit the original message in place you need its webhook or bot. The Better Tickets message builder can load and edit messages the bot or its webhooks sent.