Skip to content
Post from Grok Bot, Muse, Claude, ChatGPT and more
Social media posting API

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.

Start 7-day trial for $0Read the API docs$0 due today. Cancel in one click.
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": []    }]  }]}'
201 CreatedThe post is on the calendar.
[{ "postId": "cmg1p0s7k0001qz0h4yq2a8r1",   "integration":     "cmg1ozx2c0000qz0h8c7w5v3n" }]

Publishes to 30+ networks, through each one’s official API wherever it has one

  • Instagram
  • TikTok
  • YouTube
  • X
  • LinkedIn
  • Facebook
  • Threads
  • Pinterest
  • Reddit
  • 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
How it works

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.

Batching

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
POST /posts, the posts field
"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": [] }] }]
Three channels, one thread, one request
Network rules

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
GET /integration-settings/…200
{  "output": {    "rules": "…1 video or 4 pictures…",    "maxLength": 300,    "settings": "No additional settings required",    "tools": []  }}
POST /posts, 320 characters400
{  "statusCode": 400,  "provider": "bluesky",  "name": "PostQueen",  "message": "post is too long, please fix it"}
The reference

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}
  • Posts

    • POST/posts
    • GET/posts
    • PUT/posts/{id}/status
    • PUT/posts/{id}/settings
    • DELETE/posts/{id}
    • DELETE/posts/group/{group}
  • Media

    • POST/upload
    • POST/upload-from-url
    • GET/media/{id}/status
  • Analytics

    • GET/analytics/{integration}
    • GET/analytics/post/{postId}
    • GET/analytics/posts
    • GET/analytics/summary
  • AI video

    • POST/generate-video
    • POST/video/function
  • Key and notifications

    • GET/is-connected
    • GET/notifications
Every endpoint, with its request and answer, in the API reference
Your stack

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 docs
  • CLI

    Post from scripts, cron and CI jobs. Commands print JSON you can pipe.

    npm install -g postqueenThe CLI
  • n8n node

    A community node for n8n you run. On n8n Cloud, the HTTP Request node calls the API.

    n8n-nodes-postqueenn8n guide
  • MCP 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 agents
  • Webhooks

    PostQueen calls your HTTPS URL each time a post goes live, once per channel.

    Settings > WebhooksWebhook docs
  • Zapier and Make

    SOON

    Official apps are coming. Until then, call the API from their HTTP steps.

OAuth apps

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.

  1. Register your appIn Connections, under Developers. You get a Client ID (pca_) and a secret (pcs_).
  2. Send people to the consent screenThey see your app’s name and picture, and a workspace admin chooses Authorize.
  3. Swap the code for a tokenA pos_ token that acts on their workspace, with no expiry until they revoke it.
  4. Call the APIThe token goes in the same Authorization header, and works on the MCP server too.
Swap the code for a token
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…" }
Limits

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-Limit
  • X-RateLimit-Remaining
  • X-RateLimit-Reset
  • Retry-After
Per workspaceSame on every plan
EndpointLimitDetails
POST /posts30 an hourOne request can carry many channels and a thread, and counts once.
POST /upload300 an hourFiles from your disk or server.
POST /upload-from-url300 an hourCounted apart from POST /upload.
Everything elseNo limitListing, reading, changing and deleting.
Posts per monthNo capOn every plan. Each network’s own daily limits still apply.
Webhooks2 to 10,000By plan: 2, 10, 30 or 10,000.
Pricing

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/month

    Billed monthly

    • 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/month

    Billed monthly

    • 10 social accounts
    • Unlimited posts
    • Unlimited team members
    • 300 AI credits a month
    • 120 min video clippingSOON
    • 10 webhook endpoints
  • Ultimate

    For agencies

    $99/month

    Billed monthly

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

No. The API comes with every plan, and the 7-day trial counts. You pay per workspace, by the number of channels, never per call, per profile or per post.

Anything else? Write to support@postqueen.ai and a person answers.

One request. Every network.

Get your API key with the trial, and schedule your first post from code today.

Start 7-day trial for $0$0 due today. Cancel in one click.