Skip to content

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 authority

Nothing 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"