Skip to main content
SocialAPI is a REST API and MCP server that reads and answers comments, direct messages (DMs), mentions, and reviews on connected social accounts, and publishes posts to them. Five objects shape every endpoint: brand, account, post, interaction, and capability. A brand groups accounts. An account is one connected social account. You publish a post to one or more accounts. Interactions arrive on an account. Capabilities tell you which actions a platform allows on an interaction.

Brand

A brand is the top-level group of connected accounts: one business, client, or location. Every account belongs to exactly 1 brand. Every interaction belongs to the account that received it. A post goes to 1 or more accounts as targets[].
  • A new SocialAPI account starts with 1 brand named “Default”. Rename or delete it like any other brand.
  • Your plan sets how many brands you can create. Pricing pages call a brand a profile. See Plans and usage, and read your current count with GET /v1/usage (Check your usage).
  • A brand-restricted API key sees only its brands. Use brands to keep agency clients apart. See Brand restrictions.
  • Creating a brand is not idempotent. Brand names are not unique, so a retried POST /v1/brands creates a duplicate. See Create requests are not idempotent.

Account

An account is one connected social account: an Instagram account, a Facebook login with its Pages, a YouTube channel, or a Google Business Profile location. Its ID starts with acc_, and you pass it to every endpoint that acts on the account.
You connect an account with POST /v1/accounts/connect and send the person through the platform’s consent screen. SocialAPI’s own app connects most platforms, so you register nothing. X, Telegram, and Bluesky use your own app or credentials. See Connect accounts and Platform apps. An account’s status is active, reconnect_recommended, or token_expired. Reconnecting keeps the account’s ID. See Account status. An account’s permissions limit what it can do on its platform. null means every permission, and effective_permissions lists the ones the account can use now. See Account permissions.

Post

A post is one piece of outbound content. One POST /v1/posts call can send it to 1 or more accounts. Each account it goes to is a target in targets[], with its own status, platform_post_id, permalink, error, and metrics. That split lets one post report “published on Instagram, failed on Facebook”.
  • A request publishes only with publish_now or scheduled_at. With neither, POST /v1/posts saves a draft.
  • A post is draft, scheduled, publishing, published, partial, failed, or cancelled. A target is pending, publishing, published, failed, or unpublished. See Post status.
  • An HTTP success means SocialAPI accepted the post. Delivery to each platform finishes afterwards: read the post again or wait for a post.* webhook event. See Track post delivery.
  • Metric names are the same on every platform. Where a platform reports a count, it uses the keys likes, comments, shares, and saves. A key the platform does not report is 0. A Google Business Profile target has no metrics object, or one whose four keys are all 0. LinkedIn and Pinterest targets return 501 resource.not_supported. Instagram, TikTok, YouTube, and Zalo add keys such as views: see Analytics.

Interaction

An interaction is anything inbound on an account: a comment on one of your posts, a DM, a mention, or a review. You read interactions with the inbox endpoints, and SocialAPI also sends them to your server as webhook events. Comments, reviews, DMs, and mentions have different IDs and different item shapes: Treat every ID as an opaque string. See IDs. A comment returned by the REST API is a flat object:
The same comment in a comment.received webhook event is nested: author holds the person and content holds the text. Webhook events and the mentions list share that nested shape. See Interaction payload.

Capability

A capability is what one platform lets you do with one kind of feature: reply to a comment, hide it, like it, send a private reply, send a DM, reply to a review. Platforms differ, so SocialAPI reports capabilities instead of making you branch on platform names. Each comment carries a capabilities object with can_reply, can_delete, can_hide, can_like, and can_private_reply. Read it before you show a button or call an action. An action the platform does not support returns 501 with error.code: "resource.not_supported". Retrying does not change that answer. For the whole picture, Supported platforms compares every platform, and each platform page lists its own Capabilities table.
Last modified on October 13, 2026