Glowb Dev Docs
Admin API블랙리스트

등록 후보 검색

이름·이메일·전화번호·인스타 링크로 블랙리스트에 올릴 인플루언서를 찾습니다.

등록 후보 검색

블랙리스트에 올릴 인플루언서를 찾습니다. 검색창 하나에 아무거나 넣으면 서버가 판별합니다.

이미 블랙리스트로 등록된 인플루언서는 결과에서 제외됩니다. 등록용 검색이기 때문입니다. 해제하려면 목록 조회를 쓰세요.

HTTP 요청

GET /ai/admin/blacklist/search?keyword={검색어}&page=0&size=20
Authorization: Bearer {access_token}

Query Parameters

파라미터타입필수기본값설명
keywordString이름 / 이메일 / 전화번호 / 인스타 링크·핸들
pageInteger아니오0페이지 번호 (0부터)
sizeInteger아니오20페이지 크기

검색어 판별 규칙

서버가 입력 형태를 보고 무엇으로 찾을지 정합니다. FE는 타입을 보낼 필요가 없습니다.

입력 패턴판별예시
instagram.com 또는 / 포함SNS_LINKhttps://instagram.com/hong_daily/
@시작SNS_LINK@hong_daily
@ 포함EMAILhong@test.com
숫자·-·+·공백만TEL010-1234-5678
나머지NAME홍길동

@hong_daily(핸들)와 hong@test.com(이메일)이 헷갈리므로 @ 로 시작하면 핸들로 봅니다. 판별 결과는 응답의 matchedBy 로 돌려주니, 의도와 다르면 입력 형태를 확인하세요.

검색 대상과 정규화

타입어디를 찾나정규화
NAMETB_INFLUENCE.name앞뒤 공백 제거, 부분일치
EMAILTB_INFLUENCE.email소문자 변환, 부분일치
TELTB_INFLUENCE.tel구분자 제거 후 부분일치
SNS_LINKTB_CAMPAIGN_APPLICATION.sns_account_link핸들만 추출 후 부분일치

전화번호는 DB에 010-1234-567801012345678 이 섞여 저장돼 있어, 서버가 -와 공백을 지우고 비교합니다. 어느 형태로 넣어도 같은 결과가 나옵니다.

인스타는 주소창에서 복사한 그대로(https://www.instagram.com/hong_daily/?igsh=...) 넣어도 hong_daily 만 뽑아서 찾습니다.

인스타 링크는 인플루언서가 아니라 지원 건에 붙어 있습니다. 블랙리스트 대상(계약 후 드롭·취소자)은 반드시 지원 이력이 있으므로 항상 찾힙니다. 다만 한 번도 지원한 적 없는 인플루언서는 링크로 검색되지 않습니다.

응답

성공 응답 (200 OK)

{
  "status": 200,
  "code": null,
  "message": "인플루언서 검색 성공",
  "data": {
    "matchedBy": "TEL",
    "excludedBlacklistedCount": 1,
    "candidates": {
      "content": [
        {
          "influenceNo": 1523,
          "name": "홍길동",
          "email": "hong@test.com",
          "tel": "010-1234-5678",
          "memberId": "creator_hong",
          "snsAccountLinks": ["https://instagram.com/hong_daily"],
          "applicationCount": 3,
          "lastAppliedAt": "2026-07-01T10:00:00"
        }
      ],
      "totalElements": 1,
      "totalPages": 1,
      "number": 0,
      "size": 20
    }
  }
}
필드타입설명
matchedByString서버가 판별한 검색 타입 (NAME·EMAIL·TEL·SNS_LINK)
excludedBlacklistedCountLong검색 조건에는 맞지만 이미 블랙리스트라 빠진 인원 수
candidates.content[].influenceNoInteger등록 API에 그대로 넘기는 값
candidates.content[].snsAccountLinksString[]지원 시 입력한 SNS 링크 (최대 3개, 최신순)
candidates.content[].applicationCountLong총 지원 건수
candidates.content[].lastAppliedAtLocalDateTime마지막 지원 일시

excludedBlacklistedCount 를 화면에 꼭 노출하세요. 결과가 0건인데 이 값이 1 이상이면 "없는 사람"이 아니라 "이미 등록된 사람"입니다. 이걸 안 보여주면 관리자가 왜 검색이 안 되는지 몰라 헤맵니다.

applicationCountlastAppliedAt동명이인을 구분하기 위한 것입니다. "드롭한 그 사람이 맞는지" 확인하지 못하면 엉뚱한 사람을 퇴출시킬 수 있습니다.

빈 검색어

keyword 가 비어 있거나 공백뿐이면 전체 인플루언서를 훑지 않고 빈 결과를 돌려줍니다.

{
  "status": 200,
  "message": "인플루언서 검색 성공",
  "data": {
    "matchedBy": "NAME",
    "excludedBlacklistedCount": 0,
    "candidates": { "content": [], "totalElements": 0 }
  }
}

에러 응답

상태 코드설명
400keyword 파라미터 누락
401인증 실패
403ADMIN 권한 필요

API 테스트

On this page