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
Saved as the decimal number 5793266 in the JSON.
Author
Fields (2/25)
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
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.
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.
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.
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:
| Part | What it does | Limit |
|---|---|---|
| Author | Small name and icon at the top, optionally linked | 256 characters |
| Title | Bold heading, optionally a link | 256 characters |
| Description | Main text, supports markdown | 4,096 characters |
| Fields | Name and value pairs, stacked or inline | 25 fields; 256-character name, 1,024-character value |
| Color | The bar on the left edge | One solid color |
| Thumbnail | Small image top right | Image URL |
| Image | Large image under the text | Image URL |
| Footer | Small text and icon at the bottom | 2,048 characters |
| Timestamp | Time shown next to the footer, in each viewer's time zone | ISO 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.
Related tools and guides
- Discord color pickerFind the exact HEX and decimal code for your embed color.
- Discord timestamp generatorAdd times that show in each reader's time zone.
- Discord webhook vs. bot messagesDecide how to post rules and announcements.
- Better Tickets message builderSend and edit messages with buttons and menus from a dashboard.