Specs and limits

Social media API daily posting limits by platform

Socifyr enforces a rolling 24-hour posting cap per platform, from 10 posts on YouTube and 15 on TikTok up to 250 on Tumblr. Separately, the API allows 60 requests per minute on publishing endpoints, plans cap monthly uploads (30 on Free, unlimited on Pro and Business), and an API key can carry its own daily limit.
Published 4 min read

How many posts can I make per day on each platform?

Daily posting caps as enforced by Socifyr, from the shared platform constants
PlatformPosts per rolling 24 hours
YouTube10
TikTok15
Pinterest20
Facebook25
Reddit40
Instagram50
X50
Threads50
Bluesky50
Dev.to50
Hashnode50
Telegram100
Discord100
Mastodon100
Nostr100
Slack100
LinkedIn150
Tumblr250

The window is rolling, not a calendar day. A post you made at 3pm yesterday stops counting at 3pm today. When a platform rejects a post for hitting its cap, the API turns the raw error into a readable one: "Instagram's posting limit was reached. Instagram allows about 50 posts per 24 hours. Wait for the window to reset, then retry." Retrying immediately will not help; wait for older posts to age out.

How is that different from the API rate limit?

Layers of limits that can stop a post
LimitScopeValue
Platform daily capPer account on one platform, rolling 24 hSee table above
API rate limit, publishing endpointsRequests per minute60
API rate limit, list and fetch endpointsRequests per minute240
Plan uploadsPer workspace per monthFree 30, Pro and Business unlimited
Key dailyPostLimitPosts per UTC day through one keyYou choose
Key monthlyXSpendCentsCapX spend through one key per monthYou choose

A request over the API rate limit gets a 429 with a Retry-After header in seconds, and the SDK exposes it as RateLimitError. That is about request volume. It says nothing about whether a platform will accept the post. A post that reaches the platform and is rejected for its cap fails on that channel only.

Which limit will I hit first?

  • A single account posting often: the platform cap. TikTok at 15 and YouTube at 10 are the tightest.
  • An agent in a loop: the key's dailyPostLimit if you set one, otherwise the platform cap. See how to give an AI agent safe access.
  • A free workspace: 30 uploads per month is the binding limit. A post to five platforms counts as one upload.
  • Posting to X: the monthly X allowance (Free 5, Pro 50, Business 300). See X posting limits and costs.
  • A bulk job: 60 requests per minute. Use bulk-schedule (500 rows per call) instead of 500 calls.

How should my code handle a limit error?

typescript
import { RateLimitError, UsageLimitError } from '@socifyr/sdk'

try {
  await socifyr.uploads.text(params)
} catch (err) {
  if (err instanceof RateLimitError) {
    await sleep(60_000)        // too many requests, back off and retry
    return retry()
  }
  if (err instanceof UsageLimitError) {
    notifyOwner('Plan limit reached') // monthly uploads or X allowance, do not retry
    return
  }
  throw err
}

Treat the two differently. A rate-limit error is transient and worth retrying after a delay. A usage-limit error will not clear until the monthly reset or an upgrade. For platform-side cap failures after a post fans out, check the result with waitForCompletion and retry the failed channels later. Succeeded channels are skipped, so you cannot double-post.

Where do I check how much I have used?

bash
socifyr usage            # posts this month, accounts, storage, X posts
# MCP: ask your assistant to run get_usage
# SDK (Python): client.usage()

Self-hosted installs report every dimension as unlimited. Limits above apply to the hosted service. See the REST API guide for the full envelope and error shapes.

How do I pace posts to stay under a cap?

The cap applies to one connected account on one platform over a rolling window, so ten Instagram accounts each have their own allowance of 50. For a single busy account, spread posts across the day instead of sending them in a burst. With a cap of 15 on TikTok, one post every 90 minutes covers a full day with room to spare.

bash
# Fan a week of posts over time with bulk scheduling
socifyr schedule posts.csv

Scheduling needs a paid plan, but it is the clean way to pace output. On the free plan, pace it in your own code with a delay between calls.

What do these limits mean for AI agents?

An agent can reach a cap faster than a person and will keep trying unless told to stop. Give it a key-level dailyPostLimit that sits below the strictest platform cap it touches, and tell it in its instructions what to do on a 403: report and stop. Without that, a retry loop against TikTok's 15-post cap just burns requests against your 60-per-minute rate limit. The guardrails guide covers the setup.

Frequently asked questions

How many posts can I make to TikTok per day?

15 per rolling 24 hours in Socifyr's constants, the second tightest cap after YouTube at 10.

Is the daily limit a calendar day?

No. It is a rolling 24-hour window. A post stops counting 24 hours after it was made.

How many Instagram posts per day does Socifyr allow?

50 per rolling 24 hours.

What is the API rate limit?

60 requests per minute on publishing endpoints and 240 per minute on list and fetch endpoints. Over the limit returns 429 with a Retry-After header.

Does posting to five platforms use five uploads?

No. One request counts as one upload against your monthly plan allowance, however many accounts it targets.

Related pages

Try it with your own accounts

One API key, 18 platforms, and your agent never sees a platform token. The free plan needs no card.