Discord Embed Generator with live preview
Create Discord embeds with a form: add an author, title, description, color, up to 25 fields, image, thumbnail, footer and timestamp. The live preview shows how your embed will look in Discord, and the builder outputs webhook JSON, discord.py code or discord.js code.
Built by Justin Schüssler
Free and no sign-up required: the form, preview and code generation run in your browser. Nothing is saved.
Need Discord bot hosting too? Keep your bot running 24/7.
Form
Total 0/6000Author
Fields
0/25No fields yet—add one to display name/value pairs.
Footer
Preview
Code
{
"embeds": [
{
"color": 5793266
}
]
}Export, import & share
Export JSON
Import JSON
Shareable link
Encodes your entire embed directly in the URL—nothing is stored on our servers.
Example result
What the Discord Embed Builder exports
You fill in the title, description, fields, color, and images, and the tool shows a live preview of the embed as it appears in Discord and outputs it as webhook JSON, discord.py code, or discord.js code. Below is the tool's sample embed; your output depends on your input.
Example · Example embed “Geplante Wartungsarbeiten”
308 of 6000 charactersOutput: webhook JSON
{ "embeds": [ { "title": "Geplante Wartungsarbeiten", "description": "Am kommenden Sonntag führen wir zwischen 02:00 und 04:00 Uhr geplante Wartungsarbeiten an unserer Infrastruktur durch.\nEs kann in diesem Zeitraum zu kurzen Unterbrechungen kommen.", "url": "https://status.zap-hosting.com", "color": 5763719, "author": { "name": "ZAP-Hosting Status", "url": "https://status.zap-hosting.com" }, "fields": [ { "name": "Status", "value": "Geplant", "inline": true }, { "name": "Dauer", "value": "~2 Stunden", "inline": true }, { "name": "Betroffene Dienste", "value": "Kundenportal, API" } ], "image": { "url": "https://assets.zx.zap-hosting.com/cdn/zapx-logo-white-green-1781853280180.webp" }, "footer": { "text": "ZAP-Hosting Status Page" } } ]}Output: discord.js
import { EmbedBuilder } from "discord.js"; const embed = new EmbedBuilder() .setAuthor({ name: "ZAP-Hosting Status", url: "https://status.zap-hosting.com" }) .setTitle("Geplante Wartungsarbeiten") .setURL("https://status.zap-hosting.com") .setDescription("Am kommenden Sonntag führen wir zwischen 02:00 und 04:00 Uhr geplante Wartungsarbeiten an unserer Infrastruktur durch.\nEs kann in diesem Zeitraum zu kurzen Unterbrechungen kommen.") .setColor(0x57F287) .addFields( { name: "Status", value: "Geplant", inline: true }, { name: "Dauer", value: "~2 Stunden", inline: true }, { name: "Betroffene Dienste", value: "Kundenportal, API" }, ) .setImage("https://assets.zx.zap-hosting.com/cdn/zapx-logo-white-green-1781853280180.webp") .setFooter({ text: "ZAP-Hosting Status Page" });- colorDiscord expects the color as a number: #57f287 becomes 5763719 in JSON.
- inlineFields with inline: true appear side by side in Discord; the others appear on separate lines.
- discord.pyYou can also copy the same embed as discord.py code in the tool.
How it works
How to create a Discord embed
From a blank form to finished code: create your Discord embed in six steps.
Step 1
Load an example or start from scratch
Click “Load example” to see a completed embed, or start with the blank form. Use “Import JSON” to load an existing embed into the form.
Step 2
Enter the author, title, and description
Under “Author”, enter a name, URL and icon URL, followed by the title, title URL and description. The counters next to the title and description show how many characters you've used.
Step 3
Choose color
Choose the embed color with the color picker or enter a hex code, such as #5865F2. Select “No color” to omit the color entirely.
Step 4
Add fields
Use “Add field” to create up to 25 fields with a name and value. With “Inline”, up to three fields appear side by side; change their order by dragging and dropping them.
Step 5
Add images, a footer, and a timestamp
Optionally enter an image URL, thumbnail URL, footer text and footer icon. For the timestamp, choose “None”, “Now” or “Custom time” with a date and time.
Step 6
Check the preview and copy the code
Check your embed in the live preview and keep an eye on the 6,000-character total limit. Then select “Raw JSON”, “discord.py” or “discord.js” and click “Copy code”.
Export
One Discord embed, three exports: webhook JSON, discord.py, and discord.js
The Discord Embed Generator turns your form into webhook JSON and code for the discord.py and discord.js bot libraries at the same time. In the code section, switch between “Raw JSON”, “discord.py”, and “discord.js”, then use “Copy code” to copy the result.
Webhook JSON
{
"embeds": [
{ "title": "…", "color": 5793266 }
]
}The embed is inside {"embeds": [...]}, exactly the format a Discord webhook expects as its request body. The color is a decimal number, and the tool omits empty entries.
discord.py
embed = discord.Embed(title="…", color=0x5865F2)
embed.add_field(name="…", value="…", inline=True)For bots using discord.py: discord.Embed(...) with set_author, add_field, set_image, set_thumbnail, and set_footer. The code includes only the details you filled in.
discord.js
const embed = new EmbedBuilder()
.setTitle("…")
.setColor(0x5865F2);For bots using discord.js v14: new EmbedBuilder() with setAuthor, setTitle, addFields, setFooter, and other methods. The color appears in the code as a 0x value.
Limits
Discord embed limits at a glance
The Embed Builder checks these limits live. The total includes the title, description, all field names and values, footer text, and author name. URLs don’t count. If a limit is exceeded, the tool highlights the affected field or total counter.
| Component | Maximum |
|---|---|
| Title | 256 characters |
| Description | 4096 characters |
| Number of fields | 25 fields |
| Field name | 256 characters |
| Field value | 1024 characters |
| Footer text | 2048 characters |
| Author name | 256 characters |
| Total text length | 6000 characters |
Basics
Discord embeds and webhooks explained
What is a Discord embed?
An embed is a formatted message block with a colored bar along its edge. It can contain an author, a linked title, a description, fields, a large image, a thumbnail, a footer, and a timestamp. Bots or webhooks send embeds; you fill in these components in the form.
How to use the webhook JSON
To create a webhook in Discord, go to Integrations → Webhooks in the channel settings and copy its URL. Then send the exported webhook JSON to that URL using your own script or tool. The Embed Builder itself sends nothing and doesn’t ask for a webhook URL.
Explore more
More Discord tools for your embeds
Discord Embed Color Picker
Choose a Discord Embed color and copy it as decimal, hex, discord.js, or discord.py code. Includes official Discord brand colors and a live preview.
Built by Justin Schuessler
Discord Character Counter
Paste text and instantly see if it fits, with a live character count against every Discord limit (message, embed, username, nickname, slash commands, polls). Runs entirely in your browser.
Built by Justin Schuessler
Discord Timestamp Generator
Generate Discord timestamp tags (<t:...:STYLE>) from a date and time, with previews for UTC, your time zone and common time zones across all 9 styles, copy buttons and a parser for existing tags. Runs entirely in your browser.
Built by Justin Schuessler
Discord Permissions Calculator
Click to combine Discord role and bot permissions into a 64-bit bitfield, or decode an existing bitfield. Includes presets, an invite link generator, and warnings for admin permissions.
Built by Justin Schuessler
Discord Text Formatter (Markdown, Colored Text & Code Blocks)
Format Discord text with a click: bold, italic, spoilers, quotes, and code blocks, plus colored text using ANSI code blocks. Includes a live preview like Discord and a copy button. Runs entirely in your browser.
Built by Luca Stanek
Discord Role Color Picker
Choose Discord role colors and instantly copy their hex and decimal values. Includes a two-color gradient (Enhanced Role Styles), Discord's 20 default colors, and live previews as a chat message and member list entry.
Built by Justin Schuessler
FAQ
Frequently asked questions
Quick answers about the Discord Embed Generator, webhooks, limits and privacy.
Yes. The Discord Embed Generator is free to use without signing up. The form, live preview, and code generation all run in your browser.
No, the tool saves nothing. The shareable link contains your entire embed Base64-encoded in the URL; anyone who opens it gets a pre-filled form. The preview only loads images from a shared link or imported JSON when you click “Load external images”.
The tool itself sends nothing and doesn’t ask for a webhook URL. Copy the webhook JSON ({"embeds": [...]}) and send it using your own script or tool to a webhook you create under Integrations → Webhooks in Discord’s channel settings. For your bot, copy the discord.py or discord.js code instead.
The limits are 256 characters for the title, 4,096 for the description, 256 for a field name, 1,024 for a field value, 2,048 for footer text and 256 for the author name, plus a maximum of 25 fields. Together, these texts must not exceed 6,000 characters; URLs don't count. The tool counts characters live and highlights exceeded limits.
Yes. In the code section, switch between “Raw JSON”, “discord.py”, and “discord.js”, then use “Copy code” to copy the result. discord.py uses discord.Embed(...) with add_field and set_footer; discord.js generates v14 code with new EmbedBuilder() and addFields. The code includes only the details you filled in. Each field needs both a name and a value. If one of them is missing, the tool flags the field.
Discord expects the color as a decimal number. The tool automatically converts your hex value: Discord Blurple #5865F2 becomes 5793266, while the discord.py and discord.js code uses 0x5865F2. Select “No color” to omit it entirely.
When you enable “Inline” for a field, consecutive inline fields share a row, up to three side by side. A field without Inline always starts a new full-width row. The live preview arranges fields the same way.
Yes. Under “Import JSON”, paste webhook JSON or a single embed object. If it contains multiple embeds, the tool uses the first. It rejects invalid JSON, unknown fields, or more than 25 fields with an error message.
Any more questions?
Contact SupportHost your Discord bot reliably 24/7
A ZAP-Hosting VPS runs around the clock, even when your own computer is off.
No setup. No risk. Online in seconds.
Looking for more tools? View all Discord tools