A social media API with a calendar attached.
Schedule posts to 30+ networks from your product, your CMS, a CI job or n8n with one request. Your team still sees and edits every post in the app. One flat price per workspace, and no plan caps posts.
curl -X POST \ https://api.postqueen.ai/public/v1/posts \ -H "Authorization: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "type": "schedule", "date": "2026-10-01T09:00:00.000Z", "shortLink": false, "tags": [], "posts": [{ "integration": { "id": "YOUR_CHANNEL_ID" }, "value": [{ "content": "The new calendar is live.", "image": [] }] }]}'import PostQueen from '@postqueen/node';const postqueen = new PostQueen( process.env.POSTQUEEN_API_KEY!);const created = await postqueen.post({ type: 'schedule', date: '2026-10-01T09:00:00.000Z', posts: [{ integration: { id: channelId }, value: [{ content: 'The new calendar is live.', }], }],});npm install -g postqueenpostqueen auth:loginpostqueen posts:create \ -c "The new calendar is live." \ -s "2026-10-01T09:00:00Z" \ -i "YOUR_CHANNEL_ID"[{ "postId": "cmg1p0s7k0001qz0h4yq2a8r1", "integration": "cmg1ozx2c0000qz0h8c7w5v3n" }]Publishes to 30+ networks, through each one’s official API wherever it has one
- TikTok
- YouTube
- X
- Threads
- Bluesky
- Mastodon
- Discord
- Telegram
- Slack
- Twitch
- Kick
- WordPress
- Tumblr
- DEV (dev.to)
- Hashnode
- Google Business Profile
- Dribbble
- VK
- MeWe
- Lemmy
- Nostr
- Farcaster
- Listmonk
- Whop
- Skool
- Moltbook
Six calls, from key to live post.
The whole path for an image post to Bluesky. A network that needs settings, like WordPress, takes one more lookup, and the docs show each one.
- 1GET/is-connected
Check the key
One call proves the key works. A 401 names what is wrong.
{ "connected": true } - 2GET/integrations
Find the channel
Every connected channel, with the id you post to and its network.
id, name, identifier, profile - 3GET/integration-settings/{id}
Read the network’s rules
Its character limit, media rules and the settings a post needs.
rules, maxLength, settings, tools - 4POST/upload
Upload the media
Send a file, or use /upload-from-url. Keep the id and path.
id, path, status: "ready" - 5POST/posts
Create the post
Schedule it, publish now or save a draft, on many channels at once.
201 [{ postId, integration }] - 6GET/posts
Check it went out
List the day’s posts and read each one’s state.
state: "PUBLISHED", releaseURL
https://api.postqueen.ai/public/v1Base address. The key goes in the Authorization header as it is, with no Bearer.
One request. Many channels.
Send a launch to Bluesky as a thread, to X with its reply setting and to DEV as an article, in a single POST /posts.
- One entry in posts per channel, each with its own text and settings
- More items in value make a thread or comments, with a delay in minutes between them
- The whole request counts once against the hourly limit
- Networks without required settings, like Bluesky, need no settings at all
"posts": [ { "integration": { "id": "BLUESKY_ID" }, "value": [ { "content": "2.4 is out.", "image": [] }, { "content": "What changed:", "image": [], "delay": 5 } ] }, { "integration": { "id": "X_ID" }, "settings": { "who_can_reply_post": "everyone" }, "value": [{ "content": "2.4 is out.", "image": [] }] }]Checked before anything is saved.
Every network has its own limits. PostQueen checks each post against them the way the app does, so a bad post fails in your code, not at publish time.
- GET /integration-settings returns a channel’s rules, its character limit, the settings schema and helper tools
- POST /integration-trigger runs a helper, such as listing WordPress post types, to fill a setting
- A post that breaks a rule answers 400 with the network’s own message, and nothing is saved
{ "output": { "rules": "…1 video or 4 pictures…", "maxLength": 300, "settings": "No additional settings required", "tools": [] }}{ "statusCode": 400, "provider": "bluesky", "name": "PostQueen", "message": "post is too long, please fix it"}Everything the app does with posts.
Schedule and publish, upload media, read analytics and manage channels. Everything acts on one workspace, over plain HTTPS and JSON.
Channels
- GET
/integrations - GET
/integration-settings/{id} - POST
/integration-trigger/{id} - GET
/find-slot/{id} - GET
/groups - GET
/social/{integration} - DELETE
/integrations/{id}
- GET
Posts
- POST
/posts - GET
/posts - PUT
/posts/{id}/status - PUT
/posts/{id}/settings - DELETE
/posts/{id} - DELETE
/posts/group/{group}
- POST
Media
- POST
/upload - POST
/upload-from-url - GET
/media/{id}/status
- POST
Analytics
- GET
/analytics/{integration} - GET
/analytics/post/{postId} - GET
/analytics/posts - GET
/analytics/summary
- GET
AI video
- POST
/generate-video - POST
/video/function
- POST
Key and notifications
- GET
/is-connected - GET
/notifications
- GET
Use it from the tools you have.
The same key works in every one of them, and everything they create lands on the same calendar.
Node SDK
A typed client for the five most used calls: channels, create, list, upload and delete.
npm install @postqueen/nodeSDK docsCLI
Post from scripts, cron and CI jobs. Commands print JSON you can pipe.
npm install -g postqueenThe CLIn8n node
A community node for n8n you run. On n8n Cloud, the HTTP Request node calls the API.
n8n-nodes-postqueenn8n guideMCP server
Give an AI agent 21 tools with the same key: channels, posts, media and analytics.
api.postqueen.ai/mcp/YOUR_API_KEYAPI for AI agentsWebhooks
PostQueen calls your HTTPS URL each time a post goes live, once per channel.
Settings > WebhooksWebhook docsZapier and Make
SOONOfficial apps are coming. Until then, call the API from their HTTP steps.
Building for other PostQueen users?
Nobody hands you their API key. They approve your app on a PostQueen consent screen, and you get a token for their workspace.
- Register your appIn Connections, under Developers. You get a Client ID (pca_) and a secret (pcs_).
- Send people to the consent screenThey see your app’s name and picture, and a workspace admin chooses Authorize.
- Swap the code for a tokenA pos_ token that acts on their workspace, with no expiry until they revoke it.
- Call the APIThe token goes in the same Authorization header, and works on the MCP server too.
POST https://api.postqueen.ai/oauth/token{ "grant_type": "authorization_code", "code": "AUTHORIZATION_CODE", "client_id": "pca_YOUR_CLIENT_ID", "client_secret": "pcs_YOUR_SECRET" }→ { "access_token": "pos_8Jd02kLq…" }The limits, in plain numbers.
Three endpoints have an hourly limit. The key, your OAuth apps, the CLI and the SDK share one allowance per workspace. Over it, the answer is 429 with a Retry-After header.
X-RateLimit-LimitX-RateLimit-RemainingX-RateLimit-ResetRetry-After
| Endpoint | Limit | Details |
|---|---|---|
| POST /posts | 30 an hour | One request can carry many channels and a thread, and counts once. |
| POST /upload | 300 an hour | Files from your disk or server. |
| POST /upload-from-url | 300 an hour | Counted apart from POST /upload. |
| Everything else | No limit | Listing, reading, changing and deleting. |
| Posts per month | No cap | On every plan. Each network’s own daily limits still apply. |
| Webhooks | 2 to 10,000 | By plan: 2, 10, 30 or 10,000. |
Four plans. Unlimited posts on every one.
Per workspace, not per profile or per post. Every plan has the REST API, the Node SDK, the CLI and webhooks, and no plan caps posts.
save 4 months on Pro
Creator
For solo creators
$20$20$11/monthBilled monthly$132 a yearBilled every month, or $132 a yearBilled $132 once a year
You save $108 a year- 5 social accounts
- Unlimited posts
- No team members
- 150 AI credits a month
- 60 min video clippingSOON
- 2 webhook endpoints
Growth
For small teams
$33$33$22/monthBilled monthly$264 a yearBilled every month, or $264 a yearBilled $264 once a year
You save $132 a year- 10 social accounts
- Unlimited posts
- Unlimited team members
- 300 AI credits a month
- 120 min video clippingSOON
- 10 webhook endpoints
- Most popular
Pro
For growing brands
$49$49$33/monthBilled monthly$396 a yearBilled every month, or $396 a yearBilled $396 once a year
You save $192 a year- 30 social accounts
- Unlimited posts
- Unlimited team members
- 500 AI credits a month
- 300 min video clippingSOON
- 30 webhook endpoints
Ultimate
For agencies
$99$99$66/monthBilled monthly$792 a yearBilled every month, or $792 a yearBilled $792 once a year
You save $396 a year- Unlimited social accounts
- Unlimited posts
- Unlimited team members
- 1,000 AI credits a month
- 600 min video clippingSOON
- Unlimited webhook endpoints
Every plan also includes
- AI agent connection over MCP
- AI Copilot in the app
- Design editor
- CLI, REST API and Node SDK
- Analytics
- Auto reposts and comments
- Threads and first comments
- Repeating posts
- RSS auto-post
- Link shortening
- $0 due today. Cancel in one click.
- Change plans anytime
- Prices in USD, VAT added where it applies
API questions, answered.
Anything else? Write to support@postqueen.ai and a person answers.
More ways people use PostQueen
One request. Every network.
Get your API key with the trial, and schedule your first post from code today.