GET/v1/profiles

List profiles

Returns a paginated list of every profile in your developer account, ordered by creation time with the oldest first. Use the optional externalId, limit, and offset parameters to narrow the results down or page through them.

curl https://api.synposter.com/v1/profiles?limit=50 \
  -H "x-api-key: YOUR_API_KEY"

Query parameters

FieldTypeRequiredDescription
externalIdstringNoNarrows the results down to the single profile that has this externalId, useful when you only know the user's ID in your own database.
limitintegerNoHow many profiles to return per page. Must be between 1 and 100; defaults to 50 when omitted.
offsetintegerNoHow many profiles to skip before returning results, used to page through the list. Defaults to 0.

Response (200)

json
{
  "data": [
    {
      "id": "9b3a...",
      "name": "Alice's Brand",
      "externalId": "user-42",
      "metadata": { "tier": "pro"},
      "createdAt": "...",
      "updatedAt": "..."
    }
  ],
  "pagination": {
    "limit": 50,
    "offset": 0,
    "total": 1,
    "hasMore": false
  }
}
FieldTypeRequiredDescription
dataobject[]YesAn array of profile objects, ordered by creation time with the oldest first. Empty if you have no profiles or the filter didn't match.
data[].idstringYesSynposter's UUID for the profile.
data[].namestringYesThe human-readable label that was set when the profile was created.
data[].externalIdstring | nullYesYour own identifier for this profile, or null if one was never set.
data[].metadataobject | nullYesThe arbitrary JSON metadata stored on the profile. Null if none was set.
data[].createdAtstringYesISO 8601 timestamp of when the profile was created.
data[].updatedAtstringYesISO 8601 timestamp of the last time the profile was updated.
pagination.limitintegerYesThe page size that was applied. Echoes the limit query parameter, or the default of 50.
pagination.offsetintegerYesThe offset that was applied to this page. Echoes the offset query parameter, or 0.
pagination.totalintegerYesTotal number of profiles in your account that match the filter, across every page.
pagination.hasMorebooleanYesTrue when more profiles exist beyond this page. Increment offset by limit to fetch the next one.

Status codes

200The list was returned successfully. The data array may be empty if you have no profiles, or if the filter didn't match any.
400The limit or offset query parameter was out of range or not an integer.
401The API key was missing or invalid.
500Something failed on Synposter's side. Safe to retry.