Skip to content
Webhooks & Embeds

Discord Embed Builder (JSON)

A visual builder with a live preview: title, description, color, author, footer, fields, thumbnail and images. Add and reorder fields, tweak the color, then copy the exact embed JSON for your bot.

  • Free, no limits
  • No login
  • Runs in your browser
Tool
Fields
Live preview
Welcome to our server!
Click the button below and start exploring. πŸŽ‰
Category
General
Embed JSON (for your bot)
{
  "embeds": [
    {
      "title": "Welcome to our server!",
      "description": "Click the button below and start exploring. πŸŽ‰",
      "color": 5793266,
      "fields": [
        {
          "name": "Category",
          "value": "General",
          "inline": true
        }
      ]
    }
  ]
}

About this tool

Building an embed for a bot by hand means writing JSON, escaping quotes, and counting field limits. This builder gives you a visual form where you type the content and see a live preview, then copies the exact JSON you need.

It covers title, description, color, author, footer, fields, image and thumbnail, everything the Discord embed structure supports.

How to use

1

Fill in title, description and color.

2

Add fields, footer, thumbnail and images.

3

Copy the generated embed JSON into your bot.

The structure of an embed

An embed is a JSON object, not markup. It has an author block with a name, URL and icon; a title and its own URL; a description; up to 25 fields each with a name, value and an inline flag; a thumbnail; a full-width image; a footer with text and icon; a timestamp; and a colour.

The colour is a decimal integer, not a hex string. Discord's own blurple is 5793266 rather than #5865F2, and passing the hex form as text is the most common reason an embed sends successfully but renders with the default grey stripe.

Markdown works in the description and in field values. It does not work in the title, the author name, the footer text or field names - those render literally, so asterisks intended as bold appear as asterisks.

Inline fields and how they lay out

Fields marked inline pack up to three per row, subject to the width available. Fewer than three inline fields in a row are stretched to fill it, which is why two inline fields look wide and unbalanced next to a row of three.

A non-inline field always starts a new row and spans the full width, so mixing them is how you build sections. A common pattern is a full-width description field followed by three inline fields for the details.

Mobile ignores much of this. On narrow screens inline fields often collapse to a single column, so an embed designed as a neat three-column grid on desktop reads as a long list on a phone. Design for the phone if most of your members are on one.

Limits that reject the whole message

Title is capped at 256 characters, description at 4096, each field name at 256, each field value at 1024, footer text at 2048 and author name at 256. You may send 10 embeds per message.

Separately, the sum of all that text across every embed in one message cannot exceed 6000 characters. Ten individually valid embeds can still be rejected on the total, and the resulting HTTP 400 names the field rather than the aggregate, which makes it confusing to diagnose.

Writing embed JSON for bots

Most Discord bot libraries accept an embed object as part of a message payload. The JSON this tool produces can be pasted directly into your code, whether you use discord.js, discord.py or raw API calls.

Embed size limits to remember

An embed title is capped at 256 characters, the description at 4096, and each field value at 1024. Up to 25 fields fit in one embed, and a message can carry up to 10 embeds. Keeping within these bounds prevents silent truncation or API rejections.

Frequently asked questions

How many fields can an embed have?

Up to 25 fields per embed. Each field name is capped at 256 characters and each value at 1024 characters.

Related guides

Browse all guides and generators.

Try other relevant tools