---
title: "Discord API: post and schedule from code"
url: "https://get1post.com/developers/discord.md"
canonical_url: "https://get1post.com/developers/discord"
last_updated: "2026-10-26"
type: "reference"
summary: "Post and schedule to Discord with the 1Post API and MCP server: the request, the reply, every rule it is checked against and a dry run."
related: ["https://get1post.com/platforms/discord.md", "https://get1post.com/platforms/discord/specs.md", "https://get1post.com/docs/api-posts.md", "https://get1post.com/docs/mcp.md"]
---

# Discord API: post and schedule from code

Post and schedule to Discord with the 1Post API and MCP server: the request, the reply, every rule it is checked against and a dry run.

Post to Discord from code with one request: POST /v1/posts with your channel id, the text and a schedule_at time. Discord text is limited to 2,000 characters, counted by code points. 1Post allows up to 100 posts a day for each connected channel, and a dry run checks a post against every rule first.

## Connect Discord first

1. In Discord, open the channel settings and create a webhook.
2. Copy the webhook URL.
3. Open Accounts in 1Post and choose Connect, then Discord, and paste the URL.
4. 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

**Schedule a post**

```bash
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](https://get1post.com/platforms/discord/specs.md).

## 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.

**A refused request, abridged**

```json
{
  "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](https://get1post.com/docs/mcp.md) sends the same fields to create_post; [set one up](https://get1post.com/assistants.md).

## Questions

**Can I post to Discord with an API key?**

Yes. A key with write scope can create, change and cancel Discord posts for the workspace it belongs to, with the role of the member who made it. See [API authentication](https://get1post.com/docs/api-authentication.md).

**What happens if a Discord post breaks a rule?**

The request is refused with invalid_for_platform and the failing rule is named. Fix it and send the request again, or send it with dry_run to test the fix first.

**How many Discord posts can I send in a day?**

Up to 100 for each connected channel. A request that would pass that answers daily_cap with the time the day frees up.

## Sources

- [Discord developer docs: webhook resource](https://docs.discord.com/developers/resources/webhook), read 2026-10-26

## Related

- [Schedule Discord posts: formats, limits, setup](https://get1post.com/platforms/discord.md)
- [Discord specs and limits: text, media, daily cap](https://get1post.com/platforms/discord/specs.md)
- [Creating and changing posts with the API: 1Post docs](https://get1post.com/docs/api-posts.md)
- [The MCP server: 1Post docs](https://get1post.com/docs/mcp.md)
