---
title: "Social Media API — Schedule Posts to 12 Social Platforms | Postpone"
canonical_url: "https://www.postpone.app/features/social-media-api"
last_updated: "2026-10-08T07:17:11.533Z"
meta:
  description: "Schedule and manage social media posts programmatically across Reddit, X/Twitter, Instagram, TikTok, LinkedIn, and 7 more platforms with Postpone's GraphQL API. Media uploads, flexible scheduling, and detailed error handling included."
  "og:description": "Schedule and manage social media posts programmatically across Reddit, X/Twitter, Instagram, TikTok, LinkedIn, and 7 more platforms with Postpone's GraphQL API. Media uploads, flexible scheduling, and detailed error handling included."
  "og:title": "Social Media API — Schedule Posts to 12 Social Platforms"
  "twitter:description": "Schedule and manage social media posts programmatically across Reddit, X/Twitter, Instagram, TikTok, LinkedIn, and 7 more platforms with Postpone's GraphQL API. Media uploads, flexible scheduling, and detailed error handling included."
  "twitter:title": "Social Media API — Schedule Posts to 12 Social Platforms"
---

# Schedule to Every Social Platform with a Single API Call

Schedule posts, upload media, and manage content across 12 social platforms with a single GraphQL API. One endpoint for every platform you need.

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

Terminal

```bash
curl --request POST \
  --url https://api.postpone.app/gql \
  --header "authorization: Bearer $POSTPONE_API_KEY" \
  --header 'content-type: application/json' \
  --data '{"query":"{ profile { id username } }"}'
```

- ## 12 Platforms, One API

  Reddit, X/Twitter, Instagram, TikTok, LinkedIn, Facebook, Bluesky, Threads, Mastodon, Pinterest, YouTube Shorts, and Tumblr. One unified API handles them all — no juggling individual platform SDKs.
- ## GraphQL to Query What You Need

  Request exactly the data you want in a single call. Explore the full schema in the built-in API Playground before you write a line of production code.
- ## Ship Today, Not Next Quarter

  Personal API tokens, clear error codes, and AI-ready documentation for every platform. Go from first request to production in an afternoon.

## Social Media API for 12 Social Platforms

Postpone supports all the platforms creators and brands use to grow their audience.

- [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)

schedule\_reddit\_post.graphql

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

## **Social Media Scheduling API**

### One API for Every Platform You Post To

Schedule posts for the future, publish immediately, save as drafts, reschedule, or delete — all through one API. Each platform gets its own dedicated mutation with full access to native features like Reddit flair, Instagram carousels, X/Twitter threads, and TikTok privacy controls.

