How to Send Discord Webhook Messages With Multiple Embeds From One POST
🔍 WiseChecker

How to Send Discord Webhook Messages With Multiple Embeds From One POST

When you send a message to a Discord webhook, you can include one or more embed objects to display rich content such as fields, images, and colored sidebars. By default, a single POST request can contain up to 10 embeds in the embeds array. This is useful when you want to deliver multiple pieces of information in a single message without sending several separate requests. This article explains how to structure the JSON payload to include multiple embeds in one POST, what the embed limits are, and how to avoid common formatting errors.

Key Takeaways: Sending Discord Webhooks With Multiple Embeds

  • POST to webhook URL with JSON embeds array: Place each embed object inside the array to send up to 10 embeds in one request.
  • Embed object structure: Each embed requires a title, description, color, or fields array. Keep the total embed size under 6000 characters.
  • Test with curl or Postman: Validate your JSON payload before integrating into your application to catch syntax errors early.

ADVERTISEMENT

What Is a Discord Webhook Embed and How Does It Work?

A Discord webhook is a simple way to send automated messages from external applications to a text channel. When you create a webhook, you get a unique URL that accepts HTTP POST requests with a JSON payload. The payload can contain a content string for plain text and an embeds array for rich embed objects. Each embed can display a title, description, URL, color, author, footer, image, thumbnail, and up to 25 fields. The total character count of all embed properties combined must not exceed 6000 characters per request. The maximum number of embeds per message is 10. If you exceed either limit, Discord returns a 400 Bad Request error.

The embed object follows the Discord API specification. You must use valid JSON with the correct property names. For example, the color property accepts an integer decimal value, not a hexadecimal string. To get the decimal value for a hex color, convert it to base‑10. For a red color hex #FF0000, the decimal value is 16711680. Embed fields appear as rows in the message and can be set to display inline or stacked. When you send multiple embeds, each one appears as a separate block in the channel, stacked vertically.

Steps to Send a Webhook With Multiple Embeds From One POST

Prepare the JSON Payload

Create a JSON object that includes the embeds array. Each item in the array is a separate embed object. The following example shows a payload with two embeds. The first embed has a title, description, color, and one field. The second embed has a title, description, and a different color.

{
  "embeds": [
    {
      "title": "Server Status",
      "description": "All systems are operational.",
      "color": 3066993,
      "fields": [
        {
          "name": "Uptime",
          "value": "99.9%",
          "inline": true
        }
      ]
    },
    {
      "title": "Latest Release",
      "description": "Version 2.0 is now available.",
      "color": 15277667
    }
  ]
}

Send the POST Request

  1. Copy the webhook URL
    In Discord, go to Server Settings > Integrations > Webhooks. Click the webhook name and copy the URL. It looks like https://discord.com/api/webhooks/123456789/abcdef.
  2. Use curl to test the request
    Open a terminal and run the following command. Replace WEBHOOK_URL with your actual URL.
    curl -H "Content-Type: application/json" -X POST -d '{"embeds":[{"title":"First","description":"First embed","color":3066993},{"title":"Second","description":"Second embed","color":15277667}]}' WEBHOOK_URL
  3. Verify the result in Discord
    Check your channel. You should see two embed blocks stacked vertically. Each block shows the title and description you provided.

Include a Plain Text Message Alongside Embeds

You can send both a content string and the embeds array in the same POST. The text appears above the embeds. Use this to add a ping or a brief announcement.

{
  "content": "@everyone Server update available",
  "embeds": [
    {
      "title": "Update Notes",
      "description": "See below for details.",
      "color": 15277667
    }
  ]
}

Use Postman for a More Visual Test

  1. Create a new POST request
    Enter your webhook URL as the request URL.
  2. Set the Content-Type header
    Add a header with key Content-Type and value application/json.
  3. Paste the JSON payload into the Body tab
    Select raw and paste your JSON that includes the embeds array.
  4. Send the request
    Click Send. A 204 No Content response means success. Check Discord for the embeds.

ADVERTISEMENT

Common Mistakes and Limitations When Sending Multiple Embeds

Exceeding the 10 Embed Limit

If you include 11 or more objects in the embeds array, Discord returns a 400 Bad Request error with a message about the embed count. Reduce the array to 10 or fewer. If you need more than 10 embeds, send a second POST request.

Embed Total Character Count Over 6000

The combined character count of all embed properties in a single request must be under 6000. This includes titles, descriptions, field names, field values, footer text, and author names. If your payload exceeds this limit, Discord truncates or rejects the message. Calculate the total length before sending. Use short descriptions and limit field values to 1024 characters each.

Incorrect Color Value

The color property expects an integer decimal, not a hex string. For example, use 15277667 instead of "#E67E22". To convert a hex color like #E67E22, compute the decimal value: 230 65536 + 126 256 + 34 = 15277667. If you use a string, Discord ignores the color and defaults to a gray sidebar.

Missing Required Fields for Each Embed

No single property is strictly required in an embed object, but at least one property must be present for the embed to render. If you include an empty object {}, Discord may still show a small empty block. Provide at least a title or description to ensure the embed displays properly.

Fields Array Exceeds 25 Items

Each embed can have a maximum of 25 fields. If you add more, Discord ignores the extra fields. Plan your fields to fit within this limit. If you need more fields, split them across multiple embeds.

Discord Webhook Embed Limits: Single POST vs Multiple POSTs

Item Single POST (up to 10 embeds) Multiple POSTs (more than 10 embeds)
Maximum embeds per request 10 No limit per channel, but each request limited to 10
Total character limit per request 6000 (all embeds combined) 6000 per request
Message order Embeds appear in array order, stacked vertically Each POST creates a separate message; order depends on send time
Rate limit handling One request counts as one API call Multiple requests increase rate limit usage; respect Retry-After headers
Best use case Delivering a set of related information in one message Logging separate events or batches that need individual timestamps

When you send multiple embeds in one POST, all embeds belong to the same message and share the same timestamp. If you need each embed to have its own timestamp, send separate POST requests. For most use cases like server status reports, release notes, or command output, a single POST with up to 10 embeds is the most efficient approach.

Conclusion

You can now send Discord webhook messages with multiple embeds from a single POST request by placing each embed object inside the embeds array. Remember to keep the total embed count at 10 or fewer and the combined character count under 6000. Use integer decimal values for the color property and validate your JSON with curl or Postman before deploying. For more advanced formatting, explore the footer, image, and thumbnail properties inside each embed object to create richer notifications.

ADVERTISEMENT