curl -X GET https://api.bizmori.com/api/v3/orders/ORDER_ID \
-H "Authorization: Bearer YOUR_API_KEY"const orderId = 'ORDER_ID';
const response = await fetch(`https://api.bizmori.com/api/v3/orders/${orderId}`, {
headers: { 'Authorization': 'Bearer YOUR_API_KEY' }
});
const { data } = await response.json();
import requests
order_id = 'ORDER_ID'
response = requests.get(
f'https://api.bizmori.com/api/v3/orders/{order_id}',
headers={'Authorization': 'Bearer YOUR_API_KEY'}
)
data = response.json()['data']
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.bizmori.com/api/v3/orders/{orderId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.bizmori.com/api/v3/orders/{orderId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.bizmori.com/api/v3/orders/{orderId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bizmori.com/api/v3/orders/{orderId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": {
"type": "antiAi",
"orderId": "1001",
"orderName": "cat.png",
"channel": "api",
"status": "complete",
"createdAt": "2026-10-08T01:00:00.000Z",
"updatedAt": "2026-10-08T01:00:40.000Z",
"expiresAt": "2026-11-07T01:00:00.000Z",
"retentionDays": 30,
"thumbnailImageUrl": "https://cdn.bizmori.com/thumb/ex.webp",
"processingDelayed": false,
"errors": null,
"inputFiles": [
{
"fileId": "11",
"fileName": "cat.png"
},
{
"fileId": "12",
"fileName": "dog.png"
}
],
"result": {
"outputFiles": [
{
"fileId": "21",
"fileName": "cat.png",
"inputFileId": "11"
},
{
"fileId": "22",
"fileName": "dog.png",
"inputFileId": "12"
}
]
}
}
}주문 상세 조회
호출 계정이 소유한 주문의 상세를 주문 종류·워터마크 엔진과 관계없이 한 가지 형식으로 조회합니다. Anti-AI, AI Detection, 워터마크 삽입·검출 주문을 v2·v3 어느 쪽으로 만들었든 조회할 수 있습니다. 주문 상태와 관계없이 항상 호출할 수 있습니다.
공통 최상위 필드: type, orderId, orderName, channel, status, createdAt, updatedAt, expiresAt, retentionDays, thumbnailImageUrl, processingDelayed, errors, inputFiles, result. 모든 주문에서 이 키 집합이 같고, 주문 종류별 차이는 result 안에만 있습니다.
type은antiAi,aiDetection,watermarkEmbed,watermarkExtract중 하나입니다. v3로 만든 워터마크 주문도 엔진 버전 접미사 없이 같은 값을 씁니다status는pending,inProgress,complete,failed,expired5개 값만 씁니다. v2 워터마크 검출 주문의 저장 statusdetected/undetected는complete로 반환하고 판정 값은result.detectionStatus에 담습니다processingDelayed는 v3로 만든 워터마크 주문만 계산합니다. 그 외 주문은 항상false입니다errors는 실패한 주문의{ errorCode, errorMessage }이며 그 외에는null입니다
inputFiles[]: 입력 파일마다 { fileId, fileName }을 요청 순서대로 반환합니다. 파일 수는 inputFiles.length로 확인하세요.
role(original/query)은watermarkExtract주문에만 나옵니다. v2 주문의watermarked역할은query로 반환합니다uploadUrl(presignedPUTURL)은status가pending이고 해당 파일이 업로드 대기 중일 때만 나옵니다. 그 외에는 키 자체가 없습니다(null로 채우지 않음)
result: 키는 항상 있습니다. status가 complete일 때만 객체이고, pending·inProgress·failed·expired에서는 null입니다.
antiAi:{ outputFiles: [{ fileId, fileName, inputFileId }] }watermarkEmbed:{ outputFiles: [{ fileId, fileName, inputFileId, watermarkText }] }. v3 주문에서 입력 파일 하나에 워터마크 문구를 여러 개 넣으면 문구마다 결과 파일이 하나씩 나옵니다watermarkExtract:{ detectionStatus, watermarkText, reportSupported, reports }.detectionStatus는detected,undetected,inconclusive,unsupported,error중 하나입니다.detectionStatus가detected가 아니면watermarkText는null입니다. v2 주문은reportSupported: false,reports: []입니다aiDetection:{ verdict, probability, options, originalImageUrl, heatmapUrl, overlayUrl }.verdict는likely_real,uncertain_real,uncertain_ai,likely_ai중 하나이며probability가null이면verdict도null입니다. 저장된 옵션이 없으면options는null입니다
fileId: 모든 fileId와 inputFileId는 숫자로만 된 문자열입니다(- 같은 구분자 없음). result.outputFiles[].fileId는 주문 안에서 유일하며 GET /api/v3/orders/{orderId}/download의 files[].fileId와 값·순서가 같습니다.
만료 주문: expired 주문도 조회할 수 있지만 result는 null이고 URL을 발급하지 않습니다.
이전 v3 응답과의 차이(breaking change, 2026-10-08)
- v3로 만든 워터마크 주문의
files[],outputs[], 최상위reports[]가inputFiles[],result.outputFiles[],result.reports[]로 옮겨졌습니다. 결과fileId가{inputFileId}-{n}형식에서 숫자 문자열로 바뀌었습니다 detectionStatus값not_detected가undetected로 바뀌었습니다- v2 상세와 같은 형식을 쓰던 그 외 주문의 최상위
fileCount,statusCode,watermarks,watermarkText,probability,options,originalImageUrl,heatmapUrl,overlayUrl필드가inputFiles와result로 옮겨졌습니다. AI Detection의statusCode는result.verdict로 바뀌었습니다 - deprecated된
GET /api/v2/orders/{orderId}의 응답은 바뀌지 않습니다
테스트 키(sk_test_): 같은 키로 만든 테스트 주문만 조회합니다. live 주문과 다른 계정의 주문은 404 ORDER_NOT_FOUND이며, live 키로 테스트 주문을 조회해도 마찬가지입니다. v2·v3로 만든 모든 테스트 주문을 이 형식으로 반환합니다. inProgress 테스트 주문은 업로드가 끝나고 5초가 지난 뒤 조회하면 complete 또는 failed가 됩니다. pending 테스트 주문의 uploadUrl은 https://api.bizmori.com/api/v2/test-uploads/{signedToken}입니다. 검출 테스트 주문의 result.reports는 항상 빈 배열이며, reportSupported는 v3로 만든 검출 테스트 주문의 detectionStatus가 detected일 때만 true입니다. expiresAt은 주문 생성 7일 뒤입니다.
curl -X GET https://api.bizmori.com/api/v3/orders/ORDER_ID \
-H "Authorization: Bearer YOUR_API_KEY"const orderId = 'ORDER_ID';
const response = await fetch(`https://api.bizmori.com/api/v3/orders/${orderId}`, {
headers: { 'Authorization': 'Bearer YOUR_API_KEY' }
});
const { data } = await response.json();
import requests
order_id = 'ORDER_ID'
response = requests.get(
f'https://api.bizmori.com/api/v3/orders/{order_id}',
headers={'Authorization': 'Bearer YOUR_API_KEY'}
)
data = response.json()['data']
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.bizmori.com/api/v3/orders/{orderId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.bizmori.com/api/v3/orders/{orderId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.bizmori.com/api/v3/orders/{orderId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bizmori.com/api/v3/orders/{orderId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": {
"type": "antiAi",
"orderId": "1001",
"orderName": "cat.png",
"channel": "api",
"status": "complete",
"createdAt": "2026-10-08T01:00:00.000Z",
"updatedAt": "2026-10-08T01:00:40.000Z",
"expiresAt": "2026-11-07T01:00:00.000Z",
"retentionDays": 30,
"thumbnailImageUrl": "https://cdn.bizmori.com/thumb/ex.webp",
"processingDelayed": false,
"errors": null,
"inputFiles": [
{
"fileId": "11",
"fileName": "cat.png"
},
{
"fileId": "12",
"fileName": "dog.png"
}
],
"result": {
"outputFiles": [
{
"fileId": "21",
"fileName": "cat.png",
"inputFileId": "11"
},
{
"fileId": "22",
"fileName": "dog.png",
"inputFileId": "12"
}
]
}
}
}type에 따라 result만 달라집니다.
files, outputs, 최상위 reports, fileCount, statusCode를 읽고 있다면 이전 응답과의 차이를 확인하세요.공통 필드
| 필드 | 타입 | 설명 |
|---|---|---|
type | string | antiAi, aiDetection, watermarkEmbed, watermarkExtract 중 하나 |
orderId | string | 주문 ID |
orderName | string | null | 주문 이름 |
channel | string | api 또는 web |
status | string | 상태의 5가지 값 중 하나 |
createdAt, updatedAt | string | ISO 8601 일시 |
expiresAt | string | null | 주문 파일이 삭제되는 시각 |
retentionDays | integer | null | 파일 보관 기간(일, 7 또는 30) |
thumbnailImageUrl | string | null | 썸네일 이미지 URL |
processingDelayed | boolean | v3로 만든 워터마크 주문이 수동 복구를 기다리면 true. 그 외 주문은 항상 false |
errors | object | null | 실패한 주문의 { errorCode, errorMessage }. 그 외에는 null |
inputFiles | array | 입력 파일. 입력 파일 참고 |
result | object | null | 주문 종류별 결과. 주문 종류별 결과 참고 |
상태
status | 의미 | result |
|---|---|---|
pending | 파일 업로드 대기. inputFiles[].uploadUrl이 있음 | null |
inProgress | 처리 중 | null |
complete | 완료 | 객체 |
failed | 처리 실패. 사유는 errors에 있음 | null |
expired | 보관 기한이 지나 파일이 삭제됨. URL을 발급하지 않음 | null |
detected 또는 undetected인 주문은 complete로 반환합니다. 판정 결과는 result.detectionStatus에서 읽으세요.
입력 파일
inputFiles[]의 각 항목에는 fileId와 fileName이 있으며 주문 생성 요청의 순서를 따릅니다. 아래 두 키는 해당할 때만 나옵니다. 해당하지 않으면 null이 아니라 키 자체가 없습니다.
role은watermarkExtract주문에만 나옵니다.original은 워터마크를 넣은 원본 파일,query는 검사할 파일입니다.uploadUrl은status가pending이고 해당 파일이 아직 업로드 대기 중일 때만 나옵니다. 이 URL로 파일을 PUT하세요. 업로드 URL이 만료되면 이 엔드포인트를 다시 호출해 새 URL을 받으세요.
fileId는 "11"처럼 숫자로만 된 문자열입니다. - 같은 구분자는 들어가지 않습니다.
주문 종류별 결과
result는 status가 complete일 때만 객체입니다. 키는 항상 있으며 그 외 상태에서는 null입니다.
- Anti-AI
- 워터마크 삽입
- 워터마크 검출
- AI Detection
result.outputFiles[]에는 입력 파일마다 결과 파일이 하나씩 있습니다.| 필드 | 타입 | 설명 |
|---|---|---|
fileId | string | 결과 파일 ID. 다운로드 응답의 files[].fileId와 값·순서가 같음 |
fileName | string | null | 결과 파일명 |
inputFileId | string | 원본 입력 파일의 inputFiles[].fileId |
result.outputFiles[]에는 삽입한 워터마크 문구마다 결과 파일이 하나씩 있습니다. v3 주문에서 입력 파일 하나에 문구를 여러 개 넣으면 그 결과 파일들은 같은 inputFileId를 가집니다.| 필드 | 타입 | 설명 |
|---|---|---|
fileId | string | 결과 파일 ID. 다운로드 응답의 files[].fileId와 값·순서가 같음 |
fileName | string | null | 결과 파일명 |
inputFileId | string | 원본 입력 파일의 inputFiles[].fileId |
watermarkText | string | 이 결과 파일에 삽입한 문구 |
| 필드 | 타입 | 설명 |
|---|---|---|
detectionStatus | string | 판정 결과. 아래 표 참고 |
watermarkText | string | null | 검출된 워터마크의 삽입 문구. detectionStatus가 detected가 아니면 null. v3 주문은 호출 계정이 직접 삽입했고 발급 기록이 정확히 1건일 때만 반환 |
reportSupported | boolean | 이 결과로 보고서를 생성할 수 있는지 여부. v2 주문과 PDF에서 캡처한 이미지는 false |
reports | array | 이 주문에 요청한 보고서별 { locale, status }. v2 주문은 항상 빈 배열 |
detectionStatus | 의미 |
|---|---|
detected | 워터마크를 찾음 |
undetected | 끝까지 검사했으나 워터마크가 없음 |
inconclusive | 후보는 있으나 확신 기준에 못 미침 |
unsupported | 처리할 수 없는 입력. 크레딧 환불 |
error | 검출 처리 실패. 워터마크 없음과 다름 |
| 필드 | 타입 | 설명 |
|---|---|---|
verdict | string | null | probability 기준 판정. 아래 표 참고. probability가 null이면 null |
probability | number | null | 이미지가 AI로 생성되었을 확률(0~1) |
options | object | null | 주문 생성 시 설정한 generateHeatmap, generateOverlay, generateThumbnail |
originalImageUrl | string | null | 원본 이미지 URL(1시간 유효) |
heatmapUrl | string | null | 히트맵 이미지 URL(1시간 유효). generateHeatmap을 쓰지 않은 주문은 null |
overlayUrl | string | null | 히트맵 오버레이 URL(1시간 유효). generateOverlay를 쓰지 않은 주문은 null |
verdict | 확률 구간 | 의미 |
|---|---|---|
likely_real | < 0.25 | AI 생성이 아닐 가능성이 높음 |
uncertain_real | 0.25 – 0.5 | AI 생성이 아닐 가능성이 있음 |
uncertain_ai | 0.5 – 0.75 | AI 생성일 가능성이 있음 |
likely_ai | ≥ 0.75 | AI 생성일 가능성이 높음 |
예시
주문 종류별 완료 주문:{
"data": {
"type": "antiAi",
"orderId": "1001",
"orderName": "cat.png",
"channel": "api",
"status": "complete",
"createdAt": "2026-10-08T01:00:00.000Z",
"updatedAt": "2026-10-08T01:00:40.000Z",
"expiresAt": "2026-11-07T01:00:00.000Z",
"retentionDays": 30,
"thumbnailImageUrl": "https://cdn.bizmori.com/thumb/ex.webp",
"processingDelayed": false,
"errors": null,
"inputFiles": [
{ "fileId": "11", "fileName": "cat.png" },
{ "fileId": "12", "fileName": "dog.png" }
],
"result": {
"outputFiles": [
{ "fileId": "21", "fileName": "cat.png", "inputFileId": "11" },
{ "fileId": "22", "fileName": "dog.png", "inputFileId": "12" }
]
}
}
}
{
"data": {
"type": "aiDetection",
"orderId": "4001",
"orderName": "photo.jpg",
"channel": "api",
"status": "complete",
"createdAt": "2026-10-08T01:00:00.000Z",
"updatedAt": "2026-10-08T01:00:40.000Z",
"expiresAt": "2026-11-07T01:00:00.000Z",
"retentionDays": 30,
"thumbnailImageUrl": "https://cdn.bizmori.com/ai/photo.jpg",
"processingDelayed": false,
"errors": null,
"inputFiles": [
{ "fileId": "71", "fileName": "photo.jpg" }
],
"result": {
"verdict": "uncertain_real",
"probability": 0.31,
"options": {
"generateHeatmap": true,
"generateOverlay": true,
"generateThumbnail": true
},
"originalImageUrl": "https://cdn.bizmori.com/ai/photo.jpg",
"heatmapUrl": "https://cdn.bizmori.com/ai/heatmap.png",
"overlayUrl": "https://cdn.bizmori.com/ai/overlay.png"
}
}
}
{
"data": {
"type": "watermarkEmbed",
"orderId": "2001",
"orderName": "logo.png",
"channel": "api",
"status": "complete",
"createdAt": "2026-10-08T01:00:00.000Z",
"updatedAt": "2026-10-08T01:00:40.000Z",
"expiresAt": "2026-11-07T01:00:00.000Z",
"retentionDays": 30,
"thumbnailImageUrl": "https://cdn.bizmori.com/thumb/ex.webp",
"processingDelayed": false,
"errors": null,
"inputFiles": [
{ "fileId": "31", "fileName": "logo.png" }
],
"result": {
"outputFiles": [
{ "fileId": "201", "fileName": "logo.png", "inputFileId": "31", "watermarkText": "MORI" },
{ "fileId": "202", "fileName": "logo.png", "inputFileId": "31", "watermarkText": "MORI-2" }
]
}
}
}
{
"data": {
"type": "watermarkExtract",
"orderId": "3001",
"orderName": "suspect.png",
"channel": "api",
"status": "complete",
"createdAt": "2026-10-08T01:00:00.000Z",
"updatedAt": "2026-10-08T01:00:40.000Z",
"expiresAt": "2026-11-07T01:00:00.000Z",
"retentionDays": 30,
"thumbnailImageUrl": "https://cdn.bizmori.com/thumb/ex.webp",
"processingDelayed": false,
"errors": null,
"inputFiles": [
{ "fileId": "51", "fileName": "original.png", "role": "original" },
{ "fileId": "52", "fileName": "suspect.png", "role": "query" }
],
"result": {
"detectionStatus": "detected",
"watermarkText": "MORI",
"reportSupported": true,
"reports": [
{ "locale": "ko-KR", "status": "completed" }
]
}
}
}
result: null을 반환합니다.
{
"data": {
"type": "watermarkExtract",
"orderId": "3201",
"orderName": "suspect.png",
"channel": "api",
"status": "pending",
"createdAt": "2026-10-08T01:00:00.000Z",
"updatedAt": "2026-10-08T01:00:40.000Z",
"expiresAt": "2026-11-07T01:00:00.000Z",
"retentionDays": 30,
"thumbnailImageUrl": null,
"processingDelayed": false,
"errors": null,
"inputFiles": [
{
"fileId": "81",
"fileName": "original.png",
"role": "original",
"uploadUrl": "https://bucket.s3.ap-northeast-2.amazonaws.com/inputs/81?X-Amz-..."
},
{
"fileId": "82",
"fileName": "suspect.png",
"role": "query",
"uploadUrl": "https://bucket.s3.ap-northeast-2.amazonaws.com/inputs/82?X-Amz-..."
}
],
"result": null
}
}
{
"data": {
"type": "watermarkEmbed",
"orderId": "2002",
"orderName": "logo.png",
"channel": "api",
"status": "failed",
"createdAt": "2026-10-08T01:00:00.000Z",
"updatedAt": "2026-10-08T01:00:40.000Z",
"expiresAt": "2026-11-07T01:00:00.000Z",
"retentionDays": 30,
"thumbnailImageUrl": "https://cdn.bizmori.com/thumb/ex.webp",
"processingDelayed": false,
"errors": {
"errorCode": "WATERMARK_FILE_CORRUPTED",
"errorMessage": "파일이 손상되어 처리할 수 없습니다."
},
"inputFiles": [
{ "fileId": "33", "fileName": "logo.png" }
],
"result": null
}
}
{
"data": {
"type": "antiAi",
"orderId": "1003",
"orderName": "cat.png",
"channel": "api",
"status": "expired",
"createdAt": "2026-10-08T01:00:00.000Z",
"updatedAt": "2026-10-08T01:00:40.000Z",
"expiresAt": "2026-10-01T00:00:00.000Z",
"retentionDays": 30,
"thumbnailImageUrl": "https://cdn.bizmori.com/thumb/ex.webp",
"processingDelayed": false,
"errors": null,
"inputFiles": [
{ "fileId": "14", "fileName": "cat.png" }
],
"result": null
}
}
- Pending: 아직 업로드 대기 중인 파일에만
uploadUrl이 있습니다. 워터마크 삽입, Anti-AI, AI Detection 주문에는role이 없습니다. - Failed:
errors에 사유가 있고result는null입니다.errorMessage는 오류 코드별 고정 한국어 안내 문구입니다. - Expired: 보관 기한이 지난 주문도 조회할 수 있지만
result는null이고 URL을 발급하지 않습니다. 다운로드는400 ORDER_EXPIRED를 반환합니다.
이전 응답과의 차이
2026년 10월 8일부터 이 엔드포인트는 위 형식으로 응답합니다. 하위 호환되지 않는 변경입니다.| 이전 응답 | 현재 |
|---|---|
files[] (v3 워터마크 주문) | inputFiles[]. uploadUrl은 pending 주문에만 있음 |
outputs[] (v3 워터마크 주문) | result.outputFiles[]. outputIndex, status, mediaKind는 더 이상 반환하지 않음 |
"601-1" 형식의 결과 fileId | "201" 같은 숫자 문자열 |
최상위 reports[] | result.reports[] |
detectionStatus: "not_detected" | "undetected" |
fileCount | inputFiles.length |
statusCode (AI Detection) | result.verdict |
statusCode와 status: "detected" / "undetected" (v2 워터마크 검출) | status: "complete"와 result.detectionStatus |
watermarks[] (v2 워터마크 삽입) | result.outputFiles[].watermarkText |
최상위 watermarkText, probability, options, originalImageUrl, heatmapUrl, overlayUrl | result 안으로 이동 |
GET /api/v2/orders/{orderId}는 기존 응답을 그대로 반환합니다.
테스트 키
sk_test_ 키로 호출하면 같은 키로 만든 테스트 주문만 위 형식으로 반환합니다. 테스트 주문의 상태 변화는 테스트 API 키를 참고하세요.인증
외부 클라이언트 접근을 위한 Bearer API 키. 일반 키는 sk_ 접두사를 사용하고, 테스트 키는 sk_test_ 접두사로 모의 응답을 사용해 실제 처리나 크레딧 사용 없이 주문 흐름을 검증합니다.
경로 매개변수
주문 ID
^[0-9]{1,20}$응답
주문 상세. 최상위 필드는 모든 주문 종류가 같고 type에 따라 result 형식만 다릅니다
v3 주문 상세. 최상위 필드는 모든 주문 종류가 같고(PublicOrderV3DetailCommon), type에 따라 result와 검출 주문의 inputFiles[].role만 다릅니다
- Anti-AI
- 워터마크 삽입
- 워터마크 검출
- AI Detection
Hide child attributes
Hide child attributes
주문 종류. 워터마크 주문은 v2·v3 어느 쪽으로 만들었든 watermarkEmbed/watermarkExtract로 반환합니다
antiAi 주문 ID
"1001"
주문 이름. v3로 만든 워터마크 주문은 표시 파일명을, 없으면 저장된 이름을 반환합니다
주문 채널
api, web pending- 업로드 대기inProgress- 처리 중complete- 완료. 이때만result가 객체입니다failed- 실패. 사유는errors에 있습니다expired- 파일 보관 기한 경과. 조회는 가능하지만result와 모든 URL은null입니다
저장 status가 detected/undetected인 v2 워터마크 검출 주문은 complete로 반환하고 판정 값은 result.detectionStatus에 담습니다
pending, inProgress, complete, failed, expired 생성 일시
수정 일시
파일 보관 기한(UTC, ISO 8601). 무결성 예외에서만 null입니다
주문 생성 시 고정된 파일 보관 기간(일, 7 또는 30). 무결성 예외에서만 null입니다
30
썸네일 이미지 URL. 출처는 주문 종류별 규칙을 따릅니다. Anti-AI 주문과 v2 워터마크 주문은 미완료·실패 상태에서 고정 상태 이미지를, AI Detection 주문은 상세 썸네일 또는 원본 이미지를, v3 워터마크 주문은 상세 썸네일을 반환하며 처리 전에는 null일 수 있습니다
v3로 만든 워터마크 주문이 자동 재시도를 모두 소진해 수동 복구를 기다리면 true입니다. 주문은 inProgress를 유지합니다. 그 외 주문은 항상 false입니다
실패한 주문의 오류 정보이며 그 외에는 null입니다. v3로 만든 워터마크 주문은 공개 errorCode와 고정 안내 문구 errorMessage를 반환합니다. 그 외 주문은 저장된 오류 정보를 그대로 반환하며 errorCode가 없을 수 있습니다
입력 파일 목록(요청 순서). 파일 수는 inputFiles.length입니다. watermarkExtract 주문은 PublicExtractInputFile(role 포함), 그 외 주문은 PublicInputFile입니다
watermarkExtract 외 주문의 입력 파일(요청 순서). role 키는 없습니다. uploadUrl 키는 주문 status가 pending이고 해당 파일이 업로드 대기 중일 때만 나오며, 그 외에는 키 자체가 없습니다(null로 채우지 않음)
- Option 1
- Option 2
Hide child attributes
Hide child attributes
입력 파일 ID. 숫자로만 된 문자열입니다
^[0-9]+$"11"
입력 파일명(확장자 포함). 알 수 없으면 null입니다
"cat.png"
파일 업로드용 presigned PUT URL. 주문 status가 pending이고 보관 기한 전이며 해당 파일이 업로드 대기 중일 때만 나옵니다. 업로드가 끝난 파일, originalFileUrl로 지정한 파일, pending이 아닌 주문에서는 키가 없습니다
Anti-AI 주문 결과. status가 complete일 때만 객체이고 그 외에는 null입니다
Hide child attributes
Hide child attributes
결과 파일 목록. 입력 파일마다 결과 1개입니다
Hide child attributes
Hide child attributes