Glowb Dev Docs
Admin APIAdmin Dashboard API

GET /ai/admin/dashboard/{campaignNo}/user-pool

유저 풀 조회 (가입자)

유저 풀 조회

해당 캠페인에 신청하지 않은 인플루언서 목록을 조회합니다. Cursor 기반 페이지네이션을 사용합니다.

  • SNS, 카테고리, 캠페인 국가로 과거 캠페인 찾기
  • 해당 캠페인 수행 경험이 있는 인플루언서 조회
  • 크리에이터 국적(전화 국가번호)으로 추가 필터
  • 현재 캠페인 신청자 제외
  • priceTier 높은 순 정렬
  • 인플루언서 플래그 포함

블랙리스트 인플루언서는 진행 상태와 무관하게 결과에서 제외됩니다. 섭외 후보 탐색 화면이라 다른 캠페인에서 선정된 이력이 있어도 노출되지 않습니다.

모든 필터는 보낸 것만 적용합니다. 보내지 않은 조건은 전체로 봅니다(현재 캠페인 값으로 채우지 않음). 예: snsType + creatorDialCode 만 보내면 카테고리·캠페인 국가와 무관하게 조회합니다. snsType 을 보내지 않으면 팔로워수·rankScore 는 현재 캠페인 SNS 기준으로 채워집니다(필터에는 영향 없음).

HTTP 요청

GET /ai/admin/dashboard/{campaignNo}/user-pool?snsType={snsType}&category={category}&country={country}&creatorDialCode={creatorDialCode}&cursor={cursor}&size={size}
Authorization: Bearer {access_token}

Path Parameters

파라미터타입필수설명
campaignNolong예캠페인 번호

Query Parameters

파라미터타입필수설명
snsTypestring아니오SNS 타입 (INSTAGRAM, YOUTUBE, TIKTOK 등)
categorystring아니오카테고리
countrystring아니오캠페인 진행 국가. 과거 캠페인의 nation 과 비교
creatorDialCodestring아니오크리에이터 국적(전화 국가번호, 예: +81). 81 처럼 + 없이 보내도 됩니다. 본인인증 전 가입자는 국가번호가 없어 이 필터를 쓰면 제외됩니다
cursorint아니오마지막 조회 influence no
sizeint아니오조회 개수 (기본 15)

응답

성공 응답 (200 OK)

{
  "status": 200,
  "code": null,
  "message": "유저 풀 조회 성공",
  "data": {
    "items": [
      {
        "influenceNo": 123,
        "name": "크리에이터A",
        "profileImage": "https://...",
        "followerCount": "50000",
        "averageViewCount": "5000",
        "tel": "010-1234-5678",
        "email": "creator@email.com",
        "rankScore": "TIER_A",
        "flags": [
          {
            "id": 1,
            "text": "추천",
            "color": "#FF6F00",
            "category": "POSITIVE",
            "isPreset": true,
            "presetCode": "RECOMMENDED"
          },
          {
            "id": 2,
            "text": "기업 선호",
            "color": "#4CAF50",
            "category": "POSITIVE",
            "isPreset": true,
            "presetCode": "BUSINESS_PREFERRED"
          }
        ]
      },
      {
        "influenceNo": 456,
        "name": "크리에이터B",
        "profileImage": "https://...",
        "followerCount": "30000",
        "averageViewCount": "3000",
        "tel": "010-5678-1234",
        "email": "creator2@email.com",
        "rankScore": "TIER_B",
        "flags": []
      }
    ],
    "nextCursor": 456,
    "hasNext": true,
    "totalCount": 120
  }
}

응답 필드 설명

data 객체

필드타입설명
itemsArray인플루언서 목록
nextCursorInteger다음 페이지 커서 (없으면 null)
hasNextBoolean다음 페이지 존재 여부
totalCountLong전체 개수 (첫 페이지에만 제공)

items 배열 내 각 항목

필드타입설명
influenceNoInteger인플루언서 번호
nameString인플루언서 이름
profileImageString프로필 이미지 URL
followerCountString팔로워수
averageViewCountString평균조회수
telString전화번호
emailString이메일
rankScoreString랭크 점수 (priceTier)
flagsArray<FlagDto>인플루언서 플래그 목록. 전역·캠페인을 모두 합친 값
globalFlagsArray<FlagDto>전 캠페인 공통 비고. 유저풀은 캠페인 밖 화면이라 캠페인 전용 비고는 내려가지 않는다

flags 배열 내 각 항목 (FlagDto)

필드타입설명
idLong플래그 ID
textString표시할 텍스트
colorStringHEX 색상 코드 (예: #FF6F00)
categoryString카테고리 (POSITIVE: 화이트리스트, NEGATIVE: 블랙리스트, NEUTRAL: 중립)
isPresetBoolean프리셋 플래그 여부
presetCodeString프리셋 코드 (프리셋인 경우, 예: RECOMMENDED, BUSINESS_PREFERRED)
countInteger같은 문구가 그 범위 안에 몇 건인지
scopeString적용 범위 (GLOBAL: 전 캠페인 공통, CAMPAIGN: 해당 캠페인 전용)
collabNoInteger캠페인 번호. scope=GLOBAL 이면 null
sourceString등록 출처 (ADMIN / AUTO_LABEL / BLACKLIST)
editableBoolean어드민이 삭제할 수 있는지. source=ADMIN 일 때만 true

API 테스트

On this page