Quick Answer
To test a Discord channel webhook, copy your webhook URL from Channel Settings → Integrations → Webhooks, paste it into Requex.me's webhook URL field (or send a POST to your Requex URL and have your code forward to Discord), then inspect the full payload in real-time. Alternatively, send a test POST directly to your Discord webhook URL and capture Discord's response.
Free Discord Webhook Tester — Test Channel & Bot Webhooks
Test Discord webhook URLs instantly. Inspect embed payloads, debug 401 and 404 errors, and validate your JSON structure before triggering real messages in your Discord server.
What Does "Testing a Discord Webhook" Mean?
A Discord channel webhook is a URL that lets external applications post messages directly into a Discord channel — without using a bot token or the Discord API directly. When you test a Discord webhook, you're verifying two things:
- That your payload structure is valid — Discord rejects malformed embeds, missing required fields, or type errors with a 400 Bad Request.
- That your integration fires correctly — The service sending the webhook (your app, GitHub, monitoring tool, etc.) is actually sending the request to the right URL with the right data.
Requex.me helps you capture exactly what your integration is sending before it reaches Discord — so you can inspect, fix, and validate the payload without generating noise in your Discord channels.
How to Test a Discord Webhook (4 Steps)
Create a Discord channel webhook
In your Discord server, right-click the target channel → Edit Channel → Integrations → Webhooks → New Webhook. Give it a name and click Copy Webhook URL.
Open Requex.me and copy your capture URL
Visit requex.me — a unique webhook URL is generated instantly. Copy it. This URL captures every HTTP request sent to it.
Paste your Requex URL into the service sending the webhook
In your app or integration (GitHub, PagerDuty, custom script), replace the Discord webhook URL with your Requex URL. Trigger an event. The full payload — headers and body — appears in Requex instantly.
Trigger and inspect
The request appears in your Requex dashboard in real-time. Inspect the body, headers, and content-type. Validate the JSON structure is correct for Discord, then swap the URL back to your real Discord webhook URL.
Discord Webhook Payload Anatomy
Discord's webhook endpoint accepts a JSON body with the following top-level fields:
| Field | Type | Description |
|---|---|---|
| content | string | Plain text message, up to 2000 chars |
| username | string | Override the webhook's display name |
| avatar_url | string | Override the webhook's avatar image URL |
| embeds | array | Up to 10 rich embed objects per message |
| tts | boolean | Text-to-speech (rarely used in integrations) |
Minimal embed example:
curl -X POST https://discord.com/api/webhooks/YOUR_ID/YOUR_TOKEN \
-H "Content-Type: application/json" \
-d '{
"username": "Deploy Bot",
"avatar_url": "https://example.com/bot-avatar.png",
"embeds": [{
"title": "Deployment succeeded",
"description": "v1.4.2 deployed to production",
"color": 5763719,
"fields": [
{ "name": "Environment", "value": "production", "inline": true },
{ "name": "Duration", "value": "42s", "inline": true }
]
}]
}'💡 Tip: Discord embed color is a decimal integer, not a hex string. Convert hex to decimal: #57F287 (Discord green) = 5763719.
Common Discord Webhook Errors
401 Unauthorized
The webhook URL token is invalid or has been revoked. Regenerate the webhook URL in Channel Settings → Integrations → Webhooks → that webhook → Copy Webhook URL (or regenerate).
404 Not Found
The webhook no longer exists — it was deleted from Discord's side. Create a new webhook in Channel Settings and update your integration URL.
429 Too Many Requests (Rate Limit)
Discord allows 30 requests per minute per webhook. The 429 response body includes retry_after (seconds). Implement exponential backoff and respect this field.
400 Bad Request — Embed Validation Failure
Common causes: color is a hex string instead of an integer, content exceeds 2000 characters, embed description exceeds 4096 characters, or fields array has more than 25 items. Check the message field in the 400 response body for specifics.
Missing Content-Type header
Always send Content-Type: application/json. Sending a JSON body without this header causes Discord to reject the payload silently or return a 400.
Frequently Asked Questions
What is the correct JSON format for a Discord webhook embed?
Discord webhook embeds use an embeds array. Each embed object supports title, description, color (decimal integer), url, fields, thumbnail, image, footer, and author. The top-level payload also accepts content, username, and avatar_url.
What are Discord webhook rate limits?
Discord enforces a rate limit of 30 requests per minute per webhook URL. Exceeding this returns a 429 Too Many Requests response with a retry_after field indicating seconds to wait. Implement a queue with backoff to handle bursts.
What is the difference between a bot webhook and a channel webhook?
A channel webhook is a simple outgoing URL created in Channel Settings — no bot account needed. A bot webhook uses the Discord bot API with a bot token and channel ID. Channel webhooks are simpler, faster to set up, and sufficient for most notification use cases.
Does Discord sign webhook payloads like Stripe?
Only Discord's interaction webhooks (slash commands, buttons) are signed with X-Signature-Ed25519 and X-Signature-Timestamp. Standard channel webhooks (where you POST to Discord) are not signed — you are the sender. See webhook security best practices for verification examples.
Is this Discord webhook tester free?
Yes — completely free, no account required. Visit requex.me and start testing in under 5 seconds. Real-time payload inspection, custom response simulation, and full header visibility at no cost.
Related Resources
Test Your Discord Webhook Now
Free, instant, no signup. Capture the payload before it hits Discord.
Open Free Webhook Tester →