API guide

The Discord API in 2026.A webhook is all it takes to post.

To post in a Discord channel from code, the simplest route is a webhook: one URL from the channel's settings, no bot user, no auth header, and a POST of up to 2,000 characters and 10 embeds. A bot does more, reading and moderating, but needs an application, a token and an invite. Both are free; automating a personal account is forbidden.

Checked October 6, 2026. Breakreach is our product.
# The webhook URL is the credential: keep it secretcurl -X POST "https://discord.com/api/webhooks/$WEBHOOK_ID/$WEBHOOK_TOKEN?wait=true" \  -H "Content-Type: application/json" \  -d '{    "content": "Morning Light is out. Honey, orange and cocoa notes, our lightest roast yet.",    "embeds": [{"image": {"url": "https://cdn.northbeam.coffee/launch.jpg"}}],    "allowed_mentions": {"parse": []}  }'
POST /api/webhooks/{id}/{token}Sending
Published · now
Northbeam CoffeeAPPToday

Morning Light is out. Honey, orange and cocoa notes, our lightest roast yet.

The Discord API at a glanceWhat it takes before the first post.

Price
Free
Webhooks
A URL per channel, created in its settings. No bot user and no auth header
Bots
An application, a bot token and an invite with Send Messages. Reading message content needs a privileged intent
Message
2,000 characters, up to 10 embeds and 6,000 characters across them
Files
20 MiB per file by default since August 2026; 25 MiB per request
Rate limit
50 requests a second globally per bot; per-route limits in the X-RateLimit headers
Self-bots
Automating a personal account is forbidden and can end with the account terminated
Scheduling
None

Checked on October 6, 2026, from Discord's developer documentation and terms.

Our recommendation

To post to Discord from your product, use Breakreach's API.We built it, so here's the case.

See the request
  • Scheduling Discord doesn't have: posts wait until scheduledAt, with retries on rate limits
  • The same request posts the announcement to Telegram and your other networks
  • Your users connect their own channels on a hosted page, through a connect link

When to use Discord's API directly. Breakreach only posts, through the webhook: no reading, moderation or roles, and no stats. For a bot that does more, use Discord's API directly; it's free.

How to get access to the Discord APIFrom a developer account to your first real post.

  1. 1Create a webhookServer Settings → Integrations → Create Webhook, pick the channel and a name, then Copy Webhook URL. Through the API, it takes the Manage Webhooks permission.
  2. 2Or create a botIn the Developer Portal, New Application, then the Bot page for the token, shown once.
  3. 3Invite the botInstall it to a server with the bot scope and permissions such as Send Messages.
  4. 4Turn on intents if you readMessage Content is privileged: you enable it on the Bot page, and verified apps, required past 100 servers, need it approved.

There's no review to post. Bots in 100 or more servers must be verified.

How to post with the Discord APIThe requests in the demo above, one by one.

  1. 1Execute the webhookPOST /api/webhooks/{id}/{token} with content, embeds, and an optional username and avatar_url. ?wait=true returns the message; without it, Discord answers 204.
  2. 2Or create a message as a botPOST /api/v10/channels/{channel.id}/messages with Authorization: Bot {token}.

Send a version, /api/v10: the unversioned default is still the deprecated v6. Files go as multipart with payload_json, and attachment://name puts one in an embed. A forum channel needs thread_id or thread_name.

Common Discord API errorsWhat they mean and how to fix them.

ErrorWhat it meansFix
404 / 10015 Unknown WebhookThe webhook was deleted, or the URL is wrong.Ask for a new URL, and stop retrying: repeated 404s get restricted.
429A per-route or the global limit.Wait retry_after seconds.
400 / 50035 Invalid Form BodyOver 2,000 characters, more than 10 embeds, or a bad field.Check the lengths and the JSON.
400 / 50006 Cannot send an empty messageNo content, embed or file.Send at least one.
413 / 40005 Request entity too largeA file over 20 MiB, or a request over 25 MiB.Compress it, or post a link.
403 / 50013 Missing PermissionsThe bot lacks Send Messages or View Channel.Fix the role or channel permissions.

