콘텐츠로 이동
This documentation is also available as markdown. For a complete index of all pages, see llms.txt at /llms.txt

도브러너 Distributor Watermarking API 가이드

본 문서는 HTTP API를 통해 도브러너 Distributor Watermarking 서비스를 사용하는 방법을 안내합니다.

본 문서에 명시된 모든 API에는 아래와 같은 공통 규격이 적용됩니다.

Distributor Watermarking API 호출 시 아래 과정을 통해 생성한 인증 토큰을 설정해야 합니다.

1단계: Base64 인코딩된 인증 매개변수 생성

  1. 웹 브라우저로 도브러너 데브콘솔의 Base64 Enc/Dec 페이지에 접속합니다.
  2. Encrypt 옵션이 선택된 상태에서 AccountID:AccessKey 형태의 값을 왼쪽 필드에 입력합니다.
  3. 아래 스크린샷 이미지와 같이 Base64 인코딩된 값이 화면 오른쪽에 출력됩니다.
  4. 다음 단계에서 사용을 위해 출력된 값을 복사해둡니다.

AccountIDAccessKey 값은 각각 도브러너 서비스 가입 시 입력한 계정 ID와 가입 후 콘솔에 표시되는 엑세스 키를 입력해야 합니다.

2단계: 인코딩된 매개변수를 이용해 인증 토큰 생성

1단계에서 생성한 Base64 인코딩 결과 값을 아래 토큰 API 요청의 Authorization 헤더에 설정해 API를 호출합니다.

  • URL: https://dwm.doverunner.com/api/token/{siteId}
  • Method: GET
매개변수유형설명
siteId네자리 영숫자콘솔에 표시되는 도브러너 사이트 ID
헤더 명설명
Authorization기본 인증 : Basic base64encode(userId:accessKey)

요청 예제

GET /api/token/UNIT HTTP/1.1
Authorization: basic authInfo
Host: dwm.doverunner.com
필드유형
error_codeString에러 코드
error_messageString에러 메시지
data.tokenStringAPI 인증 토큰

응답 예제

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 112
{
"error_code" : "0000",
"error_message" : "Success.",
"data" : {
"token" : "Bearer valid-token"
}
}

Authorization 헤더에 토큰 API를 통해 발급된 데이터를 설정하여 Distributor Watermarking API를 호출할 수 있습니다.

응답 상태

HTTP 상태 코드설명
200성공
400Bad Request: 요청이 잘못되었습니다. 수신 대상 이름 중복(E4004), 사이트 키 복호화·AES 검증 실패(E1003) 등이 해당됩니다.
401Unauthorized: 인증 토큰이 없거나 형식이 잘못되었거나 만료되었습니다.
402Invalid Parameter: 필수 파라미터가 누락되었거나 값·형식·타입이 올바르지 않습니다.
403Forbidden: 해당 API 또는 사이트 ID에 대한 이용 권한이 없습니다.
405Method Not Allowed: 해당 엔드포인트가 지원하지 않는 HTTP 메서드입니다.
422Unprocessable Entity: 요청 형식은 올바르나 처리할 수 없습니다. 요청당 수신 대상 수 제한 또는 플랜 전체 할당량을 초과한 경우가 해당됩니다.
500Internal Server Error: 요청 처리 중 서버에서 예기치 않은 오류가 발생했습니다.
503Service Unavailable: 인증 서버 또는 DWM 서비스에 일시적으로 연결할 수 없거나 서비스가 중지되었습니다.

응답 데이터 필드

유형
error_codeString0000: 성공 / 실패 시 해당 에러코드
error_messageString에러 메시지
dataJsonAPI 수행 결과

요청이 성공하면 error_code 필드는 0000이며, 그 외의 값은 실패를 의미합니다. 실패 사유는 error_message에 담깁니다. 아래 표는 본 문서에서 설명하는 Distributor Watermarking API가 반환할 수 있는 에러 코드입니다.

아래 에러는 API 로직이 실행되기 전 공통 인증 단계에서 반환됩니다. Distributor Watermarking API는 Authorization 헤더의 Bearer 토큰과 pallycon-apidata 값을 이용한 AES 인증을 모두 지원하므로, 두 방식의 에러 코드를 함께 안내합니다.

