Tool
Discord embed builder
Compose an embed, watch every documented limit count down as you type, and copy the JSON. This page asks for no webhook URL and sends nothing — you post the payload yourself, under your own credentials.
Not counted toward the 6,000-character total.
Fields
Preview
approximate — Discord's client is the authorityNothing yet. An embed with no content is rejected by Discord, not rendered empty.
Payload
{}
Every documented limit
An embed that breaks one of these is rejected whole. Discord answers the request with an error rather than truncating the field and posting the rest, which is why a builder that counts as you type is worth more than one that looks nicer.
| Field | Limit | Counts toward the 6,000 |
|---|---|---|
| title Title | 256 characters | yes |
| description Description | 4,096 characters | yes |
| fields Fields | 25 field objects A count, not a length. Each field then has its own two ceilings. | no |
| field.name Field name | 256 characters | yes |
| field.value Field value | 1,024 characters | yes |
| footer.text Footer text | 2,048 characters | yes |
| author.name Author name | 256 characters | yes |
- 6,000 characters, across the whole message
- The sum of title</span>, <span class="datum">description</span>, <span class="datum">field.name</span>, <span class="datum">field.value</span>, <span class="datum">footer.text</span>, <span class="datum">author.name across all embeds on one message. Ten embeds each comfortably inside their own limits can still fail together.
- 10 embeds per message
- Documented next to the embeds parameter on Execute Webhook rather than in the limits section, which is why it is often quoted wrong.
- URLs and colour are free
- The title link, image and thumbnail URLs, the colour and the timestamp are not in the counted list. A long image URL costs nothing against the total.
- Empty is not valid
- An embed with no content at all is rejected rather than rendered blank. The preview says so instead of showing an empty box.
Transcribed from Discord's message resource and webhook resource, both retrieved 2026-08-31.
Why there is no send button
A box that posts whatever you type to whatever URL you paste is a spam relay with a preview attached, and keeping one honest takes abuse handling this project does not have and does not want. So the payload is built here and sent by you.
A webhook URL is also a credential: anyone holding it can post to that channel until it is deleted. This page never asks for one, which means there is no field where you could paste it by accident.
curl -H "Content-Type: application/json" \
-d @embed.json \
"$YOUR_WEBHOOK_URL"