빠른 시작
작업 제출 시 요청 본문에webhook 필드를 추가하세요:
여러분의 URL + /callback 으로 POST 요청을 보냅니다.
동영상, 오디오 등 다른 비동기 작업 엔드포인트도 동일합니다. 모두 요청 본문에
webhook 필드를 추가하면 됩니다.URL 규칙
전달하는webhook 은 기본 URL(base) 이며, 뒤에 자동으로 /callback 을 덧붙입니다:
여러분의 webhook | 실제로 POST하는 주소 |
|---|---|
https://your-server.com | https://your-server.com/callback |
https://your-server.com/api | https://your-server.com/api/callback |
https://your-server.com/api/ | https://your-server.com/api/callback |
POST .../callback 을 수신하는 엔드포인트를 준비해야 합니다.
무엇을 받게 되나요
푸시되는 내용은 「작업 상태 조회」 엔드포인트가 반환하는 것과 완전히 동일합니다. 동일한 파싱 로직으로 처리하면 됩니다.동영상 작업의 결과는
result.videos, 오디오는 result.audios 에 있습니다.재시도와 중복 제거(중요)
- 재시도: 서버가 약 10초 이내에
2xx를 반환하지 않거나5xx를 반환하면, 자동으로 최대 3회 재시도하며 간격은 약 10초, 30초, 60초 입니다. 3회 모두 실패하면 포기합니다(약 2분 이내 종료). - 재시도하지 않는 경우: 엔드포인트가
4xx를 반환하면(URL / 요청에 문제가 있다고 간주) 재시도 없이 즉시 포기합니다. - 중복 제거: 일반적으로 한 작업은 한 번만 푸시됩니다. 다만 극단적인 경우(예: 전송 후 확인 전에 당사 측에서 재시작 발생) 중복 푸시를 받을 수 있습니다. 중복 처리를 방지하기 위해 반드시
id(task_id) 기준으로 멱등하게 중복 제거 하세요.
콜백 URL 요구 사항
보안을 위해 콜백 URL은 다음을 충족해야 합니다:| 요구 사항 | 설명 |
|---|---|
| 공용 접근 가능 | 내부 / 로컬 주소(127.0.0.1, 10.x, 192.168.x 등)는 불가(거부됨) |
| 프로토콜 | http 또는 https(https 권장) |
| 포트 | 표준 포트(80 / 443) 사용. 비표준 포트는 차단될 수 있음 |
| 도메인 | 당사 자체 서비스 도메인을 가리켜서는 안 됨 |
자주 묻는 질문
webhook을 포함해 작업을 제출했는데 푸시를 받지 못했나요?
webhook을 포함해 작업을 제출했는데 푸시를 받지 못했나요?
하나씩 점검하세요:
- 작업이 실제로 완료되었나요? 작업 상세를 조회해
status가completed/failed인지 확인하세요(처리 중에는 푸시하지 않음). - 여러분의 URL이 공용으로 접근 가능한가요? 당사가 여러분의
/callback에 연결할 수 있나요? - 포트가 표준 포트(80 / 443)인가요? 비표준 포트는 보안 정책에 의해 차단될 수 있습니다.
- 여러분의
/callback이 제때 2xx 를 반환했나요? 4xx 를 반환하면 즉시 포기합니다. https를 사용하나요? 인증서가 유효한가요?
result 의 url 이 왜 배열인가요?
result 의 url 이 왜 배열인가요?
일부 모델은 한 번에 여러 장의 이미지를 생성하므로
images[].url 이 배열일 수 있습니다. 배열로 처리하면 됩니다.결과 링크에 유효 기간이 있나요?
결과 링크에 유효 기간이 있나요?
result 에 expires_at(Unix 타임스탬프)이 있으면 해당 링크의 만료 시각을 나타냅니다. 제때 옮겨 저장하세요.'처리 중' 상태도 푸시하나요?
'처리 중' 상태도 푸시하나요?
아니요. 작업이 최종적으로 성공하거나 실패할 때 한 번만 푸시합니다.
최소 수신 측 예제
Python
200 을 반환하고, 처리 로직은 백그라운드에서 비동기로 실행하세요.