에러 코드설명해결 방안
E9000사용 가능한 인증 정보가 요청에 포함되지 않았거나, 해당 엔드포인트가 지원하지 않는 인증 방식을 사용했습니다.Authorization: Bearer TOKEN 헤더를 전송하거나, AES 인증을 지원하는 엔드포인트에서는 pallycon-apidata 값을 전송하세요.
E9001Authorization 헤더 형식이 올바르지 않거나 Bearer 방식이 아닙니다.헤더를 Authorization: Bearer TOKEN 형식으로 정확히 전송하세요.
E9002토큰을 읽었지만 페이로드 검증에 실패했거나 필수 클레임이 누락되었습니다.도브러너 콘솔에서 토큰을 다시 발급받아 재시도하세요.
E9003토큰이 만료되었습니다.토큰을 새로 발급받아 재시도하세요.
E9006요청한 사이트 ID에 대한 권한이 없거나, 관리자 계정만 사용할 수 있는 엔드포인트입니다.요청 경로의 사이트 ID를 확인하고 해당 사이트를 소유한 계정으로 호출하세요.
E9008토큰으로 확인된 계정에 등록된 API 토큰이 없습니다.도브러너 콘솔에서 계정 설정을 확인하거나 헬프데스크에 문의하세요.
E9015pallycon-apidata 복호화 결과가 올바른 JSON 형식이 아닙니다.pallycon-apidata로 암호화하는 JSON이 올바른 형식인지 확인하세요.
A1000pallycon-apidata 값을 디코딩할 수 없거나 encData 또는 hash 필드가 누락되었습니다.연동 가이드에 따라 pallycon-apidata 값을 다시 생성하세요.
A1002pallycon-apidata의 timestamp가 누락되었거나 허용되지 않는 형식입니다.timestamp를 yyyy-MM-ddTHH:mm:ssZ 형식으로 전송하세요.
A1006사이트 키 또는 액세스 키를 복호화할 수 없거나, 사이트 키로 encData를 복호화할 수 없습니다.도브러너 콘솔에서 발급된 사이트 키와 액세스 키가 일치하는지 확인하세요.
A1007pallycon-apidata의 hash 값이 액세스 키, 사이트 ID, encData, timestamp로 계산한 값과 일치하지 않습니다.액세스 키, 사이트 ID, encData, timestamp 순으로 SHA-256 해시를 다시 계산하세요.
에러 코드설명해결 방안
E1000요청 매개변수가 누락되었거나 값·형식·유형이 올바르지 않습니다. 에러 메시지에 문제가 된 필드 이름이 표시됩니다.error_message에 표시된 필드를 수정한 후 재시도하세요.
E1005해당 사이트의 Distributor Watermarking 서비스가 활성화되어 있지 않습니다.도브러너 콘솔에서 서비스를 활성화하거나 헬프데스크에 문의하세요.
E2003작업 목록 조회에 실패했습니다.재시도 후에도 문제가 지속되면 헬프데스크에 문의하세요.
E2004작업 조회에 실패했습니다. 요청한 작업 ID가 해당 사이트 ID에 존재하지 않을 수 있습니다.요청 경로의 작업 ID를 확인한 후 재시도하세요.
E2005작업의 수신자 목록 조회에 실패했습니다.요청 경로의 작업 ID를 확인하고 재시도한 후에도 문제가 지속되면 헬프데스크에 문의하세요.
E4000수신자 목록 조회에 실패했습니다.재시도 후에도 문제가 지속되면 헬프데스크에 문의하세요.
E4001한 번의 등록 요청에 150개를 초과하는 수신자를 전송했습니다.150개 이하 단위로 나누어 여러 번 호출하세요.
E4002수신자 등록에 실패했습니다.재시도 후에도 문제가 지속되면 헬프데스크에 문의하세요.
E4003요금제에서 허용하는 수신자 수를 초과했습니다.수신자 허용 수를 늘리려면 헬프데스크에 문의하세요.
E4004요청한 수신자 이름이 모두 이미 등록되어 있습니다. 수신자 이름은 유일해야 하며 대소문자를 구분하지 않고 비교합니다.아직 등록되지 않은 이름으로만 요청하세요.
E4005트라이얼에서 허용하는 수신자 수(10개)를 초과했습니다.더 많은 수신자를 등록하려면 상용 요금제로 업그레이드하세요.
E4006해당 수신자가 이미 워터마킹 작업에 사용되어 수정할 수 없습니다.새 수신자를 등록해 사용하세요. 한 번 사용된 수신자 이름은 변경할 수 없습니다.
E4007수신자 정보 수정에 실패했습니다.재시도 후에도 문제가 지속되면 헬프데스크에 문의하세요.
E4008요청한 DWM ID가 요청한 사이트 ID에 속하지 않습니다.요청 경로의 DWM ID와 사이트 ID를 확인하세요.
E4009수신자 조회에 실패했습니다.재시도 후에도 문제가 지속되면 헬프데스크에 문의하세요.
E4010요청한 DWM ID에 해당하는 수신자가 없습니다.수신자 목록에서 DWM ID를 확인한 후 재시도하세요.
E4017해당 사이트의 최초 수신자 등록 과정에서 DWM ID 구간 할당에 실패했습니다.재시도 후에도 문제가 지속되면 헬프데스크에 문의하세요.
E9997서버 응답을 처리하는 중 내부 오류가 발생했습니다.재시도 후에도 문제가 지속되면 헬프데스크에 문의하세요.
E9998요청한 URL에서 지원하지 않는 HTTP 메서드입니다.본 가이드에서 메서드와 URL을 확인하세요.
E9999내부 오류가 발생했습니다.요청 시각과 함께 헬프데스크에 문의하세요.

