Skip to main content
Every SocialAPI plan includes every platform and every feature, with two exceptions listed below. Plans differ by allowances: how many brands you can create, how many posts and interactions you can send per billing period, how much media you can store, how long your history is kept, and how many analytics exports you can run. A brand groups the connected accounts of one business, client, or project. Pricing pages call a brand a “profile”: the two words mean the same thing. Compare prices on the pricing page and change your plan in the dashboard under Billing.

Endpoints

Plan allowances

Prices are in USD. 100 MB is 104,857,600 bytes. What each limit returns when you reach it: Two features depend on the plan rather than on an allowance:
  • WhatsApp template messages need a paid plan. On the Free plan, POST /v1/platforms/whatsapp/accounts/{id}/send-template returns 403 whatsapp.paid_plan_required. Replies to people who messaged you first work on every plan. See WhatsApp.
  • Visual analysis in exports (include_vision) needs a paid plan. On the Free plan, SocialAPI ignores include_vision: true and runs the export without it.

Profile packs

On the Pro (Full Send) and Business (Empire) plans, your brand allowance grows in Profile packs of 50 brands. When your brand count reaches the scale threshold of your allowance (90% by default), SocialAPI adds a pack, within the pack budget you set. Packs you no longer need are released at the end of the billing period. Set the threshold and the budget in the dashboard under Billing. Each pack held raises brands_limit in GET /v1/usage by 50.

History and export allowances

Your SocialAPI account runs 1 export at a time on every plan. When an export cannot start:
  • The billing period’s export allowance is used up: 429 billing.export_limit. It resets at the start of the next billing period.
  • The same connected account was exported less than the wait above ago: 429 billing.export_cooldown.
  • Another export is still running: 429 billing.export_concurrent.
Pinterest accounts cannot be exported on any plan: an export returns 400 account.exports_not_supported.

The plan catalog

GET /v1/billing/plans returns every plan with its prices and allowances, ordered from cheapest to most expensive. Read it instead of hardcoding the table above. Any API key can call it, and it costs no credits.
Response (HTTP 200), shortened to 2 of the 5 plans:

What counts as a post or interaction

Post and interaction credits are counted on plans with a post or interaction allowance (the Free plan). On plans where both are unlimited, nothing is counted and posts_used and interactions_used stay at 0. 1 post credit for each of these requests:
  • POST /v1/posts with publish_now: true or a scheduled_at. Saving a draft costs nothing.
  • POST /v1/posts/{pid}/publish, which publishes a draft or a scheduled post. It costs 1 credit even when the post was scheduled with POST /v1/posts, which already cost 1 credit.
  • POST /v1/posts/{pid}/retry.
A post costs 1 credit whatever the number of targets. 1 interaction credit for each of these requests:
  • A public reply to a comment: POST /v1/inbox/comments/{postId}.
  • A reply to a review: POST /v1/inbox/reviews/{id}/reply.
  • A reply to a mention: POST /v1/accounts/{id}/mentions/reply.
  • A DM: POST /v1/inbox/conversations/{id}/messages. One request costs 1 credit, even when it sends more than one message.
  • A WhatsApp template: POST /v1/platforms/whatsapp/accounts/{id}/send-template.
No credit for everything else, including private replies, hiding, liking, or deleting a comment, reactions to messages, every read, and every account, brand, key, webhook, and Automation operation. The same rules apply to MCP tools and to the actions an Automation carries out: each costs what the equivalent API request costs.

When a credit comes back

SocialAPI gives the credit back when:
  • Any request that costs a credit fails with a validation.* error.
  • POST /v1/posts fails with publishing.validation_failed.
  • POST /v1/posts, POST /v1/posts/{pid}/publish, or POST /v1/posts/{pid}/retry fails with 429 publishing.velocity_limit.
  • Every target of POST /v1/posts with publish_now: true, or of POST /v1/posts/{pid}/publish, fails.
  • SocialAPI refuses a reply or DM before sending it because the conversation’s messaging window is closed (see Direct messages).
A comment reply, DM, review reply, or mention reply refused with 403 account.permission_missing is never charged: see Permissions. Any other failure keeps the credit spent. That includes a request the platform refuses (for example 429 platform.{platform}.rate_limit on a reply or DM), a 409 resource.conflict for duplicate content, a post that fails on only some of its targets, and a retry that fails again.

Billing periods

Allowances reset at the start of each billing period.
  • Paid plans: the billing period is your subscription’s current period. It starts on the date you subscribed and renews with each payment.
  • Free plan: the billing period starts at 00:00 UTC on the day of the month your SocialAPI account was created, and ends at the same time on that day of the next month.
period_start and period_end in GET /v1/usage give the exact bounds of the current period.

Check your usage

GET /v1/usage returns what you used in the current billing period and your allowances. Any API key can call it, and it costs no credits.
Response (HTTP 200) for a SocialAPI account on the Free plan:
GET /v1/media/storage returns your media storage: used_bytes, limit_bytes (-1 means unlimited), and count, the number of stored files. Any API key can call it, whatever its scopes, and it costs no credits.

Usage headers

Responses also report usage in headers, so you can track it without calling GET /v1/usage:

When you reach an allowance

Over the post or interaction allowance, the request returns HTTP 429 and nothing is sent:
The interaction allowance returns the same shape with validation.interaction_limit_exhausted. Both reset at period_end. To continue before then, upgrade your plan. POST /v1/posts/import checks the allowance before it creates anything. When the CSV holds more valid rows than you have post credits left, drafts included, it returns 429 billing.post_limit and creates no post. The posting velocity caps are separate from plan allowances: upgrading does not raise them. See Rate limits.

Change or cancel your plan

Change or cancel your plan in the dashboard under Billing. A cancelled subscription moves your SocialAPI account to the Free plan at the end of the billing period. When a plan change lowers your allowances:
  • Brands above the new allowance stay. Creating another brand returns 403 billing.brands_limit until you are below the allowance.

Past-due accounts

Your SocialAPI account becomes past due when a subscription payment fails for the second time (the first charge and one automatic retry). While it is past due:
  • API: every endpoint returns 402 billing.past_due, except every method of /v1/users/me and every /v1/billing/* endpoint, which stay available so you can pay.
  • MCP server: every request returns HTTP 402 with the code billing.past_due.
  • Webhooks: SocialAPI delivers no events to your webhook endpoints. Events from this time are not queued, get no delivery record, and are not sent after you pay.
  • Automations: Automations carry out no actions and record no Firings.
  • Platform events: SocialAPI still records comments, messages, and other platform events. Read them with GET /v1/events after you pay, within your plan’s event history.
  • Scheduled posts: scheduled posts still publish at their scheduled time.
GET /v1/users/me shows the state: billing_blocked is true, billing_blocked_at is when it began, and billing_block_reason is past_due. Pay the open invoice in the dashboard under Billing to restore access. Access returns when the payment succeeds, with no request to make. If every automatic retry fails and the subscription is cancelled, your SocialAPI account moves to the Free plan and access returns on the Free plan’s allowances.

Use from an AI agent

  • Rate limits: posting velocity caps, and platform limits that apply on every plan
  • Errors: every billing.* code with its status
  • Media: uploads, storage, and the storage quota
  • Webhooks: event delivery and the delivery log
  • Automations: what each action costs
Last modified on October 19, 2026