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
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
campaignNo | long | 예 | 캠페인 번호 |
Query Parameters
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
snsType | string | 아니오 | SNS 타입 (INSTAGRAM, YOUTUBE, TIKTOK 등) |
category | string | 아니오 | 카테고리 |
country | string | 아니오 | 캠페인 진행 국가. 과거 캠페인의 nation 과 비교 |
creatorDialCode | string | 아니오 | 크리에이터 국적(전화 국가번호, 예: +81). 81 처럼 + 없이 보내도 됩니다. 본인인증 전 가입자는 국가번호가 없어 이 필터를 쓰면 제외됩니다 |
cursor | int | 아니오 | 마지막 조회 influence no |
size | int | 아니오 | 조회 개수 (기본 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 객체
| 필드 | 타입 | 설명 |
|---|---|---|
items | Array | 인플루언서 목록 |
nextCursor | Integer | 다음 페이지 커서 (없으면 null) |
hasNext | Boolean | 다음 페이지 존재 여부 |
totalCount | Long | 전체 개수 (첫 페이지에만 제공) |
items 배열 내 각 항목
| 필드 | 타입 | 설명 |
|---|---|---|
influenceNo | Integer | 인플루언서 번호 |
name | String | 인플루언서 이름 |
profileImage | String | 프로필 이미지 URL |
followerCount | String | 팔로워수 |
averageViewCount | String | 평균조회수 |
tel | String | 전화번호 |
email | String | 이메일 |
rankScore | String | 랭크 점수 (priceTier) |
flags | Array<FlagDto> | 인플루언서 플래그 목록. 전역·캠페인을 모두 합친 값 |
globalFlags | Array<FlagDto> | 전 캠페인 공통 비고. 유저풀은 캠페인 밖 화면이라 캠페인 전용 비고는 내려가지 않는다 |
flags 배열 내 각 항목 (FlagDto)
| 필드 | 타입 | 설명 |
|---|---|---|
id | Long | 플래그 ID |
text | String | 표시할 텍스트 |
color | String | HEX 색상 코드 (예: #FF6F00) |
category | String | 카테고리 (POSITIVE: 화이트리스트, NEGATIVE: 블랙리스트, NEUTRAL: 중립) |
isPreset | Boolean | 프리셋 플래그 여부 |
presetCode | String | 프리셋 코드 (프리셋인 경우, 예: RECOMMENDED, BUSINESS_PREFERRED) |
count | Integer | 같은 문구가 그 범위 안에 몇 건인지 |
scope | String | 적용 범위 (GLOBAL: 전 캠페인 공통, CAMPAIGN: 해당 캠페인 전용) |
collabNo | Integer | 캠페인 번호. scope=GLOBAL 이면 null |
source | String | 등록 출처 (ADMIN / AUTO_LABEL / BLACKLIST) |
editable | Boolean | 어드민이 삭제할 수 있는지. source=ADMIN 일 때만 true |