E1000은 HTTP 상태 코드 402 Payment Required와 함께 반환됩니다. 상태 코드 이름과 달리 결제 문제가 아니라, 요청 매개변수가 누락되었거나 값이 올바르지 않다는 의미입니다.

코드설명
DM000READY
DM100PREPROCESSING
DM500COMPLETED
DM600ERROR
코드설명
TK000READY
TK001PROGRESSING
TK002COMPLETE
TK005FAIL

생성된 작업의 목록을 검색할 수 있는 API입니다.

  • URL: https://dwm.doverunner.com/api/job/{siteId}
  • Method: GET
매개변수설명
siteId콘솔에 표시되는 도브러너 사이트 ID
매개변수유형설명
content_idString검색할 고유값(Content ID). 최대 200자
job_statusArray검색할 작업 상태
fromString검색 날짜-시작일(yyyy-MM-dd)
toString검색 날짜-종료일(yyyy-MM-dd)
page_unitNumber검색 결과 수 지정. 기본값: 25, 최대: 1000.
page_indexNumber검색 결과 페이지 번호. 기본값: 1
time_zoneString검색에 사용될 시간대 설정. (+/-hh:mm) default: +00:00

요청 예제

GET /api/job/UNIT?content_id=test&job_status=DM500&job_status=DM600&from=2023-11-07&to=2023-11-09&page_unit=10&page_index=1&time_zone=%2B00%3A00 HTTP/1.1
Authorization: Bearer valid_token
Content-Type: application/json;charset=UTF-8
Host: dwm.doverunner.com
필드유형설명
error_codeString에러 코드
error_messageString에러 메시지
time_zoneString시간대
total_countNumber전체 검색 결과 수
dataArray작업 목록
data.[].job_idNumber작업 ID
data.[].content_idString작업 명
data.[].job_statusString작업 상태 코드
data.[].reg_timeString작업 생성 시간
data.[].update_timeString작업 최종 업데이트 시간

응답 예제

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 292
{
"error_code" : "0000",
"error_message" : "Success.",
"time_zone" : "+00:00",
"total_count" : 1,
"data" : [ {
"job_id" : 1111,
"content_id" : "content_id",
"job_status" : "DM000",
"reg_time" : "2022-10-27T15:33:47",
"update_time" : "2022-10-27T15:34:05"
} ]
}

생성된 작업의 상세 정보를 조회하는 API입니다.

  • URL: https://dwm.doverunner.com/api/job/{siteId}/{jobId}
  • Method: GET
매개변수설명
siteId콘솔에 표시되는 도브러너 사이트 ID
jobId작업 ID
매개변수유형설명
time_zoneString검색에 사용될 시간대 설정. (+/-hh:mm) default: +00:00

요청 예제

GET /api/job/UNIT/727?time_zone=%2B00%3A00 HTTP/1.1
Authorization: Bearer valid_token
Content-Type: application/json;charset=UTF-8
Host: dwm.doverunner.com
필드유형설명
error_codeString에러 코드
error_messageString에러 메시지
time_zoneString시간대
dataObject작업 정보
data.job_idNumber작업 ID
data.content_idString작업 명
data.job_statusString작업 상태 코드
data.reg_timeString작업 생성 시간
data.update_timeString작업 최종 업데이트 시간