[**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**

### Upload Images, Videos, and Galleries — or Pull from Your Library

Attach media to any post by URL or reference files already in your Postpone Content Library by name, with support for single images, video uploads, and carousel posts.

Build content pipelines that generate media, upload it, and schedule it across platforms in a single workflow.

unused\_media.graphql

```graphql
query UnusedMedia {
  media(
    fileType: IMAGE
    limit: 20
    orderBy: "-date_created"
    usageFilter: { filterType: UNUSED }
  ) {
    total
    objects {
      id
      name
      url
      humanReadableSize
    }
  }
}
```

## **Content Library API**

### Ask Your Library What You Have Not Posted Yet

Query the Content Library by name, file type, or label — and filter to media that has never been used, is not currently scheduled, or has never been sent to a given subreddit. It is the query that keeps an automated queue from repeating itself.

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 Engagement Data Across Every Platform You Post To

Query likes, comments, impressions, reach, shares, and views across all supported platforms. Get time-series trends, aggregate totals, per-account breakdowns, and post tag performance — then pipe it into your own dashboards, reports, or BI tools.

mcp.json

```json
{
  "mcpServers": {
    "postpone": {
      "url": "https://api.postpone.app/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}
```

## **MCP for Social Media**

### The Same Account Backs an MCP Server

Not everything has to be code. Point Claude, ChatGPT, Cursor, n8n, or your own agent at Postpone’s hosted MCP server and it can schedule posts, read the calendar, search your media, and report on what published — in plain language.

OAuth 2.1 for interactive clients, the same personal API key for headless ones.

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

![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**

### AI-Ready Documentation

Postpone's API comes with AI-ready documentation in Markdown format, so you can build integrations with Claude Code, Codex, or Cursor in any programming language.

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

> ### The scripts that make our creative now schedule it too.
>
> Postpone's GraphQL API is the whole reason we picked it, and our follower counts are up roughly 20% across platforms since we wired it in. The media library is the hero: it reuses content by name, so we render one card in three sizes and map square to LinkedIn, Facebook and X, portrait to Instagram, vertical to TikTok, and re-runs cost us nothing. Our biggest batch was 50 posts in one command, which by hand would have been 12 hours of tab switching, and our weekly posting runs unattended now.

*![Headshot of Titus Capilnean](https://www.postpone.app/_vercel/image?url=%2Fimages%2Favatar-titus-capilnean.jpg&w=160&q=78)**Titus Capilnean** Head of Marketing, RundooPosts to Reddit, X, Instagram, Facebook, TikTok and LinkedIn*

## **Social Media API FAQs**

What the API Covers, and What It Does Not

Scope, access, and how the API sits alongside the automations and the Zapier app you already have.

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 there anything the Postpone API cannot do?**

Two boundaries are worth knowing before you start. Connecting a social account is done in Postpone rather than through the API — you link an account once in the app, and from then on the API publishes from it. That is deliberate: it is what removes the per-platform OAuth client, the app review and the token refresh loop from your side of the integration.

The other is Reddit. The API sets up the whole submission — title, body, subreddit, flair, timing — but the post itself goes out through notification posting, in line with Reddit's rules, so you complete it natively when the notification arrives. Everything else on the calendar publishes without you.

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

### **How is the API different from Postpone’s built-in automations and the Zapier app?**

Mostly in reach and in who writes the logic. Built-in automations watch a feed and post to seven platforms: X/Twitter, LinkedIn, Bluesky, Threads, Mastodon, Facebook and Reddit. The Zapier integration is the no-code path from the rest of your stack and covers Reddit, X/Twitter, Instagram, TikTok, Threads, Facebook Pages, LinkedIn, YouTube Shorts and Bluesky.

The API is the only one of the three that reaches all twelve platforms, and the only one where the trigger is your own code rather than a feed item or a Zap. Most teams end up using more than one: an automation for the blog, the API for the part that is specific to their product.

[**See how automations work **](https://www.postpone.app/features/social-media-automation)

### **Do I need a paid plan to use the API?**

You need a plan that includes API access and a confirmed email address. Keys are created under Settings → API, carry an expiry date you set, and are shown once at creation.

Rate limits are applied per user: 300 requests per 10 minutes on every paid plan and the free trial, which are the plans that include the API. Going over returns a 429 with X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset headers, so a client can back off precisely rather than guessing.

[**Compare plans **](https://www.postpone.app/plans)

### **Can I pull analytics through the API, or is it publishing only?**

Analytics too. 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 — which is what makes client reports and internal dashboards possible without exporting anything by hand.

[**What Postpone tracks **](https://www.postpone.app/features/analytics)

### **Can the API see what is already in my Content Library?**

Yes, and that is the query that keeps an automated queue from repeating itself. You can search the library by name, file type or label, attach a file to a post by name or ID instead of re-uploading it, and filter to media that has never been used, is not currently scheduled, or has never been sent to a given subreddit.

[**Inside the Content Library **](https://www.postpone.app/features/content-library)

### **What happens if a post I scheduled through the API fails?**

It becomes a failed post in Postpone rather than disappearing. Content the API rejects outright comes back as an error on the request itself; a post a platform refuses at publish time lands under History → Failed Posts, where you can see why and reschedule it. Failed posts are not counted against your monthly post limit.

[**How post limits are counted **](https://help.postpone.app/scheduling/publishing/post-limits)