About Discord Embed Builder — Visual Editor with Live Preview & Webhook Send
Discord embeds require a precise JSON structure with strict character limits — 256 for titles, 1024 for field values, 4096 for descriptions, and 6000 total across the entire embed. Writing this JSON by hand means memorizing field names like "author" vs "footer", encoding colors as integers instead of hex, and guessing whether your payload will hit the 6000-character cap until Discord rejects it with a cryptic API error. The Embed Builder replaces that trial-and-error process with a form-driven editor that tracks every limit in real time and generates valid JSON that matches the Discord API specification exactly.
How to Use This Tool
Follow these simple steps to get accurate results in seconds. The whole process takes less than a minute for most inputs.
- 1
Set Title and Description
Enter the main title (max 256 characters) and description text (max 4096 characters). The character counter updates live to show remaining capacity.
- 2
Choose Sidebar Color
Pick a color for the embed's left sidebar using the color picker or enter a hex code for brand precision. The builder converts it to the integer format Discord's API requires.
- 3
Add Fields
Click to add field rows (up to 25 per embed). Each field has a 256-character name and 1024-character value. Toggle inline mode to arrange fields in rows of up to three.
- 4
Add Images, Author, and Footer
Set thumbnail (top-right) and main image (bottom) URLs, author name and icon (top-left), and footer text with optional timestamp. All URLs must be publicly accessible for Discord to render them.
- 5
Export the JSON or Send via Webhook
Copy the generated embed object as JSON for your bot code, or paste a webhook URL and send the embed directly to a channel to verify it renders correctly.
How It Works
The technical details of how this tool processes your input and produces accurate results.
Form Input to Embed Object Mapping
Each form field maps directly to a property in the Discord embed object: the title input becomes embed.title, the color picker converts a hex value like #FF0000 to the integer 16711680 that Discord expects, and each field row becomes an object in the embed.fields array with name, value, and inline properties. The builder maintains a running total of all character counts against Discord's 6000-character limit.
Discord API Validation and Limit Enforcement
Before generating output, the builder validates against Discord's embed specification: title capped at 256 characters, description at 4096, up to 25 field objects with 256-character names and 1024-character values, footer text at 2048, and the combined total under 6000. Inline fields are grouped into rows of three to match how Discord renders them. Invalid inputs — like a field value exceeding 1024 characters — are flagged immediately rather than producing JSON that Discord will reject.
JSON Generation and Webhook Delivery
The output is a valid Discord embed object conforming to the API specification, ready to paste into Discord.js (as new EmbedBuilder().setData(json)), discord.py (as discord.Embed.from_dict(json)), or a webhook payload wrapped in { embeds: [json] }. When sending via webhook, the builder constructs a full HTTP POST request to discord.com/api/webhooks/{id}/{token} with the embed payload in the request body, and Discord returns a 204 on success or a 400 with error details on failure.
Key Features
Built to handle real workflows quickly and accurately. Each feature solves a specific problem you'd otherwise need multiple tools or manual steps to address.
Live Preview
Renders your embed exactly as it appears in Discord as you edit, updating the color sidebar, field layout, thumbnail positioning, and text formatting in real time.
Character Limit Tracking
Counts every character against Discord's 6000 total limit and per-field caps (title: 256, description: 4096, field name: 256, field value: 1024, footer: 2048), preventing payload rejection at send time.
Inline Field Grids
Toggle the inline property on fields to arrange them in rows of up to three, creating dashboard-like stat displays and comparison tables that Discord renders side-by-side.
Color Sidebar Picker
Visual color picker that automatically converts hex color codes to the integer format Discord's API requires (e.g., #5865F2 becomes 5793266), with manual hex input for precise brand matching.
JSON Export & Webhook Send
Copy the embed object as valid JSON for use in bot code, or send the embed directly to a channel via webhook URL using a browser-to-Discord HTTP POST request.
Benefits of Using Discord Embed Builder — Visual Editor with Live Preview & Webhook Send
Why this tool matters and how it improves your daily work.
Catches Embed Rejection Errors Before They Happen
Discord rejects embed payloads exceeding 6000 total characters or individual field limits with a 400 error that doesn't always explain which field caused the problem. The builder tracks every limit in real time so your JSON is always valid on the first attempt.
Eliminates Integer Color Conversion Mistakes
Discord's embed color property requires an integer, not a hex string — #FF0000 must become 16711680. The builder handles this conversion automatically, preventing the common mistake of pasting hex strings that silently default to no color.
Produces API-Spec JSON Without Manual Editing
The generated JSON uses the exact property names and structure from Discord's embed object specification — no mismatched keys like "colorCode" instead of "color" or "text" instead of "value" that cause silent rendering failures in production.
Validates Webhook Delivery Before Integration
Sending via webhook during design time catches errors that only appear at runtime — malformed URLs return 401, oversized payloads return 400 with the specific field that failed, and rate limits surface immediately as 429 responses with retry timing.
Common Use Cases
Real scenarios where this tool saves time and produces better results than manual methods.
Server Rules Embed with Reaction Instructions
A community manager setting up a server rules embed that needs to display 12 rules within Discord's 1024-character field limit per value, with proper line breaks, emoji numbering, and a footer instructing members to react with ✅ to gain access — all while staying under the 6000 total character cap.
Game Server Status Dashboard
A game community building an inline-field embed showing server name, player count, map rotation, and ping in a three-column grid layout that updates via webhook every 5 minutes, where the color sidebar switches between green (#2ECC71) and red (#E74C3C) based on server health.
Bot Command Response Prototyping
A bot developer iterating on an embed layout for a /userinfo command that displays avatar, join date, roles, and timeout status — prototyping the visual structure before writing the EmbedBuilder code in Discord.js, avoiding the edit-restart-test cycle that slows development.
Product Catalog Embed for Marketplace Server
A marketplace server owner creating product listing embeds with inline fields showing price, stock count, and seller rating in a grid format, with the product image as the main embed image and the thumbnail showing the seller's avatar.
Who Uses This Tool
Server Administrators
configuring announcement embeds for 10k+ member communities where consistent branding (color, footer format, author attribution) must be identical across every announcement post
Bot Developers
prototyping embed layouts visually before writing Discord.js EmbedBuilder or discord.py Embed code, eliminating the edit-restart-test cycle that adds 30+ seconds per iteration
Community Managers
building weekly event embeds with timestamp tags, reaction-role instructions, and inline field grids that need to stay under Discord's 6000-character limit while remaining readable on mobile
Common Issues & Fixes
The most frequent problems users encounter and how to fix them quickly.
Embed fields not showing in the Discord preview
Cause: Discord enforces a 256-character limit on field names and a 1024-character limit on field values. Fields exceeding these limits are silently dropped by Discord's API without an error response, so the embed sends successfully but appears incomplete.
Fix: Keep each field name under 256 characters and each field value under 1024 characters. The ToolmetryAI embed builder shows live character counts in each field — watch them turn red as you approach the limit. Split long content across multiple fields rather than cramming everything into one.
Webhook returns 400 Bad Request when sending the embed
Cause: The most common cause is malformed JSON in the embed payload — usually a trailing comma, an unescaped quote in a field value, or a missing closing brace. Discord's webhook endpoint validates JSON before processing and rejects anything that doesn't parse cleanly.
Fix: Use the 'Copy JSON' button in the embed builder to get the exact JSON payload, then send it via the Webhook Tester tool on this site. The tester shows the response body which includes Discord's specific error message ('Invalid Form Body' with field-level details). Fix the JSON based on the error message and resend.
Embed colors look different on mobile vs desktop Discord
Cause: Discord's mobile apps apply slight color profile adjustments to embed colors. A pure #FF0000 red may appear slightly orange on iOS due to color management. Dark theme vs light theme also affects perceived color brightness.
Fix: Use slightly more saturated colors (e.g. #E63946 instead of #FF0000) to compensate for mobile color management. Test your embed on both desktop and mobile before publishing. Avoid relying on color alone to convey meaning — pair colors with text labels.
Thumbnail image not loading in the embed
Cause: Discord requires thumbnail URLs to be publicly accessible HTTPS URLs that return an image content-type. Self-signed certificates, HTTP-only URLs, hotlink-protected CDN URLs, and URLs requiring authentication will all fail silently — the embed sends but the thumbnail area is blank.
Fix: Host the thumbnail on a public CDN like Imgur, Cloudinary, or your own HTTPS endpoint with a valid certificate. Verify the URL returns Content-Type: image/png or image/jpeg by opening it in a new browser tab. Discord caches thumbnails for ~7 days, so changing the URL forces a re-fetch.
Pro Tips
Practical advice to get the most out of this tool, based on how experienced users actually work with it.
Use inline fields to create a grid layout for stats or feature comparisons. Three inline fields per row creates a dashboard-like appearance that's easier to scan than a single column — but remember that inline fields with long values wrap awkwardly, so keep inline values under 50 characters when possible.
Set the embed color to match your server's branding using a hex code. Consistent color across all announcement embeds creates visual continuity that helps members instantly recognize official posts in a busy channel — use the same integer value in your bot code to maintain consistency programmatically.
Always include a footer with a timestamp or attribution. When members screenshot and share embeds outside Discord, the footer preserves context about where and when the information was posted — this prevents misinformation from circulating without source attribution.
When building embeds for bot commands, test the JSON output against Discord.js's EmbedBuilder validator before deploying. The API-spec JSON the builder produces is valid, but Discord.js sometimes applies additional validation in its setter methods that the raw API doesn't enforce.
Frequently Asked Questions
Quick answers to the most common questions about this tool. If your question isn't here, contact our support team.