응답 예제

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 266
{
"error_code" : "0000",
"error_message" : "Success.",
"time_zone" : "+00:00",
"data" : {
"job_id" : 727,
"content_id" : "content_id",
"job_status" : "DM500",
"reg_time" : "2022-09-13T18:46:28",
"update_time" : "2022-09-13T18:56:02"
}
}

특정 DWM Job(job_id) 와 관련된 모든 recipient 목록을 조회하는 API입니다.

  • URL: https://dwm.doverunner.com/api/job/{siteId}/{jobId}/recipient
  • Method: GET
매개변수설명
siteId콘솔에 표시되는 도브러너 사이트 ID
jobId작업 ID
매개변수유형설명
time_zoneString검색에 사용될 시간대 설정. (+/-hh:mm) default: +00:00

요청 예제

GET /api/job/UNIT/727/recipient?time_zone=%2B00%3A00 HTTP/1.1
Authorization: Bearer valid_token
Content-Type: application/json;charset=UTF-8
Host: dwm.doverunner.com
필드유형설명
error_codeString에러 코드
error_messageString에러 메시지
time_zoneString시간대
total_countNumber전체 검색 결과 수
dataArrayRecipient 목록
data.[].dwm_idNumberrecipient의 dwm_id
data.[].recipientStringrecipient의 이름
data.[].descriptionStringrecipient에 대한 설명
data.[].task_statusStringPreEmbedder 작업 상태값
data.[].cli_error_codeStringPreEmbedder Error Code (“0” : 성공, 그 외 실패.). 0이 아닌 값은 DWM PreEmbedder 작업 에러 코드 표D0000D0401, Axxxx에 해당합니다.
data.[].reg_timeString작업 생성 시간
data.[].update_timeString작업 최종 업데이트 시간

응답 예제

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 285
{
"error_code" : "0000",
"error_message" : "Success.",
"time_zone" : "+00:00",
"total_count" : 1,
"data" : [ {
"dwm_id" : 74,
"recipient" : "test1",
"description" : "description",
"task_status" : "TK001",
"cli_error_code" : "0",
"reg_time" : "2022-04-05T14:35:39",
"update_time" : "2022-04-05T17:35:39"
} ]
}

수신자 이름은 유일해야 하며 영어 알파벳, 십진수 숫자, -, _, .만 사용할 수 있습니다. 이 외 @, !, % 등의 특스 문자는 사용할 수 없습니다. 영어 알파벳은 대소문자를 구분하지 않습니다. 따라서 Test를 등록하면 TEST, test 등을 추가로 등록할 수 없습니다. 마찬가지로 수신자 이름을 사용할 때에도 Test가 등록되어 있는 경우 test를 사용하면 Test가 사용됩니다.

등록된 recipient 목록을 조회하는 API입니다.

  • URL: https://dwm.doverunner.com/api/recipient/{siteId}
  • Method: GET
매개변수설명
siteId콘솔에 표시되는 도브러너 사이트 ID
매개변수유형설명
search_keywordArray검색할 recipient 의 이름
fromString검색 날짜-시작일(yyyy-MM-dd)
toString검색 날짜-종료일(yyyy-MM-dd)
page_unitNumber검색 결과 수 지정. 기본값: 25, 최대: 1000.
page_indexNumber검색 결과 페이지 번호. 기본값: 1
time_zoneString검색에 사용될 시간대 설정. (+/-hh:mm) default: +00:00

요청 예제

GET /api/recipient/UNIT?search_keyword=test&from=2023-11-07&to=2023-11-09&page_unit=10&page_index=1&time_zone=%2B00%3A00 HTTP/1.1
Authorization: Bearer valid_token
Content-Type: application/json;charset=UTF-8
Host: dwm.doverunner.com
필드유형설명
error_codeString에러 코드
error_messageString에러 메시지
time_zoneString시간대
total_countNumber전체 검색 결과 수
dataArrayRecipient 목록
data.[].dwm_idNumberrecipient의 dwm_id
data.[].nameStringrecipient의 이름
data.[].descriptionStringrecipient에 대한 설명
data.[].reg_timeStringrecipient 생성 시간

응답 예제

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 235
{
"error_code" : "0000",
"error_message" : "Success.",
"time_zone" : "+00:00",
"total_count" : 1,
"data" : [ {
"dwm_id" : 9,
"name" : "distributor_1",
"description" : "8337",
"reg_time" : "2023-01-12T13:30:30"
} ]
}

