Connect WordPress first
- 01
In your WordPress profile, create an Application Password.
- 02
Open Accounts in 1Post and choose Connect, then WordPress.
- 03
Enter your site address, your username and the Application Password.
- 04
Choose the site in the composer.
Then GET /v1/accounts returns the id of the WordPress site to use in the request.
Send a post to WordPress
curl https://api.get1post.com/v1/posts \
-H "Authorization: Bearer $ONEPOST_API_KEY" \
-H "Idempotency-Key: wordpress-first-post" \
-d '{"accounts":["ACCOUNT_ID"],"text":"Release notes for the autumn update.","schedule_at":"2026-11-02T15:00:00Z"}'The reply is 202 with the post (status scheduled) and one destination for WordPress, which moves from queued to published or failed.
What you can send to WordPress
- Post with a title
- HTML body
- Featured image
- Categories and tags
- Publish status
WordPress rules the request is checked against
| Rule | What 1Post checks |
|---|---|
| Text limit | No length check |
| Media accepted | Images |
| Images per post | 1 |
| Threads | No |
| First comment | No |
| Posts per day, per connected account (1Post) | 20 |
The same table with sources is on the WordPress specs page.
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": "wordpress refuses this post: WordPress needs some content. (empty_text).",
"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.