Glowb Dev Docs
SaaS API제출 링크 (매직 링크)

GET /ai/submit-link/{token}

링크 컨텍스트 조회 (무인증)

링크 컨텍스트 조회

토큰을 검증하고, 해당 신청의 제출 컨텍스트(검수 라운드 목록)를 반환합니다. 링크 진입 시 가장 먼저 호출합니다.

무인증 엔드포인트 — JWT 없이 토큰만으로 접근합니다. (/ai/submit-link/**는 permitAll)

HTTP 요청

GET /ai/submit-link/{token}

Path Parameters

파라미터타입필수설명
tokenstring발급받은 제출 링크 토큰

응답

성공 응답 (200 OK)

{
  "status": 200,
  "code": null,
  "message": "조회 완료",
  "data": {
    "applicationId": 100,
    "reviewRounds": [
      { "reviewId": 50, "reviewRound": 1, "status": "REVIEWING", "itemTypes": ["SCRIPT_VIDEO"] },
      { "reviewId": 51, "reviewRound": 2, "status": "PENDING", "itemTypes": ["VIDEO", "CAPTION", "HASHTAG"] }
    ]
  }
}

Response Body 스키마

필드명타입설명
applicationIdlong제출 대상 캠페인 신청 ID
reviewRoundsarray신청의 검수 라운드 목록
reviewRounds[].reviewIdlong검수 라운드 ID (완료 콜백에 사용)
reviewRounds[].reviewRoundint검수 차수 (1=1차, 2=2차)
reviewRounds[].statusstring검수 상태
reviewRounds[].itemTypesstring[]해당 라운드에 실제로 존재하는 제출항목 타입 목록(중복 제거). 예: ["SCRIPT_VIDEO"], ["VIDEO","CAPTION","HASHTAG"]

스크립트/영상 단계 구분은 reviewRound 번호가 아니라 itemTypes로 판별하세요.

스크립트 단계에서는 1차 라운드만 내려오고(2차는 1차 통과 후 생성) 영상 전용 캠페인에서는 영상이 1차로 생성되기도 하므로, reviewRound === 1로 스크립트/영상을 추정하면 오판합니다. itemTypes에 스크립트 타입(SCRIPT_VIDEO/SCRIPT_BLOG)이 있으면 스크립트 입력, 없으면(VIDEO/PHOTO/CAPTION/HASHTAG) 콘텐츠 제출 화면으로 분기하세요.

SCRIPT_BLOG는 블로그 1·2차 양쪽에 등장할 수 있어 서버는 단계를 단정하지 않고 "그 라운드에 존재하는 타입 목록"만 그대로 내려줍니다.

최종제출물 가능 여부는 신청 단계로 판단되며, 컨텍스트에는 검수 라운드만 노출됩니다. 최종제출은 POST /ai/submit-link/{token}/complete/final을 직접 호출합니다.

에러 응답

상황상태 코드메시지
토큰 없음400유효하지 않은 링크입니다.
만료/사용됨/비활성400만료되었거나 사용할 수 없는 링크입니다.

API 테스트

On this page