Interaction schema.
SocialAPI’s REST API is shaped around five nouns. Once you know what each one means, every endpoint slots into place: brands group accounts, accounts hold posts and interactions, and capabilities tell you which actions are valid for any given interaction.
This page is a short tour. The API Reference has the exhaustive field-by-field schema for each one.
Brand
A Brand (called a social profile in pricing) is the top-level grouping in SocialAPI. One brand corresponds to one business, client, or location. All connected social accounts, posts, and interactions live under a brand. New accounts start with a brand named “Default”, created automatically at signup: rename or delete it freely. Brands matter for two reasons:- Billing. Plans are sized in social profiles (brands). Free includes 2, Starter 10, Pro 50, Business 200, Enterprise unlimited.
- Isolation. Accounts under one brand cannot see accounts under another. Use brands to keep agency clients separated, or to split staging from production.
Profile units
The numbers above are unit limits, not a strict brand count. Billing counts profile units: each brand costs one unit. Profile units track brand count only, Facebook Pages do not add units. Facebook Pages have their own limit instead: each brand can connect up to 5 Facebook Pages (see Facebook: one login, many brands), accumulated one at a time through the Facebook logins endpoints. This is a hard cap, not a billed allowance: there is no charge for staying under it, and assigning a Page beyond it returns403 platform.facebook.page_cap rather than a unit-limit error.
GET /v1/usage reports where you stand:
/v1/brands for the full schema and CRUD endpoints.
Treat IDs as opaque strings. Brands, posts, and invites are UUIDs; accounts are prefixed with
acc_. Do not parse them or assume a format, and store them as text. See IDs are opaque strings.Brand creation is not idempotent: there is no external_id or idempotency key, and brand names are not unique, so a retried POST /v1/brands creates a duplicate. Persist the returned brand ID immediately, and check for an existing brand before creating another.Account
An Account is a connected social account under a brand. One brand can hold many accounts, across any mix of platforms. SocialAPI stores the OAuth tokens (encrypted at rest) and refreshes them automatically. You connect an account by callingPOST /v1/accounts/connect and walking the user through OAuth. After connection, the account ID (prefixed acc_) is what you pass to every account-scoped endpoint.
metadata object, is documented in Connectors overview.
See also: Authentication, OAuth.
Post
A Post is one piece of outbound content. A post can target multiple accounts at publishing time, so a singlePOST /v1/posts call can fan out to Instagram, Facebook, and Threads in one shot.
Internally a post has two parts: the post itself (text, media, scheduled time) and a per-platform delivery row that tracks status, errors, and engagement metrics for each target. That split is what lets a single post object report “published on Instagram, failed on Facebook” cleanly.
draft, scheduled, publishing, then published (or partial, failed). See the Posts tab for per-platform field references.
Interaction
An Interaction is anything inbound: a comment on one of your posts, a DM, a review, or a mention. Comments, reviews, and mentions are proxied live from the platform; DM conversations and messages are stored in SocialAPI’s database to support threading and pagination. The API mints stable IDs so your app can reference any interaction across calls. Interaction IDs encode their type as a prefix:Capability
A Capability is a per-platform per-feature flag returned on every interaction so your code knows which actions are valid right now. Instead of branching on platform names (“if instagram, can like; if linkedin, can not”), you read thecapabilities object on the interaction and disable UI controls accordingly.
false, the API returns 501 with error.code: "resource.not_supported". Treat 501 as a permanent platform limitation, not a bug. See Platform support for the full per-platform breakdown.