Main API인스타그램 재검수 API
POST /ai/review/instagram
인스타그램 업로드물 재검수
인스타그램 업로드물 재검수
크리에이터가 업로드한 인스타그램 게시물이 캠페인의 가이드라인 조건(브랜드 계정 태그, 협찬 라벨, 공동작업자, 필수 해시태그)을 충족하는지 검수합니다.
내부적으로 collabNo로 가이드라인을 조회하여 검수 조건을 추출한 뒤, 파이썬 검수 백엔드(/ai-review/recheck)로 위임합니다. 가이드라인 v1/v2 모두 지원합니다 (Collab.guidelineVersion으로 자동 분기).
| 항목 | 값 |
|---|---|
| 메서드 | POST |
| 경로 | /ai/review/instagram |
| 인증 | 필요 (크리에이터/관리자 모두 호출 가능) |
| Content-Type | application/json |
요청
POST /ai/review/instagram
Authorization: Bearer {access_token}
Content-Type: application/jsonRequest Body
{
"instagramUrl": "https://www.instagram.com/reel/DUQKiVZkox_/",
"collabNo": 123
}Request Body 스키마
| 필드명 | 타입 | 필수 | 설명 |
|---|---|---|---|
instagramUrl | string | 예 | 검수할 인스타그램 게시물 URL |
collabNo | integer | 예 | 캠페인 번호 (가이드라인 조회용) |
검수 조건(브랜드 계정명, 협찬 계정명, 공동작업자, 해시태그)은 클라이언트가 보내지 않아도 됩니다. 서버가 collabNo로 가이드라인을 조회해 자동으로 추출합니다.
응답
성공 응답 (200 OK)
검수 자체가 실패해도(태그 누락 등) HTTP는 항상 200이며, 각 항목의 passed 필드로 통과 여부를 표현합니다.
{
"status": 200,
"code": null,
"message": "인스타그램 재검수가 완료되었습니다.",
"data": {
"result": {
"paidPartnership": {
"code": "paid_partnership",
"checked": true,
"passed": true
},
"sponsorUser": {
"code": "sponsor_user",
"checked": true,
"passed": false
},
"brandTag": {
"userTag": {
"code": "user_tag",
"checked": true,
"passed": true
},
"captionTag": {
"code": "caption_tag",
"checked": true,
"passed": false
}
},
"collaborator": {
"code": "collaborator",
"checked": true,
"passed": true
},
"hashtags": {
"code": "required_hashtags",
"checked": true,
"passed": false,
"missingHashtags": ["스킨푸드패드"]
}
}
}
}응답 스키마
| 필드 | 타입 | 설명 |
|---|---|---|
result.paidPartnership | CheckItem | Instagram 협찬 라벨 (항상 검사) |
result.sponsorUser | CheckItem | 가이드라인에 지정된 협찬 계정 태그 여부 |
result.brandTag.userTag | CheckItem | 사진/영상에 브랜드 사람 태그 |
result.brandTag.captionTag | CheckItem | 캡션에 @브랜드계정 멘션 |
result.collaborator | CheckItem | 공동작업자(coauthor)로 브랜드 등록 여부 |
result.hashtags | CheckItem + missingHashtags | 필수 해시태그 모두 포함 여부 |
CheckItem 스키마
| 필드 | 타입 | 설명 |
|---|---|---|
code | string | 항목 식별자 |
checked | boolean | 검수 수행 여부 |
passed | boolean | null | 통과 여부. 검수 안 했으면 null |
해석 규칙:
checked: true, passed: true→ 통과 ✅checked: true, passed: false→ 실패 ❌checked: false, passed: null→ 가이드라인에 해당 조건이 없어서 검사 안 함 ⚪
hashtags 항목만 추가로 missingHashtags: string[] 필드를 가지며, 누락된 해시태그 목록을 포함합니다.
가이드라인 → 검수 조건 매핑
검수 조건은 Collab.guidelineVersion에 따라 다음 위치에서 추출됩니다.
v1 (guidelineVersion = 1 또는 null)
| 검수 항목 | 가이드라인 경로 |
|---|---|
| 브랜드 계정명 | marketingInfo.videoMarketingOptions.brandAccountTag.accountName |
| 브랜드 태그 방법 | marketingInfo.videoMarketingOptions.brandAccountTag.tagMethods |
| 협찬 계정명 | marketingInfo.videoMarketingOptions.sponsorLabel.accountName |
| 공동작업자 계정명 | marketingInfo.videoMarketingOptions.collaborator.accountName |
| 해시태그 | marketingInfo.hashtags |
v2 (guidelineVersion = 2)
| 검수 항목 | 가이드라인 경로 | 조건 |
|---|---|---|
| 브랜드 계정명 | uploadSettingInfo.brandTag.accountName | — |
| 브랜드 태그 방법 | uploadSettingInfo.brandTag.tagMethods | — |
| 협찬 계정명 | extra.sponsorLabelText | uploadSettingInfo.sponsorLabel.enabled = true 일 때만 |
| 공동작업자 계정명 | extra.collaborator | uploadSettingInfo.addCollaborator = true 일 때만 |
| 해시태그 | contentInfo.hashtags | — |
가이드라인에서 어떤 필드든 비어있거나 조건을 만족하지 않으면 해당 항목은 검수에서 제외되며, 응답에서 checked: false, passed: null로 표시됩니다.
에러 응답
| 상태 코드 | 코드 | 설명 |
|---|---|---|
404 | CAMPAIGN_NOT_FOUND | collabNo로 캠페인을 찾을 수 없음 |
404 | GUIDELINE_NOT_FOUND | 캠페인의 가이드라인이 없음 |
500 | PYTHON_CALL_FAILED | 파이썬 검수 백엔드 호출 실패 (네트워크/타임아웃 등) |
500 | SERVER_ERROR | 그 외 예외 |
사용 예시
curl -X POST https://api.glowb.io/ai/review/instagram \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"instagramUrl": "https://www.instagram.com/reel/DUQKiVZkox_/",
"collabNo": 123
}'