등록된 recipient을 상세 조회하는 API입니다.

  • URL: https://dwm.doverunner.com/api/recipient/{siteId}/{dwmId}
  • Method: GET
매개변수설명
siteId콘솔에 표시되는 도브러너 사이트 ID
dwmIdRecipient의 DWM ID
매개변수유형설명
time_zoneString검색에 사용될 시간대 설정. (+/-hh:mm) default: +00:00

요청 예제

GET /api/recipient/UNIT/1011?time_zone=%2B00%3A00 HTTP/1.1
Authorization: Bearer valid_token
Content-Type: application/json;charset=UTF-8
Host: dwm.doverunner.com
필드유형설명
error_codeString에러 코드
error_messageString에러 메시지
time_zoneString시간대
dataObjectRecipient 목록
data.dwm_idNumberrecipient의 dwm_id
data.nameStringrecipient의 이름
data.descriptionStringrecipient에 대한 설명
data.reg_timeStringrecipient 생성 시간
data.update_timeStringrecipient 수정 시간

응답 예제

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 235
{
"error_code" : "0000",
"error_message" : "Success.",
"time_zone" : "+00:00",
"data" : {
"dwm_id" : 1011,
"name" : "distributor_1",
"description" : "8337",
"reg_time" : "2023-01-12T13:30:30",
"update_time" : "2023-07-22T03:39:11"
}
}

Recipient를 등록하는 API입니다.
호출당 150개 까지 등록 가능합니다.
등록가능한 개수를 넘어가면 등록할 수 없습니다.

  • URL: https://dwm.doverunner.com/api/recipient/{siteId}
  • Method: POST
매개변수설명
siteId콘솔에 표시되는 도브러너 사이트 ID
매개변수유형필수값 여부설명
recipientsArrayY등록할 recipient 리스트
recipients.[].nameStringY이름 (maximum 128 length) 알파벳,숫자, (-_.) 만 사용 가능
recipients.[].descriptionString설명 (maximum 50 length)

요청 예제

POST /api/recipient/UNIT HTTP/1.1
Authorization: Bearer valid_token
Content-Type: application/json;charset=UTF-8
Content-Length: 86
Host: dwm.doverunner.com
{
"recipients" : [ {
"name" : "test",
"description" : "test corp."
} ]
}
필드유형설명
error_codeString에러 코드
error_messageString에러 메시지
time_zoneString시간대
dataArray등록된 Recipient 목록
data.[].dwm_idNumberrecipient의 dwm_id
data.[].nameStringrecipient의 이름
data.[].descriptionStringrecipient에 대한 설명
data.[].reg_timeStringrecipient 생성 시간

응답 예제

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 220
{
"error_code" : "0000",
"error_message" : "Success.",
"time_zone" : "+00:00",
"data" : [ {
"dwm_id" : 10,
"name" : "test",
"description" : "test corp.",
"reg_time" : "2023-01-12T13:30:30"
} ]
}

등록된 Recipient를 수정하는 API입니다. DWM 임베딩 작업에 등록된 적이 없는 경우에 한해서만 수정이 가능합니다.

  • URL: https://dwm.doverunner.com/api/recipient/{siteId}/{dwmId}
  • Method: PUT
매개변수설명
siteId콘솔에 표시되는 도브러너 사이트 ID
dwmIdRecipient의 DWM ID

최소 1개의 “name 혹은 description 필드”가 전달되어야 합니다.

매개변수유형필수값 여부설명
nameString이름 (maximum 128 length)
descriptionString설명 (maximum 50 length)

요청 예제

PUT /api/recipient/UNIT/1011 HTTP/1.1
Authorization: Bearer valid_token
Content-Type: application/json;charset=UTF-8
Content-Length: 86
Host: dwm.doverunner.com
{
"name" : "change_name",
"description" : "change_name corp."
}
필드유형설명
error_codeString에러 코드
error_messageString에러 메시지
time_zoneString시간대(UTC +00:00)
dataObject수정된 Recipient 정보
data.dwm_idNumberrecipient의 dwm_id
data.update_timeStringrecipient 수정 시간

응답 예제

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 220
{
"error_code" : "0000",
"error_message" : "Success.",
"time_zone" : "+00:00",
"data" : {
"dwm_id" : 1011,
"update_time" : "2023-07-22T03:39:11"
}
}