---
title: "Social Media API for Developers — Build on Postpone | Postpone"
canonical_url: "https://www.postpone.app/use-cases/developers"
last_updated: "2026-09-17T15:24:00.490Z"
meta:
  description: "One GraphQL API and a hosted MCP server for 12 social platforms. Schedule posts, upload media, and pull analytics from your own app, script, or AI agent — without writing twelve integrations."
  "og:description": "One GraphQL API and a hosted MCP server for 12 social platforms. Schedule posts, upload media, and pull analytics from your own app, script, or AI agent — without writing twelve integrations."
  "og:title": "Social Media API for Developers — Build on Postpone"
  "twitter:description": "One GraphQL API and a hosted MCP server for 12 social platforms. Schedule posts, upload media, and pull analytics from your own app, script, or AI agent — without writing twelve integrations."
  "twitter:title": "Social Media API for Developers — Build on Postpone"
---

# Postpone for Developers

Ship social features, not platform integrations

Twelve networks behind one GraphQL API and an MCP server. You write the part your product is actually about; we handle each platform’s auth, media rules, and rate limits.

[**Try Postpone for Free**](https://www.postpone.app/signup)

schedule\_reddit\_post.graphql

```graphql
mutation ScheduleRedditPost(
  $input: ScheduleRedditPostInput!
) {
  scheduleRedditPost(input: $input) {
    success
    post {
      id
      title
      publishingStatus
      submissions {
        subreddit
        postAt
      }
    }
    errors {
      field
      message
    }
  }
}
```

- ## One Endpoint, Twelve Platforms

  Reddit, X, Instagram, Threads, Facebook, TikTok, YouTube Shorts, LinkedIn, Pinterest, Bluesky, Mastodon, and Tumblr behind a single URL. No per-platform SDKs, no twelve sets of app credentials to keep alive.
- ## Built on GraphQL

  A typed, introspectable schema: ask for the fields you need and get exactly those back. Explore the whole thing in the API Playground before you write a line of production code.
- ## AI-Ready, with MCP

  A hosted Model Context Protocol server sits beside the API, so Claude, ChatGPT, Cursor, or an agent you built yourself can schedule and review posts in plain language.

schedule\_post.py

```python
import os
import requests

API_KEY = os.environ["POSTPONE_API_KEY"]
MUTATION = """
mutation ($input: ScheduleRedditPostInput!) {
  scheduleRedditPost(input: $input) {
    success
    post { id }
  }
}
"""

post = {
  "username": "my_reddit_account",
  "title": "We shipped a public API today",
  "link": "https://example.com/changelog",
  "submissions": [{"subreddit": "programming", "postAt": "2026-10-16T14:30:00Z"}],
}

requests.post(
  "https://api.postpone.app/gql",
  headers={"Authorization": f"Bearer {API_KEY}"},
  json={"query": MUTATION, "variables": {"input": post}},
)
```

## **Social Media API**

### Every Platform Is a Different Beast. We Tamed All Twelve.

Posting to X, Reddit, and Threads from your own app means three APIs, three auth flows, three sets of rate limits, and rules that change without warning.

Postpone is the one integration that covers all of it. Each platform gets a dedicated mutation with full access to its native features — Reddit flair and multi-subreddit submissions, X threads and auto-retweets, Instagram carousels, TikTok privacy controls — behind the same endpoint and the same key.

[**Read the Docs **](https://developers.postpone.app)

schedule\_thread.variables.json

```json
{
  "input": {
    "username": "postponesocial",
    "postAt": "2026-10-16T14:30:00Z",
    "thread": [
      {
        "order": 0,
        "text": "One API. Twelve social platforms."
      },
      {
        "order": 1,
        "text": "Every network has its own rules.",
        "media": [
          { "url": "https://example.com/1.png" }
        ]
      }
    ]
  }
}
```

## **Social Media Content API**

### Threads, Galleries, and Media, in the Same Call

A post is not always one box of text. Send an X thread as a list, attach media to any item in it by URL or by the name of a file already in your Content Library, and let a second image turn the post into a gallery.

That is what turns a script into a pipeline: generate the asset, upload it once, and schedule it everywhere without moving the file again.

Schedule the v2.4 release notes to r/programming, X, and LinkedIn for 9am tomorrow

**Checked with Postpone**

Three posts are scheduled for 9:00 AM tomorrow in your timezone:

- r/programming, a title and a body with no link in the post itself
- X, the summary as a two post thread
- LinkedIn, the long version with the changelog link

None of them has published. They are on the calendar, so the API can move or edit any of the three before then.

## **MCP for Social Media**

### Your AI Agent Can Post, Too

The same account that backs your API key also backs a hosted MCP server. Drop the URL into Claude, ChatGPT, Cursor, n8n, or your own client and your agent can schedule posts, read the calendar, search your media, and report on what published — in plain language.

OAuth 2.1 for interactive clients, a bearer token for headless ones.

[**Postpone for AI Agents **](https://www.postpone.app/use-cases/agents)

post\_metrics.graphql

```graphql
query PostMetrics(
  $accounts: [ID]
  $startDate: DateTime!
  $endDate: DateTime!
) {
  postTimeSeriesMetrics(
    socialAccountIds: $accounts
    startDate: $startDate
    endDate: $endDate
    metrics: ["likes", "comments", "impressions"]
    groupBy: "week"
  ) {
    date
    metrics {
      metric
      value
    }
  }
}
```

## **Social Analytics API**

### Pull the Numbers into Your Own Dashboard

Query likes, comments, impressions, reach, shares, and views across every platform you post to — as a time series, as aggregate totals, per account, or per post tag.

Pipe it into your BI tool, your client reports, or the reporting screen your customers already look at.

![An AI coding assistant reading the Postpone docs to write a Reddit scheduling script](https://www.postpone.app/_vercel/image?url=%2Fimages%2Fapi-documentation.png&w=1200&q=78)

## **Social API Documentation**

### Documentation Your Coding Agent Can Read

Every page of the Postpone docs is available as Markdown, so Claude Code, Codex, or Cursor can read the schema and write the integration with you — in whatever language you already work in.

[**Read the Docs **](https://developers.postpone.app)

## A Single API for All the Platforms You Use

One integration publishes to every network Postpone supports — and the next one we add arrives without a change on your side.

- [Reddit](https://www.postpone.app/platforms/reddit-post-scheduler)
- [Threads](https://www.postpone.app/platforms/threads-scheduler)
- [X (formerly Twitter)](https://www.postpone.app/platforms/twitter-post-scheduler)
- [Instagram](https://www.postpone.app/platforms/instagram-post-scheduler)
- [Facebook](https://www.postpone.app/platforms/facebook-post-scheduler)
- [YouTube Shorts](https://www.postpone.app/platforms/youtube-shorts-scheduler)
- [TikTok](https://www.postpone.app/platforms/tiktok-post-scheduler)
- [LinkedIn](https://www.postpone.app/platforms/linkedin-scheduler)
- [Pinterest](https://www.postpone.app/platforms/pinterest-scheduler)
- [Bluesky](https://www.postpone.app/platforms/bluesky-post-scheduler)
- [Mastodon](https://www.postpone.app/platforms/mastodon-post-scheduler)
- [Tumblr](https://www.postpone.app/platforms/tumblr-post-scheduler)

## What You Can Build

Put social publishing inside your product, your company, or your agent.

- ### SaaS Products

  Add scheduling to your app without building it from scratch or maintaining a dozen platform integrations that break on someone else’s release cycle.
- ### Agencies

  Automate client posting, reporting, and content pipelines end to end — then hand clients a portal that reads from the same data. [**See How **](https://www.postpone.app/use-cases/agencies)
- ### Internal Tools

  Wire your CMS, your changelog, or your content calendar straight into the social accounts your team already posts from.
- ### AI Agents

  Give Claude, ChatGPT, or an agent of your own the ability to publish and report, not just draft. [**See How **](https://www.postpone.app/use-cases/agents)

[**Try Postpone for Free**](https://www.postpone.app/signup)

**Integrations**

## Already Wired to the Tools Around It

Before you write anything, check whether it is already built: Postpone connects to dozens of services.

- [Pinterest](https://www.postpone.app/integrations/pinterest)
- [Mastodon](https://www.postpone.app/integrations/mastodon)
- [![Apple Podcasts logo](https://www.postpone.app/images/integrations/apple-podcasts.svg)Apple Podcasts](https://www.postpone.app/integrations/apple-podcasts)
- [LinkedIn](https://www.postpone.app/integrations/linkedin)
- [Facebook](https://www.postpone.app/integrations/facebook)
- [Instagram](https://www.postpone.app/integrations/instagram)
- [Reddit](https://www.postpone.app/integrations/reddit)
- [X / Twitter](https://www.postpone.app/integrations/x-twitter)
- [TikTok](https://www.postpone.app/integrations/tiktok)
- [YouTube](https://www.postpone.app/integrations/youtube)
- [![Ghost logo](https://www.postpone.app/images/brands/icons/ghost.png)Ghost](https://www.postpone.app/integrations/ghost)
- [![Medium logo](https://www.postpone.app/images/integrations/medium.svg)Medium](https://www.postpone.app/integrations/medium)
- [![Buttondown logo](https://www.postpone.app/images/brands/icons/buttondown.svg)Buttondown](https://www.postpone.app/integrations/buttondown)
- [![GitHub logo](https://www.postpone.app/images/integrations/github.svg)GitHub](https://www.postpone.app/integrations/github)
- [![Google Drive logo](https://www.postpone.app/images/brands/google-drive.png)Google Drive](https://www.postpone.app/integrations/google-drive)
- [![OneDrive logo](https://www.postpone.app/images/brands/onedrive.png)OneDrive](https://www.postpone.app/integrations/onedrive)
- [![Flickr logo](https://www.postpone.app/images/brands/flickr.png)Flickr](https://www.postpone.app/integrations/flickr)
- [![Cursor logo](https://www.postpone.app/images/brands/icons/cursor.svg)Cursor](https://www.postpone.app/integrations/cursor)
- [![Raycast logo](https://www.postpone.app/images/brands/icons/raycast.png)Raycast](https://www.postpone.app/integrations/raycast)
- [![OpenClaw logo](https://www.postpone.app/images/brands/icons/openclaw.svg)OpenClaw](https://www.postpone.app/integrations/openclaw)

- [Tumblr](https://www.postpone.app/integrations/tumblr)
- [![RSS logo](https://www.postpone.app/images/integrations/rss.svg)RSS](https://www.postpone.app/integrations/rss)
- [![Substack logo](https://www.postpone.app/images/brands/icons/substack.svg)Substack](https://www.postpone.app/integrations/substack)
- [![Perplexity logo](https://www.postpone.app/images/llms/perplexity.svg)Perplexity](https://www.postpone.app/integrations/perplexity)
- [![Grok logo](https://www.postpone.app/images/llms/grok.svg)Grok](https://www.postpone.app/integrations/grok)
- [![ChatGPT logo](https://www.postpone.app/images/llms/openai.svg)ChatGPT](https://www.postpone.app/integrations/chatgpt)
- [![Claude logo](https://www.postpone.app/images/brands/icons/claude.svg)Claude](https://www.postpone.app/integrations/claude)
- [![Canva logo](https://www.postpone.app/images/brands/canva-circle.svg)Canva](https://www.postpone.app/integrations/canva)
- [Threads](https://www.postpone.app/integrations/threads)
- [Bluesky](https://www.postpone.app/integrations/bluesky)
- [![WordPress logo](https://www.postpone.app/images/integrations/wordpress.svg)WordPress](https://www.postpone.app/integrations/wordpress)
- [![Beehiiv logo](https://www.postpone.app/images/brands/icons/beehiiv.png)Beehiiv](https://www.postpone.app/integrations/beehiiv)
- [![Dev.to logo](https://www.postpone.app/images/integrations/dev-to.svg)Dev.to](https://www.postpone.app/integrations/dev-to)
- [![Google Photos logo](https://www.postpone.app/images/brands/google-photos.png)Google Photos](https://www.postpone.app/integrations/google-photos)
- [![Dropbox logo](https://www.postpone.app/images/brands/dropbox.svg)Dropbox](https://www.postpone.app/integrations/dropbox)
- [![Box logo](https://www.postpone.app/images/brands/box.svg)Box](https://www.postpone.app/integrations/box)
- [API](https://www.postpone.app/integrations/api)
- [![n8n logo](https://www.postpone.app/images/brands/icons/n8n.svg)n8n](https://www.postpone.app/integrations/n8n)
- [![Zapier logo](https://www.postpone.app/images/brands/zapier-icon.svg)Zapier](https://www.postpone.app/integrations/zapier)

[**Browse Integrations**](https://www.postpone.app/integrations)

## From Zero to Your First Scheduled Post

Three steps, and none of them involve a platform review board.

1. 1 ### Connect your accounts

   Sign up and link the social accounts you want to publish to. The API posts from exactly the accounts the app does, so anything you can schedule by hand you can schedule in code.
2. 2 ### Create an API key

   Settings → Integrations → Postpone API. Keys are personal, named, and can carry an expiry date. Copy it once — it is only shown at creation.
3. 3 ### Send a request

   Point any HTTP client at api.postpone.app/gql with the key as a bearer token, or open the API Playground and run a query against your own data first.

[**Get Started for Free**](https://www.postpone.app/signup)

## **Social Media API for Developers FAQs**

Questions Before You Start Building

The things worth knowing before you write the first request.

Still have questions? Check out our help center for answers to most of your questions, or reach out to our support team.

[**Visit the Help Center **](https://help.postpone.app/) [**Contact us **](https://www.postpone.app/contact)

### **Is the Postpone API REST or GraphQL?**

GraphQL, at a single endpoint: https://api.postpone.app/gql. Any HTTP client can call it — there is no SDK to install, and no client library to keep up to date. The schema is introspectable, so your editor and your coding agent can both read it, and the API Playground runs queries against your own account in the browser.

[**Read the API docs **](https://developers.postpone.app)

### **How do I authenticate with the Postpone API?**

With a personal API key sent as a bearer token. Create one under Settings → Integrations → Postpone API; it is shown once, so store it somewhere your app can read it. The MCP server accepts the same keys and additionally supports OAuth 2.1, which is what most hosted AI clients use.

### **Which social platforms can I publish to through the API?**

All twelve Postpone supports: Reddit, X/Twitter, Instagram, Threads, Facebook Pages, TikTok, YouTube Shorts, LinkedIn, Pinterest, Bluesky, Mastodon, and Tumblr. Each has its own mutation, so platform-specific features are available rather than flattened into a lowest common denominator.

[**See every platform **](https://www.postpone.app/platforms)

### **What are the Postpone API rate limits?**

Twenty-five requests per ten minutes on free accounts, and three hundred per ten minutes on paid ones, applied per user. Going over returns a 429 with X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset headers so you can back off precisely rather than guessing.

### **Can I attach images and video through the API?**

Yes, the Postpone API attaches images and video to a post. Send media by URL, or by the name or ID of a file already in your Content Library. A single item becomes an image or video post and several become a gallery, with each platform’s own rules — Instagram carousels, Reddit galleries, TikTok video — handled for you.

### **How does Reddit scheduling work through the API?**

Scheduled Reddit posts use notification posting, in line with Reddit’s rules: when the time comes, you get a notification and complete the submission natively in Reddit’s app or site. Everything up to that point — the title, the body, the subreddit, the flair, the timing — is set by your API call.

[**Reddit post scheduler **](https://www.postpone.app/platforms/reddit-post-scheduler)

### **Can an AI agent use the Postpone API?**

Yes, two ways. Point a coding agent at the Markdown docs and it will write against the GraphQL API in any language. Or skip the code entirely and connect the hosted MCP server, which lets an agent schedule posts, read the calendar, and report on what published without writing anything.

[**Postpone for AI agents **](https://www.postpone.app/use-cases/agents)

### **Do I need my own developer app on each social platform?**

No, you never register a developer app on any platform. That is the part Postpone removes: there is no app review to pass, no per-platform OAuth client to register, and no token refresh loop to maintain, so you connect an account once in Postpone and the API posts from it.