GET/api/v4/social/brands

브랜드 목록 조회

계정의 소셜 브랜드 목록을 페이지 단위로 반환하며, 각 브랜드의 프로필, 시간대 및 연결된 채널 수를 포함합니다.

API 키가 필요합니다. 헤더 형식과 키 교체는 인증을 참고하세요.

매개변수

쿼리

이름유형필수설명기본값
filtersstring선택JSON-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.—
pageinteger선택1-based page number. Defaults to 1.—
sizeinteger선택Rows per page. Defaults to 20.—

응답

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.

계정의 브랜드를 한 번에 한 페이지씩 나열합니다. 각 행은 GET /social/brands/{brandId}가 단일 브랜드에 대해 반환하는 것과 동일한 브랜드 객체이므로, 일반적으로 추가 요청 없이 목록만으로 브랜드 선택기를 표시할 수 있습니다.

사용 사례: 자체 UI의 브랜드 선택기. 사용자가 게시 화면을 열 때 한 번 호출하고 각 행에 profileName과 logo를 표시합니다. connectedChannelCount가 0인 브랜드는 아직 연결된 소셜 계정이 없어 게시할 수 없으므로, 배지를 표시하고 사용자를 연결 링크로 안내합니다. pageInfo.hasNextPage가 true인 동안 page와 size로 페이지를 이동합니다.

사용 사례: 저장된 레코드 대조. 매일 밤 모든 페이지를 순회하면서 id를 생성 시 저장한 브랜드 ID와 대조합니다. 기본 목록에서 사라진 브랜드는 보관 처리된 것이므로, 조회하려면 filters={"statuses":["ARCHIVED"]}를 전달합니다.

참고 사항.

  • id는 Social API의 다른 곳에서 brandId 경로 토큰으로 사용되고 요청 본문에서는 socialProfileId로 사용되는 일반 UUID입니다.
  • 필터는 별도의 매개변수가 아니라 filters 쿼리 매개변수에 JSON으로 인코딩된 하나의 문자열로 전달됩니다. 이 문자열을 URL 인코딩합니다. filters를 전송하는 경우 반드시 statuses를 포함해야 하며, profileName은 선택적으로 함께 포함할 수 있습니다.
  • 페이지 처리는 Locations 및 Reviews 엔드포인트처럼 커서 기반이 아니라 오프셋 기반(page / size)입니다. pageInfo.total은 이 페이지의 브랜드 수가 아니라 조건에 일치하는 브랜드의 총수입니다. pageInfo.totalEngagementPosts와 totalPublishedPosts는 게시물 목록과 공유하는 게시물 카운터이며, 여기서는 0입니다.
  • connectedChannelCount는 활성 연결만 집계하며, 연결이 해제된 채널은 즉시 집계에서 제외됩니다. 채널 자체를 조회하려면 GET /social/brands/{brandId}/connections를 호출합니다.
  • timezone.tzCode는 해당 브랜드의 모든 예약 시간을 해석하는 기준이 되는 IANA 식별자이며, 나머지 3개의 시간대 필드는 표시용 레이블입니다.
  • 대조할 브랜드 수 상한은 없습니다. API 요금제에서는 브랜드 수에 제한이 없으므로 이 목록의 길이는 참고용입니다. 수가 제한되는 항목은 연결이며, GET /social/limits에서 해당 수를 확인합니다. 브랜드를 보관 처리하면 연결은 즉시 오프라인으로 전환되지만, 해당 슬롯은 청구 기간이 끝날 때까지 계속 maxConnections에 포함됩니다. 따라서 이 목록에서 사라진 브랜드도 갱신 시점까지 슬롯을 유지할 수 있습니다.
Request
curl -X GET 'https://listingsapi.com/api/v4/social/brands' \  -H "Authorization: API $LISTINGSAPI_KEY"