Connect Discord first
- 01
In Discord, open the channel settings and create a webhook.
- 02
Copy the webhook URL.
- 03
Open Accounts in 1Post and choose Connect, then Discord, and paste the URL.
- 04
Choose the channel in the composer.
Then GET /v1/accounts returns the id of the Discord channel to use in the request.
Send a post to Discord
curl https://api.get1post.com/v1/posts \
-H "Authorization: Bearer $ONEPOST_API_KEY" \
-H "Idempotency-Key: discord-first-post" \
-d '{"accounts":["ACCOUNT_ID"],"text":"Release notes are up.","schedule_at":"2026-11-02T15:00:00Z"}'The reply is 202 with the post (status scheduled) and one destination for Discord, which moves from queued to published or failed.
What you can send to Discord
- Text
- Up to 10 images
- Video
What Discord publishes
- A webhook message holds up to 2,000 characters of content and up to 10 embeds.
Discord rules the request is checked against
| Rule | What 1Post checks |
|---|---|
| Text limit | 2,000 characters, counted by code points |
| Media accepted | Images, Video |
| Images per post | 10 |
| Videos per post | 1 |
| Threads | No |
| First comment | No |
| Posts per day, per connected account (1Post) | 100 |
The same table with sources is on the Discord specs page.
Good to know for Discord
A Discord post goes to the one channel its webhook was made for, so connect one account per channel. Images and video travel with the text.
Check the post before it is queued
Add "dry_run": true to test a post: nothing is kept, a valid one answers 200 and a broken one answers 422 naming the rule.
{
"error": {
"code": "invalid_for_platform",
"message": "discord refuses this post: Discord counts 2,032 of 2,000 characters in part 1. (text_too_long).",
"fix": "Fix the rule named in the message and send the post again.",
"retryable": false,
"request_id": "REQUEST_ID"
}
}An assistant connected to the MCP server sends the same fields to create_post; set one up.