Connect Twitch first
- 01
Open Accounts in 1Post and choose Connect.
- 02
Pick Twitch.
- 03
Sign in with Twitch and approve access for the channel you want to post to.
- 04
Choose the channel in 1Post. It is ready to pick in the composer.
Then GET /v1/accounts returns the id of the Twitch channel to use in the request.
Send a post to Twitch
curl https://api.get1post.com/v1/posts \
-H "Authorization: Bearer $ONEPOST_API_KEY" \
-H "Idempotency-Key: twitch-first-post" \
-d '{"accounts":["ACCOUNT_ID"],"text":"Stream starts at 8 PM tonight: new map, new rules.","schedule_at":"2026-11-02T15:00:00Z"}'The reply is 202 with the post (status scheduled) and one destination for Twitch, which moves from queued to published or failed.
What you can send to Twitch
- Chat message
- Announcement
Twitch rules the request is checked against
| Rule | What 1Post checks |
|---|---|
| Text limit | 500 characters, counted by code points |
| Media accepted | Text only |
| Threads | No |
| First comment | No |
| Posts per day, per connected account (1Post) | 20 |
The same table with sources is on the Twitch specs page.
Good to know for Twitch
A Twitch post is a chat line in your own channel, sent as the channel itself. Set announcement to true in the account's settings to send an announcement instead of an ordinary chat message. Twitch can still refuse a line at send time: a ban, a timeout or the channel's chat mode fails it as not_allowed_in_chat, and a line Twitch holds back for review fails as message_failed_review, so change the wording and send it again.
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": "twitch refuses this post: Twitch counts 532 of 500 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.