GET
/api/v4/social/brands브랜드 목록 조회
계정의 소셜 브랜드 목록을 페이지 단위로 반환하며, 각 브랜드의 프로필, 시간대 및 연결된 채널 수를 포함합니다.
매개변수
쿼리
| 이름 | 유형 | 필수 | 설명 | 기본값 |
|---|---|---|---|---|
| filters | string | 선택 | 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. | — |
| page | integer | 선택 | 1-based page number. Defaults to 1. | — |
| size | integer | 선택 | Rows per page. Defaults to 20. | — |
응답
200A page of brands plus `pageInfo` for paging.
{ "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"