[{"data":1,"prerenderedAt":616},["ShallowReactive",2],{"content-query-URnH5jv7q0":3},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"layout":10,"author":11,"tags":12,"categories":16,"date":18,"image":19,"faq":20,"body":33,"_type":610,"_id":611,"_source":262,"_file":612,"_stem":613,"_extension":614,"sitemap":615},"/blog/how-to-get-discord-webhook-url","blog",false,"","How to Get a Discord Webhook URL","Create a Discord webhook URL step by step: Server Settings, Integrations, pick a channel, copy the URL. Includes the format, a curl example and embeds.","post","Karolis Rusenas",[13,14,15],"discord","webhooks","guide",[17],"guides","2026-07-21 09:30:00","/images/generic/webhooks.png",[21,24,27,30],{"q":22,"a":23},"How do I get a Discord webhook URL?","Open your Discord server, go to Server Settings → Integrations → Webhooks, click New Webhook, choose the channel it should post to, optionally set a name and avatar, then click 'Copy Webhook URL'. You need the Manage Webhooks permission on the server.",{"q":25,"a":26},"What does a Discord webhook URL look like?","A Discord webhook URL looks like https://discord.com/api/webhooks/{webhook_id}/{token} — a numeric webhook ID and a secret token. Anyone with the full URL can post to the channel, so keep it private.",{"q":28,"a":29},"How do I send a message to a Discord webhook?","POST JSON with a 'content' field to the webhook URL, e.g. curl -H 'Content-Type: application/json' -d '{\"content\":\"Hello\"}' \u003Cwebhook-url>. For rich messages, send an 'embeds' array instead of or alongside 'content'.",{"q":31,"a":32},"Do I need a bot to use a Discord webhook?","No. Webhooks are separate from bots — they only post messages to one channel and require no bot token or gateway connection. If you need to read messages or respond interactively, that's when you'd use a bot instead.",{"type":34,"children":35,"toc":602},"root",[36,61,68,88,107,113,125,226,237,246,252,265,327,339,428,448,462,491,516,522,574,596],{"type":37,"tag":38,"props":39,"children":40},"element","p",{},[41,44,50,52,59],{"type":42,"value":43},"text","A ",{"type":37,"tag":45,"props":46,"children":47},"strong",{},[48],{"type":42,"value":49},"Discord webhook URL",{"type":42,"value":51}," is the fastest way to post messages into a Discord channel from any app or script — no bot, no gateway connection, just an HTTP request. Here's how to create one and use it. (New to webhooks? See ",{"type":37,"tag":53,"props":54,"children":56},"a",{"href":55},"/blog/what-is-webhook",[57],{"type":42,"value":58},"what is a webhook",{"type":42,"value":60},".)",{"type":37,"tag":62,"props":63,"children":65},"h2",{"id":64},"what-a-discord-webhook-url-looks-like",[66],{"type":42,"value":67},"What a Discord webhook URL looks like",{"type":37,"tag":69,"props":70,"children":73},"pre",{"className":71,"code":72,"language":42,"meta":7,"style":7},"language-text shiki shiki-themes github-dark","https://discord.com/api/webhooks/123456789012345678/aBcDeF_secret-token\n",[74],{"type":37,"tag":75,"props":76,"children":77},"code",{"__ignoreMap":7},[78],{"type":37,"tag":79,"props":80,"children":83},"span",{"class":81,"line":82},"line",1,[84],{"type":37,"tag":79,"props":85,"children":86},{},[87],{"type":42,"value":72},{"type":37,"tag":38,"props":89,"children":90},{},[91,93,98,100,105],{"type":42,"value":92},"It's a numeric ",{"type":37,"tag":45,"props":94,"children":95},{},[96],{"type":42,"value":97},"webhook ID",{"type":42,"value":99}," plus a secret ",{"type":37,"tag":45,"props":101,"children":102},{},[103],{"type":42,"value":104},"token",{"type":42,"value":106},". Anyone with the full URL can post to the channel, so keep it private.",{"type":37,"tag":62,"props":108,"children":110},{"id":109},"create-a-discord-webhook",[111],{"type":42,"value":112},"Create a Discord webhook",{"type":37,"tag":38,"props":114,"children":115},{},[116,118,123],{"type":42,"value":117},"You'll need the ",{"type":37,"tag":45,"props":119,"children":120},{},[121],{"type":42,"value":122},"Manage Webhooks",{"type":42,"value":124}," permission on the server (server owners and admins have it):",{"type":37,"tag":126,"props":127,"children":128},"ol",{},[129,147,185,209],{"type":37,"tag":130,"props":131,"children":132},"li",{},[133,138,140,145],{"type":37,"tag":45,"props":134,"children":135},{},[136],{"type":42,"value":137},"Open Server Settings.",{"type":42,"value":139}," Click your server name (top-left) → ",{"type":37,"tag":45,"props":141,"children":142},{},[143],{"type":42,"value":144},"Server Settings",{"type":42,"value":146},".",{"type":37,"tag":130,"props":148,"children":149},{},[150,155,157,162,164,169,171,176,178,183],{"type":37,"tag":45,"props":151,"children":152},{},[153],{"type":42,"value":154},"Go to Integrations.",{"type":42,"value":156}," In the sidebar, choose ",{"type":37,"tag":45,"props":158,"children":159},{},[160],{"type":42,"value":161},"Integrations",{"type":42,"value":163},", then ",{"type":37,"tag":45,"props":165,"children":166},{},[167],{"type":42,"value":168},"Webhooks",{"type":42,"value":170}," → ",{"type":37,"tag":45,"props":172,"children":173},{},[174],{"type":42,"value":175},"New Webhook",{"type":42,"value":177}," (or ",{"type":37,"tag":45,"props":179,"children":180},{},[181],{"type":42,"value":182},"Create Webhook",{"type":42,"value":184},").",{"type":37,"tag":130,"props":186,"children":187},{},[188,193,195,200,202,207],{"type":37,"tag":45,"props":189,"children":190},{},[191],{"type":42,"value":192},"Configure it.",{"type":42,"value":194}," Give the webhook a ",{"type":37,"tag":45,"props":196,"children":197},{},[198],{"type":42,"value":199},"name",{"type":42,"value":201},", optionally an avatar, and pick the ",{"type":37,"tag":45,"props":203,"children":204},{},[205],{"type":42,"value":206},"channel",{"type":42,"value":208}," it should post to from the dropdown.",{"type":37,"tag":130,"props":210,"children":211},{},[212,217,219,224],{"type":37,"tag":45,"props":213,"children":214},{},[215],{"type":42,"value":216},"Copy the URL.",{"type":42,"value":218}," Click ",{"type":37,"tag":45,"props":220,"children":221},{},[222],{"type":42,"value":223},"Copy Webhook URL",{"type":42,"value":225},". That's the URL you'll POST to.",{"type":37,"tag":38,"props":227,"children":228},{},[229,231,236],{"type":42,"value":230},"You can also create a webhook straight from a channel: ",{"type":37,"tag":45,"props":232,"children":233},{},[234],{"type":42,"value":235},"Edit Channel → Integrations → Webhooks",{"type":42,"value":146},{"type":37,"tag":38,"props":238,"children":239},{},[240],{"type":37,"tag":241,"props":242,"children":245},"img",{"alt":243,"src":244},"Creating a webhook in Discord under Integrations → Webhooks — the New Webhook button, the webhook's name and channel, and the Copy Webhook URL button","/images/guides/discord-create-webhook.png",[],{"type":37,"tag":62,"props":247,"children":249},{"id":248},"send-a-test-message",[250],{"type":42,"value":251},"Send a test message",{"type":37,"tag":38,"props":253,"children":254},{},[255,257,263],{"type":42,"value":256},"POST JSON with a ",{"type":37,"tag":75,"props":258,"children":260},{"className":259},[],[261],{"type":42,"value":262},"content",{"type":42,"value":264}," field:",{"type":37,"tag":69,"props":266,"children":270},{"className":267,"code":268,"language":269,"meta":7,"style":7},"language-bash shiki shiki-themes github-dark","curl -H \"Content-Type: application/json\" \\\n  -d '{\"content\":\"Hello from a Discord webhook 👋\"}' \\\n  \"https://discord.com/api/webhooks/123456789012345678/aBcDeF_secret-token\"\n","bash",[271],{"type":37,"tag":75,"props":272,"children":273},{"__ignoreMap":7},[274,300,318],{"type":37,"tag":79,"props":275,"children":276},{"class":81,"line":82},[277,283,289,295],{"type":37,"tag":79,"props":278,"children":280},{"style":279},"--shiki-default:#B392F0",[281],{"type":42,"value":282},"curl",{"type":37,"tag":79,"props":284,"children":286},{"style":285},"--shiki-default:#79B8FF",[287],{"type":42,"value":288}," -H",{"type":37,"tag":79,"props":290,"children":292},{"style":291},"--shiki-default:#9ECBFF",[293],{"type":42,"value":294}," \"Content-Type: application/json\"",{"type":37,"tag":79,"props":296,"children":297},{"style":285},[298],{"type":42,"value":299}," \\\n",{"type":37,"tag":79,"props":301,"children":303},{"class":81,"line":302},2,[304,309,314],{"type":37,"tag":79,"props":305,"children":306},{"style":285},[307],{"type":42,"value":308},"  -d",{"type":37,"tag":79,"props":310,"children":311},{"style":291},[312],{"type":42,"value":313}," '{\"content\":\"Hello from a Discord webhook 👋\"}'",{"type":37,"tag":79,"props":315,"children":316},{"style":285},[317],{"type":42,"value":299},{"type":37,"tag":79,"props":319,"children":321},{"class":81,"line":320},3,[322],{"type":37,"tag":79,"props":323,"children":324},{"style":291},[325],{"type":42,"value":326},"  \"https://discord.com/api/webhooks/123456789012345678/aBcDeF_secret-token\"\n",{"type":37,"tag":38,"props":328,"children":329},{},[330,332,337],{"type":42,"value":331},"For a richer message, send an ",{"type":37,"tag":45,"props":333,"children":334},{},[335],{"type":42,"value":336},"embed",{"type":42,"value":338}," — a titled, colored card:",{"type":37,"tag":69,"props":340,"children":342},{"className":267,"code":341,"language":269,"meta":7,"style":7},"curl -H \"Content-Type: application/json\" -d '{\n  \"embeds\": [{\n    \"title\": \"Deploy finished\",\n    \"description\": \"Build #142 shipped to production\",\n    \"color\": 3066993\n  }]\n}' \"https://discord.com/api/webhooks/123456789012345678/aBcDeF_secret-token\"\n",[343],{"type":37,"tag":75,"props":344,"children":345},{"__ignoreMap":7},[346,371,379,387,396,405,414],{"type":37,"tag":79,"props":347,"children":348},{"class":81,"line":82},[349,353,357,361,366],{"type":37,"tag":79,"props":350,"children":351},{"style":279},[352],{"type":42,"value":282},{"type":37,"tag":79,"props":354,"children":355},{"style":285},[356],{"type":42,"value":288},{"type":37,"tag":79,"props":358,"children":359},{"style":291},[360],{"type":42,"value":294},{"type":37,"tag":79,"props":362,"children":363},{"style":285},[364],{"type":42,"value":365}," -d",{"type":37,"tag":79,"props":367,"children":368},{"style":291},[369],{"type":42,"value":370}," '{\n",{"type":37,"tag":79,"props":372,"children":373},{"class":81,"line":302},[374],{"type":37,"tag":79,"props":375,"children":376},{"style":291},[377],{"type":42,"value":378},"  \"embeds\": [{\n",{"type":37,"tag":79,"props":380,"children":381},{"class":81,"line":320},[382],{"type":37,"tag":79,"props":383,"children":384},{"style":291},[385],{"type":42,"value":386},"    \"title\": \"Deploy finished\",\n",{"type":37,"tag":79,"props":388,"children":390},{"class":81,"line":389},4,[391],{"type":37,"tag":79,"props":392,"children":393},{"style":291},[394],{"type":42,"value":395},"    \"description\": \"Build #142 shipped to production\",\n",{"type":37,"tag":79,"props":397,"children":399},{"class":81,"line":398},5,[400],{"type":37,"tag":79,"props":401,"children":402},{"style":291},[403],{"type":42,"value":404},"    \"color\": 3066993\n",{"type":37,"tag":79,"props":406,"children":408},{"class":81,"line":407},6,[409],{"type":37,"tag":79,"props":410,"children":411},{"style":291},[412],{"type":42,"value":413},"  }]\n",{"type":37,"tag":79,"props":415,"children":417},{"class":81,"line":416},7,[418,423],{"type":37,"tag":79,"props":419,"children":420},{"style":291},[421],{"type":42,"value":422},"}'",{"type":37,"tag":79,"props":424,"children":425},{"style":291},[426],{"type":42,"value":427}," \"https://discord.com/api/webhooks/123456789012345678/aBcDeF_secret-token\"\n",{"type":37,"tag":38,"props":429,"children":430},{},[431,433,439,441,447],{"type":42,"value":432},"You can override the display name and avatar per message with ",{"type":37,"tag":75,"props":434,"children":436},{"className":435},[],[437],{"type":42,"value":438},"username",{"type":42,"value":440}," and ",{"type":37,"tag":75,"props":442,"children":444},{"className":443},[],[445],{"type":42,"value":446},"avatar_url",{"type":42,"value":146},{"type":37,"tag":62,"props":449,"children":451},{"id":450},"sending-any-event-to-discord",[452,454,460],{"type":42,"value":453},"Sending ",{"type":37,"tag":455,"props":456,"children":457},"em",{},[458],{"type":42,"value":459},"any",{"type":42,"value":461}," event to Discord",{"type":37,"tag":38,"props":463,"children":464},{},[465,467,473,475,481,483,489],{"type":42,"value":466},"The webhook URL is the easy half — you still need to POST to it in Discord's format. Webhook Relay bridges that gap: point a provider (a payment, a CI build, a ",{"type":37,"tag":53,"props":468,"children":470},{"href":469},"/blog/trading-view",[471],{"type":42,"value":472},"TradingView alert",{"type":42,"value":474},") at Webhook Relay, ",{"type":37,"tag":53,"props":476,"children":478},{"href":477},"/features/transform-webhooks",[479],{"type":42,"value":480},"transform the payload",{"type":42,"value":482}," into a Discord message or embed, and forward it — optionally ",{"type":37,"tag":53,"props":484,"children":486},{"href":485},"/features/webhook-multiple-destinations",[487],{"type":42,"value":488},"fanning out",{"type":42,"value":490}," to Slack or Teams at the same time.",{"type":37,"tag":492,"props":493,"children":494},"ul",{},[495,506],{"type":37,"tag":130,"props":496,"children":497},{},[498,504],{"type":37,"tag":53,"props":499,"children":501},{"href":500},"/blog/webhook-to-discord",[502],{"type":42,"value":503},"Send a webhook to Discord",{"type":42,"value":505}," — the full forward-and-transform walkthrough.",{"type":37,"tag":130,"props":507,"children":508},{},[509,514],{"type":37,"tag":53,"props":510,"children":511},{"href":469},[512],{"type":42,"value":513},"TradingView webhooks to Discord",{"type":42,"value":515}," — a real automation example.",{"type":37,"tag":62,"props":517,"children":519},{"id":518},"security-notes",[520],{"type":42,"value":521},"Security notes",{"type":37,"tag":492,"props":523,"children":524},{},[525,537,563],{"type":37,"tag":130,"props":526,"children":527},{},[528,530,535],{"type":42,"value":529},"The URL is a ",{"type":37,"tag":45,"props":531,"children":532},{},[533],{"type":42,"value":534},"secret",{"type":42,"value":536}," — Discord even warns that leaked webhook URLs are a common way servers get spammed.",{"type":37,"tag":130,"props":538,"children":539},{},[540,542,547,549,554,556,561],{"type":42,"value":541},"To ",{"type":37,"tag":45,"props":543,"children":544},{},[545],{"type":42,"value":546},"revoke",{"type":42,"value":548}," one, open the webhook in ",{"type":37,"tag":45,"props":550,"children":551},{},[552],{"type":42,"value":553},"Integrations → Webhooks",{"type":42,"value":555}," and click ",{"type":37,"tag":45,"props":557,"children":558},{},[559],{"type":42,"value":560},"Delete Webhook",{"type":42,"value":562},"; create a new one if needed.",{"type":37,"tag":130,"props":564,"children":565},{},[566,568,572],{"type":42,"value":567},"A webhook can only ",{"type":37,"tag":45,"props":569,"children":570},{},[571],{"type":42,"value":10},{"type":42,"value":573}," to its channel — it can't read messages or act as a member.",{"type":37,"tag":38,"props":575,"children":576},{},[577,579,585,587,595],{"type":42,"value":578},"Ready to route real events into Discord? ",{"type":37,"tag":53,"props":580,"children":582},{"href":581},"/webhook-bin",[583],{"type":42,"value":584},"Test a webhook now",{"type":42,"value":586}," or ",{"type":37,"tag":53,"props":588,"children":592},{"href":589,"rel":590},"https://my.webhookrelay.com/register",[591],"nofollow",[593],{"type":42,"value":594},"start forwarding for free",{"type":42,"value":146},{"type":37,"tag":597,"props":598,"children":599},"style",{},[600],{"type":42,"value":601},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":7,"searchDepth":320,"depth":320,"links":603},[604,605,606,607,609],{"id":64,"depth":302,"text":67},{"id":109,"depth":302,"text":112},{"id":248,"depth":302,"text":251},{"id":450,"depth":302,"text":608},"Sending any event to Discord",{"id":518,"depth":302,"text":521},"markdown","content:blog:how-to-get-discord-webhook-url.md","blog/how-to-get-discord-webhook-url.md","blog/how-to-get-discord-webhook-url","md",{"loc":4},1786379867673]