How plans work
SocialAPI.AI uses resource-based limits. Every plan gives you a fixed number of brands, posts per month, interactions per month, media storage, and export quotas. A brand groups all social accounts for one business, client, or project. Connect Instagram, TikTok, LinkedIn, and more under one brand, and it counts as one unit. All plans have access to all platforms, DMs, and features. Plans differ only by resource limits. Upgrade at app.social-api.ai → Billing. Compare every tier on the plans and pricing page.All plans include managed platform apps for Meta (Instagram, Facebook, Threads), Google, TikTok, LinkedIn, and YouTube - no developer registration or app review on your side. Twitter is BYOK on every plan (setup guide). See Platform credentials for details.
Plan catalog endpoint
To read the full plan catalog programmatically instead of hardcoding the table below, call:profiles is the count of social profiles (brands) the plan allows. Prices are in USD. A value of -1 means unlimited for any field under limits, and custom pricing for monthly_price_usd / annual_price_usd (shown on the Enterprise tier). popular flags the tier highlighted by default on pricing surfaces.
Plan limits
Export and analytics limits
Each plan includes different export quotas for analytics reports.“Unlimited” in the table above means the feature is not capped. In the API response, unlimited values are represented as
-1.What counts as a post or interaction
Post operations (each consumes 1 post from your monthly allowance):create_post- publishing or scheduling a new post (saving a draft is free; the credit is charged when you publish it)publish_post- publishing an existing draft or scheduled post (POST /v1/posts/{pid}/publish)retry_post- retrying a failed post
reply- replying to a comment, review, or mentionsend_dm- sending a direct message
Only the Free plan enforces post and interaction limits. All paid plans have unlimited posts and interactions. The counters are tracked but never block requests.
Billing periods
- Paid plans: Aligned with your Stripe subscription cycle. The
period_startandperiod_endcome directly from Stripe. - Free plan: Rolling 30-day window from your account creation anniversary date.
When you hit a limit
When you exceed your monthly post or interaction allowance, the API returns HTTP429:
error.code set to validation.interaction_limit_exhausted. Your counters reset at the start of your next billing period. To get more capacity immediately, upgrade your plan.
The
billing.post_limit code is emitted by the bulk-import endpoint (POST /v1/posts/import) when the batch size exceeds your remaining post allowance.413:
Checking your usage
-1 means unlimited (all paid plans).
Checking storage usage
limit_bytes value of -1 means unlimited storage.
Response headers
Post and interaction operations include usage headers in the response:Platform rate limits
Platforms (Instagram, Facebook, etc.) have their own rate limits independent of your plan limits. When a platform rejects a request due to its own throttling, you receive:instagram segment is replaced with the actual platform name (facebook, tiktok, etc.). Match on the platform.*.rate_limit shape to handle all platforms.
This does not consume your post or interaction quota. Retry after a short wait (typically a few minutes).
Platform publishing ceilings
Each platform sets its own publishing limits, which apply in addition to your plan quota. These are the platforms’ own published figures:
We monitor each platform’s reported usage and pace requests to stay within the platform’s ceiling. SocialAPI itself adds no per-request throttle beyond your monthly plan quota, and read operations (inbox, reviews, comments) are not throttled on our side. If you run scheduled, unattended publishing across many accounts, design against the platform ceilings above.
Handling 429s
If the rate-limit enforcement backend (Redis) is unavailable, the API fails open. Requests are allowed through rather than blocked. This prevents infrastructure downtime from taking down your integration.