Where the API key is: in the app, open Connections > API Keys. Only a workspace Admin or Super Admin can reveal or rotate it; other members see it masked. A workspace has one key, and each agent card on Connections shows your MCP address with the key already filled in.
1. Check the key
{ "connected": true } means the key works. A 401 says why it does not: see Limits and errors.
2. Find the channel
id of the channel you want. It is YOUR_CHANNEL_ID below.
3. Read what the network needs
For WordPress: fill the settings with a tool
For WordPress: fill the settings with a tool
A WordPress channel answers with a The post then carries
settings schema that requires title and type. type is a post type such as posts, and the postTypes tool lists them:"settings": { "title": "...", "type": "posts" }. Every network’s settings: Posting settings by network.4. Upload the image
id and path. An image is ready at once. A video comes back processing: call Get media status every few seconds until it is ready, and use the path from that answer.
5. Create the post
Pick a time in UTC that is still ahead: withschedule, a time that has already passed publishes the post at once. To use the channel’s next free posting time instead, Find a free slot returns one.
201 with the new post’s id:
400 means nothing was saved, and the body says what to fix. For example, text over 300 characters on Bluesky answers post is too long, please fix it.
6. Check that it went out
List the posts of that day:postId and read its state:
PUBLISHED with a releaseURL means the post is live on Bluesky.Change or cancel it
Next steps
Create a post
Every field of the request, the post types and the settings each network requires.
Posting settings by network
The settings of each network, with examples.
Limits and errors
The hourly limits, and what each status code means.
Node.js SDK
The same calls from JavaScript or TypeScript.