Discord Embed Builder
Build a Discord embed visually with live preview. Set title, color, fields, images, and footer — copy the webhook-ready JSON and paste it into your bot or webhook.
{
"embeds": [
{
"title": "Welcome to the server!",
"description": "Read the rules, pick your roles, and say hi in #general 👋",
"color": 5793266,
"footer": {
"text": "VibeBot • Auto-generated"
},
"fields": [
{
"name": "📋 Rules",
"value": "Read them in #rules",
"inline": true
},
{
"name": "🎮 Channels",
"value": "Browse the categories",
"inline": true
}
]
}
]
}FAQ
How do I send the JSON to a Discord webhook?
POST the JSON to your webhook URL with Content-Type: application/json. From a terminal: curl -X POST -H "Content-Type: application/json" -d @embed.json YOUR_WEBHOOK_URL. From code: fetch(url, { method: "POST", headers, body: JSON.stringify(json) }). The webhook URL comes from your channel's Integrations → Webhooks settings.
What's the difference between embed.color as a hex string and as a number?
Discord's API expects an INTEGER for embed.color (e.g., 5793266 for blurple), NOT a hex string like "#5865F2". This builder converts your hex picker selection to decimal automatically. discord.js's EmbedBuilder.setColor() accepts either; the raw API does not.
Why isn't my image showing up?
Three common causes: (1) URL is not publicly accessible — Discord can't fetch images from localhost or private storage. (2) URL doesn't end in a recognizable image extension (.png/.jpg/.gif/.webp). (3) The host blocks Discord's image proxy via CORS or User-Agent rules. Test the URL by pasting it into a browser; if you can see the image, Discord usually can too.
How many fields can I add to an embed?
Discord caps embeds at 25 fields per embed, with field name max 256 chars and field value max 1024 chars. Total embed size (title + description + all fields + footer + author) max 6000 chars. The builder enforces these limits as you type.
How do "inline" fields work?
Inline fields sit side-by-side instead of stacking vertically. Up to 3 inline fields fit per row on desktop, fewer on mobile. Useful for displaying paired info (Name | Value, Stats grid, key-value pairs). Mix inline and non-inline fields for layout control — non-inline fields force a line break.
Want this embed in a working bot?
Build a Discord bot that sends embeds like this on schedule, in response to commands, or when events happen. No code, deploy in 30 seconds.
Build my Discord bot