ForHosting KIT · Notifications & Flows

Post to a Discord channel

Post release notes, alerts or status updates to a Discord channel without hosting a bot: send a plain message or a card with title, colour, fields and image, and learn whether it landed. Pay per use, no subscription.

● StablePer request + per message$0.002
Use it from WebAPIEmailTelegramApp soon

Run this on our servers with your account. Free tools run in your browser; this one bills your KIT balance per the price above.

Discord embeds turn a plain notification into a card with a title, color, fields and a thumbnail, but wiring that up reliably from a backend usually means maintaining a bot you didn't want to host.

Why post cards instead of plain text

Discord introduced cards because plain bot messages became unreadable once servers used them for release announcements, moderation logs and status updates in the same channel. A coloured side bar and structured fields let someone tell at a glance what kind of message they are looking at before reading a word. This tool follows Discord's own card structure, so anything you already know about formatting carries over. You give the channel link, a plain message and, if you want, a card with a title, description, colour, fields and an image.

Typical uses and mistakes to avoid

An open-source project can post a card with the version number and highlights to its releases channel on every new version. A moderation system can post the flagged message, its author and the reason to a private log channel. A self-hosted game server can post player count and uptime on a schedule, and a help desk can post new tickets colour-coded by priority. The commonest mistakes are pasting the wrong channel link, sending a card with a broken structure, and posting one card per event when a daily summary would serve readers better.

Embeds exist because plain text doesn't scale

Discord introduced embeds specifically because plain-text bot messages became unreadable once servers started using bots for release announcements, moderation logs and status updates all in the same channel — a colored side bar and structured fields let someone tell at a glance what kind of message they're looking at before reading a word. We lean on that same structure rather than inventing our own formatting layer.

Release and changelog announcements

An open-source project's CI posts a formatted embed with version number and changelog highlights to the community's #releases channel on every tag.

Community moderation alerts

An automated moderation system posts an embed with the flagged message, author and reason to a private mod-log channel for quick review.

Game server and bot status

A self-hosted game server posts player count and uptime embeds to a status channel on a schedule, no bot process required.

Support ticket notifications

A helpdesk integration posts new ticket embeds with priority color-coding to an internal support channel the moment a ticket is created.

Is notify.discord free to use?

There's no free tier — free tiers get abused and slow everyone down. No subscription, no tokens, no invented credits, and a failed task is never charged.

Do I need to run a Discord bot?

No. Create an integration link in the Discord channel settings and use it as the destination. The message is posted for you, so there is no bot process to host or keep running just to send one announcement.

Can I send a formatted card instead of plain text?

Yes. Besides plain text you can send a card with a title, description, colour, fields and a thumbnail or image, following Discord's own card format. The coloured side bar shows at a glance what kind of message it is.

What happens if Discord is busy or the post fails?

Temporary failures and Discord's sending limits are retried for you, and you are told whether the post landed. The delivery status reaches you through a signed link that stays valid for 24 hours.

What if the channel link or the card is wrong?

You get a clear error instead of silence. A malformed card or an invalid channel link is reported straight away, so you can fix it before the next announcement goes out rather than discovering days later that nothing was posted.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/notify/discord

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.

curl -X POST https://api.kit.forhosting.com/notify/discord \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"webhook_url":"https://discord.com/api/webhooks/…"}'
{
  "webhook_url": "https://discord.com/api/webhooks/…"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "notify.discord",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

This endpoint posts the embed for you and tracks it like any other task.

For communities and teams running on Discord, not just gamers

Discord stopped being just a gaming chat app years ago; plenty of open-source projects, indie SaaS teams and online communities now run their entire operational feed through it. notify.discord is for the moment a project needs to post a release note, a build status or a community alert into a channel without standing up a persistent bot process just to make one HTTP call.

What actually gets posted

We handle delivery, retries on rate limits or transient failures, and report back whether the post landed. POST /notify/discord accepts a webhook target, a plain message and an optional embed object — title, description, color, fields and a thumbnail or image URL — matching Discord's own embed structure, so anything you already know about formatting embeds carries over directly.

Fits quietly into existing automation

It's a natural pairing with alert routing when Discord is one of several channels a given event might need to reach, or with the digest endpoint when you want a daily rollup instead of one embed per event.

How you know it worked

Delivery status, including Discord's rate-limit responses if the target webhook is throttled, comes back through a signed webhook or a signed link valid for 24 hours. A malformed embed or an invalid webhook URL returns a clear error rather than a silent no-op, so debugging a broken integration doesn't mean staring at an empty channel wondering what happened.

How do I post a rich embed to Discord with this API?

Send an embed object with title, description, color and fields in the body of POST /notify/discord, matching Discord's own embed structure, and it's delivered to the channel behind your webhook.

Do I need to host a Discord bot to use this?

No, this is webhook-based delivery, not a bot connection, so there's no persistent process to host or Discord application to register.

What does each Discord notification cost?

It's $0.002 per POST /notify/discord request, and a failed delivery, after three automatic retries, is never charged.

What happens if Discord rate-limits the webhook?

Rate-limit responses are handled with automatic retry and backoff, and if delivery ultimately still fails you get the specific error back instead of a silent drop.

Can I send both plain text and an embed in one message?

Yes, the request accepts a plain-text message alongside the embed object, matching how Discord itself renders combined messages.

Can I use this to post to multiple Discord servers?

Yes, each call targets a specific webhook URL, so different calls can point at different servers or channels independently.

Is embed content retained after it's posted?

No, message and embed payloads are deleted after the stated retention period and are never used for training.

Read the full KIT documentation →