Profiles

A profile represents one of your end users inside Synposter, typically a person, brand, or workspace in your application. Each profile owns all of the social accounts that particular user has connected through Synposter, and gives you a single place to address all of their handles at once.

How profiles fit into the data model

Synposter organizes everything in a three-level hierarchy. You sit at the top as the developer who built the integration. Below you, each one of your end users becomes a profile. And below each profile sits the set of social accounts that particular user has authorized. The diagram below shows how it looks in practice for two end users.

You (developer account)
├── Profile alice (your end user)
│ ├── Connected account: @alice on X
│ └── Connected account: Alice on LinkedIn
└── Profile bob (your end user)
└── Connected account: @bob on X

When one of your end users goes through the connect flow, the new connected account they create gets attached to whichever profile you specified. Later, when you publish on that user's behalf, you address the post directly to one of their connected accounts; Synposter takes care of looking up the right profile and pulling the right credentials behind the scenes.

Fields on a profile

  • id — the Synposter UUID for this profile. Use this whenever an API call targets a specific profile, such as when starting a connect flow or deleting the profile.
  • name— a human-readable label, such as "Alice's Brand". This is mostly for your own dashboards and logs.
  • externalId (optional) — your own identifier for this end user (often the user's primary key in your database). Setting this lets you look the profile back up by your own ID instead of having to remember Synposter's UUID.
  • metadata (optional) — an arbitrary JSON object you can use to attach extra context to a profile, like the user's plan tier or sign- up source. Synposter never inspects this data; it's returned to you exactly as you stored it.
  • connected accounts — zero or more social handles that the end user has authorized through the connect flow.

When you sign up, Synposter automatically creates a Default profile for you so you can start experimenting with the API right away, without needing to write profile-management code first.

Plan limits

How many profiles you can create depends on the plan you're on. When you hit the cap, calling POST /v1/profiles comes back with 402 profile_limit_reached. Posts have their own separate quota (a one-time trial on Free, a monthly allowance on paid plans), which you can check at any time through the usage endpoint.

PlanProfilesPosts
Free120 (lifetime)
Starter102,000 / month
GrowthUnlimited5,000 / month
ScaleUnlimited20,000 / month

Connected accounts are not metered separately. Connect as many social handles as your end users want, within the profile cap.

Endpoints