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. Inspect, fix, and validate the payload without generating noise in your Discord channels.
How to Test a Discord Webhook (4 Steps)
- 1.
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.
- 2.
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.
- 3.
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.
- 4.
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
| Status | Cause | Fix |
|---|---|---|
| 401 | Token invalid or revoked | Regenerate in Channel Settings → Integrations → Webhooks |
| 404 | Webhook was deleted | Create a new webhook and update the URL in your integration |
| 429 | Rate limit exceeded (30 req/min per webhook) | Read retry_after from response body; implement exponential backoff |
| 400 | Malformed embed: color as hex string, content >2000 chars, embed description >4096 chars, or >25 fields | Read the message field in the 400 response body for specifics |
| 400 | Missing Content-Type header | Add Content-Type: application/json to every request |
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 →