GET/api/v4/social/brands

List brands

Returns a paginated list of the social brands on your account, with each brand's profile, timezone and connected-channel count.

Requires an API key. See Authentication for header format and key rotation.

Parameters

Query

NameTypeRequiredDescriptionDefault
filtersstringoptionalJSON-encoded filter object with two fields. `statuses` (array of strings, **required inside the object**) selects which brand states to return: `ACTIVE` or `ARCHIVED`. `profileName` (string, optional) is a case-insensitive substring match on the brand name. Omit the parameter entirely to return active brands.
pageintegeroptional1-based page number. Defaults to 1.
sizeintegeroptionalRows per page. Defaults to 20.

Responses

200A page of brands plus `pageInfo` for paging.
Response
{  "data": {    "listSocialProfiles": {      "profiles": [        {          "id": "6f2c9a41-7b0e-4d55-9a2f-3c8e1d47b902",          "profileName": "Jenny Home",          "archived": false,          "logo": null,          "profileLogo": null,          "siteUrl": "https://jennyhome.example",          "countryIso": "US",          "bio": "Handmade furniture for real homes.",          "businessIntent": "A family-run home furnishings store selling handmade furniture and textiles.",          "categories": ["Furniture Store", "Home Goods"],          "brandHashtags": ["jennyhome", "handmadefurniture"],          "competitorHashtags": [],          "connectedChannelCount": 3,          "timezone": {            "label": "(GMT-05:00) Eastern Time",            "tzCode": "America/New_York",            "name": "Eastern Standard Time",            "utc": "-05:00"          },          "contentPreferredLanguage": "en"        },        {          "id": "a90f7c22-5db1-4e83-9f40-2b7c6a1e5d33",          "profileName": "Jenny Home Eastside",          "archived": false,          "logo": null,          "profileLogo": null,          "siteUrl": null,          "countryIso": "US",          "bio": null,          "businessIntent": "general",          "categories": [],          "brandHashtags": [],          "competitorHashtags": [],          "connectedChannelCount": 0,          "timezone": {            "label": "(GMT-06:00) Central Time",            "tzCode": "America/Chicago",            "name": "Central Standard Time",            "utc": "-06:00"          },          "contentPreferredLanguage": "en"        }      ],      "pageInfo": {        "total": 11,        "hasNextPage": true,        "totalEngagementPosts": 0,        "totalPublishedPosts": 0      }    }  }}
401Unauthenticated, missing or invalid API key.

Lists the brands on your account, one page at a time. Each row is the same brand object GET /social/brands/{brandId} returns for a single brand, so a list is usually enough to render a brand picker without a second round trip.

Use case: a brand picker in your own UI. Call this once when the user opens your publishing screen and render profileName and logo per row. A brand whose connectedChannelCount is 0 has no social account attached yet and cannot publish; badge it and route the user to a connection link. Page with page and size while pageInfo.hasNextPage is true.

Use case: reconciling your records. Walk every page nightly and match id against the brand IDs you stored at create time. A brand that has disappeared from the default listing has been archived; pass filters={"statuses":["ARCHIVED"]} to see it.

Notes.

  • id is the plain UUID used as the brandId path token elsewhere in the Social API, and as socialProfileId in request bodies.
  • Filters travel as one JSON-encoded string in the filters query parameter, not as separate parameters. URL-encode it. If you send filters at all, it must contain statuses; profileName is optional alongside it.
  • Paging is offset-based (page / size), not cursor-based like the Locations and Reviews endpoints. pageInfo.total is the total number of matching brands, not the number on this page. pageInfo.totalEngagementPosts and totalPublishedPosts are post counters shared with the post list and are 0 here.
  • connectedChannelCount counts active connections only; a disconnected channel drops out of the count immediately. For the channels themselves, call GET /social/brands/{brandId}/connections.
  • timezone.tzCode is the IANA identifier every schedule on that brand is resolved against; the other three timezone fields are display labels.
  • There is no brand cap to reconcile against. Brands are unlimited on API plans, so the length of this list is informational. The number that is capped is connections: read it from GET /social/limits. Archiving a brand takes effect immediately and releases its connections at the same moment, so a brand that has left this list has already given its slots back.
Request
curl -X GET 'https://listingsapi.com/api/v4/social/brands' \  -H "Authorization: API $LISTINGSAPI_KEY"