Glowb Dev Docs
Admin APIAdmin Dashboard API

POST /ai/admin/dashboard/{campaignNo}/demo-applicants/manual

데모(목업) 후보 수기 등록

데모(목업) 후보 수기 등록

에이전트 후보 목록에 없는 계정을 어드민이 손으로 만들어 데모 후보로 넣습니다.

에이전트가 발굴한 후보를 담을 때는 POST .../demo-applicants 를 쓰세요. 이 API 는 후보 목록에 없는 계정을 임의로 만들 때만 씁니다. 개념·렌더 규칙·ID 규칙은 연동 가이드를 참고하세요.

HTTP 요청

POST /ai/admin/dashboard/{campaignNo}/demo-applicants/manual
Authorization: Bearer {access_token}
Content-Type: application/json

Path Parameters

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

Request Body

username 만 필수이고 나머지는 전부 선택입니다. 비운 필드는 null 로 남고 나중에 벌크 수정으로 채울 수 있습니다.

{
  "username": "creator_jp_1",
  "accountLink": "https://www.instagram.com/creator_jp_1/",
  "profileImage": null,
  "followerCount": 12400,
  "reelsAvgViews": 8300,
  "matchScore": 0.82,
  "fitScore": 0.75,
  "estimatedPrice": 300000,
  "quotePrice": 300000,
  "currentPrice": 250000,
  "defaultUnitPrice": 350000,
  "proposedPrice": 320000,
  "categoryTags": ["뷰티", "라이프스타일"],
  "recommendReason": "뷰티 카테고리 릴스 비중이 높고 ...",
  "flags": [
    { "presetCode": "BUSINESS_PREFERRED" },
    { "text": "직접 섭외", "category": "NEUTRAL", "color": "#9E9E9E" }
  ],
  "recentPosts": [
    {
      "postLink": "https://www.instagram.com/reel/ABC123/",
      "mediaUrl": "https://.../reel.mp4",
      "mediaType": "VIDEO",
      "publishedAt": "2026-07-10T14:30:00Z"
    },
    {
      "postLink": "https://www.instagram.com/p/DEF456/",
      "mediaUrl": "https://.../photo.jpg",
      "mediaType": "IMAGE",
      "publishedAt": "2026-07-08T10:00:00Z"
    }
  ],
  "adminVisible": false
}
필드타입필수설명
usernameString화면에 보일 크리에이터명
accountLinkString아니오인스타 프로필 링크
profileImageString아니오프로필 이미지 URL. 비우면 기본 아바타
followerCountInteger아니오팔로워 수
reelsAvgViewsDouble아니오릴스 평균 조회수
matchScoreDouble아니오적합도 — 어드민 리스트관리의 matchScore 로 노출
fitScoreDouble아니오AI 적합성 점수(0~1). 보관용
estimatedPriceInteger아니오예상가(랭크 가격)
quotePrice / currentPrice / defaultUnitPrice / proposedPriceLong아니오기준가 / 노출가 / 희망가 / 제안가
categoryTagsString[]아니오카테고리 태그
recommendReasonString아니오추천사
flagsobject[]아니오비고 칩. 프리셋은 presetCode 만, 커스텀은 text/category/color
recentPostsobject[]아니오최근 게시물(영상·이미지). postLink·mediaUrl·mediaType(VIDEO|IMAGEpublishedAt. 넣지 않으면 화면에 썸네일이 뜨지 않는다
adminVisibleBoolean아니오등록 즉시 광고주 노출 여부. 기본 false

값을 검증하지 않습니다. 목업이므로 실제 인스타 계정 존재 여부·팔로워 수 등을 대조하지 않습니다. 입력한 그대로 저장·노출됩니다.

응답

성공 응답 (200 OK)

{
  "status": 200,
  "message": "데모 후보가 등록되었습니다.",
  "data": 100000021
}
필드타입설명
dataLong생성된 데모 후보 ID. dummyItems[].applicationId 와 같은 값이며, 수정·삭제·노출 API 에 그대로 쓴다

파일이 있으면 먼저 업로드하세요. 영상·이미지는 업로드 URL 발급 API로 S3 presigned PUT 한 뒤, 받은 publicUrlprofileImage / recentPosts[].mediaUrl 에 담습니다.

영상·이미지는 recentPosts 로 직접 넣어야 합니다. 에이전트가 발굴한 후보는 크롤 DB(PG public.post)에 게시물이 있어 자동으로 채워지지만, 수기 등록 후보는 대응 계정이 없어 가져올 곳이 없습니다 (내부적으로 manual- 접두사 ID 를 부여해 에이전트 계정과 구분합니다). 비워 두면 화면에 썸네일이 뜨지 않아 데모 행만 도드라집니다.

수기 입력분이 크롤 조회보다 우선합니다. recentPosts 에 값이 있으면 그대로 쓰고, 비어 있을 때만 크롤 DB 를 조회합니다. 어드민 리스트관리와 광고주 대시보드 양쪽에 같은 규칙이 적용됩니다.

등록 후 수정

등록한 뒤에는 다른 데모 후보와 동일하게 기존 벌크 API 로 수정합니다 — 연동 가이드의 수정 절 참고.

테스트

On this page