Discord API limitsRate limits, text and media.

  • MessagesContent up to 2,000 characters. Up to 10 embeds and 6,000 characters across them; an embed's description up to 4,096.
  • Files20 MiB per file by default since August 2026, more with server boosts. 25 MiB per request.
  • Rate limits50 requests a second globally per bot. Per-route limits aren't published, so read the X-RateLimit-* headers. 10,000 invalid requests in 10 minutes earns a temporary ban.
  • Webhooks15 per channel and 1,000 per server. Names up to 80 characters, without "clyde" or "discord".

Is the Discord API free?

Yes. Discord's API has no paid tier; higher global rate limits can be requested from its support.

What it asks for is care: a webhook URL is a credential, and a bot needs hosting, a token and, past 100 servers, verification.

Through Breakreach, a Discord channel counts like any other connected account: the first 2 are free, then $5 a month each up to 20.

Ways to post to Discord from code

What you set upPricePosts to Discord
BreakreachAn API key. Accounts connect through Breakreach's reviewed apps, or your users connect theirs on a hosted pageFirst 2 accounts free, then $5 a month per account (less from 21)Yes, By webhook
Discord's own APIA webhook URL, or a bot you hostFreeYes
Upload-PostAn API keyFree for 2 profiles and 10 uploads a month; Basic $24 a month for 5 profilesYes
ZernioAn API keyFirst 2 accounts free, then $6 per account up to 10, $3 up to 100, $1 afterYes
AyrshareAn API keyFrom $149 a month for 1 profile, no free planNo
OutstandAn API key$19 a month for 3,000 posts, then per postNo
Checked on October 6, 2026, from Discord's developer documentation and each company's pricing page. Breakreach is our product.

What the Discord API can't do

  • Read messages, with a webhook
  • Schedule
  • Post outside the webhook's channel (its threads are fine)
  • Crosspost to following servers: that's for bots
  • Automate a personal account: self-bots are forbidden

Post to Discord with Breakreach's APIOne request, scheduled, with retries.

POST /v1/posts
curl https://api.breakreach.com/v1/posts \  -H "Authorization: Bearer $BREAKREACH_API_KEY" \  -H "Content-Type: application/json" \  -d '{    "content": "Morning Light is out. Honey, orange and cocoa notes, our lightest roast yet.",    "accountIds": ["6701a2f4c9e84b0012a3b4d0"],    "media": ["https://cdn.northbeam.coffee/launch.jpg"],    "scheduledAt": "2026-10-07T09:00:00"  }'

What it posts on Discord

  • Text postsUp to 2,000 characters, sent to the webhook's channel.
  • ImagesUp to 4 images, shown as embeds under the text.
  • VideoSent as a link, which Discord unfurls into a player.
  • SchedulingscheduledAt in your workspace's timezone, the next free slot, or publishNow.

Not yet

  • Reading messages
  • Moderation and roles
  • Stats

The full reference, webhooks and the price per connected account are on the developers page, and the OpenAPI spec is at api.breakreach.com/v1/openapi.json.

FAQ

Questions, answered.

Short answers about the Discord API.

Yes. There's no paid tier; bots past 100 servers must be verified, and higher global rate limits can be requested from Discord's support.

To post announcements to one channel, a webhook: a URL, no bot user. To read messages, moderate or manage the server, a bot.

POST JSON with content (up to 2,000 characters) or embeds (up to 10) to the webhook URL. Add ?wait=true to get the created message back.

Discord doesn't publish per-route numbers: read X-RateLimit-Remaining and X-RateLimit-Reset, and wait retry_after on a 429. The global limit is 50 requests a second.

Put its URL in an embed's image, or upload the file as multipart with payload_json and reference it as attachment://name. Files are up to 20 MiB by default.

No: automating a normal user account, a self-bot, is forbidden and can get the account terminated. Use a webhook or a bot.

The first 2 connected accounts are free; from the third it's $5 a month per account up to 20, $3 up to 100, then $2. You pay per connected account, never per post or per request.

Instagram
TikTok
LinkedIn
YouTube
X
Facebook
Threads

Put your socials on autopilot.Live in two minutes.

Plans from $29 a month. Cancel anytime.