cURL
curl -X POST https://api.bizmori.com/api/v2/orders/wtr-embed \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"idempotencyKey": "5e9c7a3b-b4d2-4f18-83e6-8b1a2d5f7c93",
"files": [
{
"fileName": "image.jpg",
"watermarks": [{"text": "MORI_WATERMARK"}]
}
]
}'const response = await fetch('https://api.bizmori.com/api/v2/orders/wtr-embed', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Content-Type': 'application/json'
},
body: JSON.stringify({
idempotencyKey: '5e9c7a3b-b4d2-4f18-83e6-8b1a2d5f7c93',
files: [
{
fileName: 'image.jpg',
watermarks: [{ text: 'MORI_WATERMARK' }]
}
]
})
});
const data = await response.json();import requests
response = requests.post(
'https://api.bizmori.com/api/v2/orders/wtr-embed',
headers={'Authorization': 'Bearer YOUR_API_TOKEN'},
json={
'idempotencyKey': '5e9c7a3b-b4d2-4f18-83e6-8b1a2d5f7c93',
'files': [
{
'fileName': 'image.jpg',
'watermarks': [{'text': 'MORI_WATERMARK'}]
}
]
}
)
data = response.json()<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.bizmori.com/api/v2/orders/wtr-embed",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'idempotencyKey' => '5e9c7a3b-b4d2-4f18-83e6-8b1a2d5f7c93',
'files' => [
[
'fileName' => 'image1.jpg',
'watermarks' => [
[
'text' => 'MORI_WATERMARK'
]
]
],
[
'fileName' => 'image2.png',
'watermarks' => [
[
'text' => 'MORI_WATERMARK'
]
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.bizmori.com/api/v2/orders/wtr-embed"
payload := strings.NewReader("{\n \"idempotencyKey\": \"5e9c7a3b-b4d2-4f18-83e6-8b1a2d5f7c93\",\n \"files\": [\n {\n \"fileName\": \"image1.jpg\",\n \"watermarks\": [\n {\n \"text\": \"MORI_WATERMARK\"\n }\n ]\n },\n {\n \"fileName\": \"image2.png\",\n \"watermarks\": [\n {\n \"text\": \"MORI_WATERMARK\"\n }\n ]\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.bizmori.com/api/v2/orders/wtr-embed")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"idempotencyKey\": \"5e9c7a3b-b4d2-4f18-83e6-8b1a2d5f7c93\",\n \"files\": [\n {\n \"fileName\": \"image1.jpg\",\n \"watermarks\": [\n {\n \"text\": \"MORI_WATERMARK\"\n }\n ]\n },\n {\n \"fileName\": \"image2.png\",\n \"watermarks\": [\n {\n \"text\": \"MORI_WATERMARK\"\n }\n ]\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bizmori.com/api/v2/orders/wtr-embed")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"idempotencyKey\": \"5e9c7a3b-b4d2-4f18-83e6-8b1a2d5f7c93\",\n \"files\": [\n {\n \"fileName\": \"image1.jpg\",\n \"watermarks\": [\n {\n \"text\": \"MORI_WATERMARK\"\n }\n ]\n },\n {\n \"fileName\": \"image2.png\",\n \"watermarks\": [\n {\n \"text\": \"MORI_WATERMARK\"\n }\n ]\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": {
"orderName": "wtr_embed_20260318120000.000",
"orderId": "424706541233094656",
"status": "pending",
"files": [
{
"fileId": 2469,
"fileName": "image.jpg",
"uploadUrl": "https://s3.ap-northeast-2.amazonaws.com/...?X-Amz-Algorithm=AWS4-HMAC-SHA256&...",
"fileKey": "wtr-embed/424706541233094656/images/1/image.jpg",
"fileFormat": "JPG",
"fileType": "IMG"
},
{
"fileId": 2470,
"fileName": "document.pdf",
"uploadUrl": "https://s3.ap-northeast-2.amazonaws.com/...?X-Amz-Algorithm=AWS4-HMAC-SHA256&...",
"fileKey": "wtr-embed/424706541233094656/documents/2/document.pdf",
"fileFormat": "PDF",
"fileType": "DOCUMENT"
}
]
}
}Watermark-Embed
watermark 埋め込み注文を作成
deprecated
非推奨。 このエンドポイントは 2026 年 10 月 9 日 09:00 KST(00:00 UTC)にサポートを終了する予定です。POST /api/v3/orders/wtr-embed を使用してください。
このエンドポイントのすべてのレスポンス(認証エラーと 410 レスポンスを含む)には、Deprecation: true、Sunset: Fri, 09 Oct 2026 00:00:00 GMT、Link: </api/v3/orders/wtr-embed>; rel="successor-version" ヘッダーが含まれます。
2026 年 10 月 9 日 09:00 KST(00:00 UTC)から:
- 認証・権限の確認はこれまでどおり先に行われるため、
401・403エラーは従来と同じです。 - 認証を通過した v2 の watermark 埋め込み・抽出リクエストには、本番キーと
sk_test_キーのどちらでも410 Goneと{ "code": "WATERMARK_V2_API_SUNSET" }が返されます。Linkヘッダーが v3 エンドポイントを示すので、v3 で新しくリクエストしてください。 - その時点までに処理が始まっていない v2 注文は、処理されずに失敗として確定します。注文の詳細(
errors.errorCode)と失敗 Webhook にはWATERMARK_V2_API_SUNSETと v3 への案内メッセージが含まれ、課金されずクレジットは戻ります。 - 終了時点ですでに処理中の注文は、結果の記録まで完了します。その後に改めて実行されることはありません。
watermark 埋め込み注文を作成します。
- 画像1枚あたり最大10個の watermark テキスト
- 注文あたり最大100ファイル
- 対応画像形式(IMG): jpg, jpeg, png, webp, bmp, tiff
- 対応文書形式(DOCUMENT): pdf
入力モード(アップロード / URL / 混合)
入力モードは、各ファイルオブジェクトに originalFileUrl が含まれるかどうかで決定されます:
- アップロードモード(
originalFileUrlなし): プリサインドURLを発行 → クライアントがS3にアップロード → 処理が自動的に開始 - URLモード(
originalFileUrlを指定): URLから画像をダウンロードして即座に処理 - 混合モード: 一部のファイルはアップロードモード、残りはURLモードで同時に処理
動作
| 条件 | 注文ステータス | Confirmの必要性 |
|---|---|---|
すべてのファイルに originalFileUrl がある | pending | 不要(サーバーのダウンロード完了後に自動開始) |
originalFileUrl がないファイルが含まれる | pending | 不要(アップロード完了後に自動開始) |
Anti-AIやAI Detectionと異なり、Watermark Embedでは別途confirmステップは不要です。ファイルアップロードが完了すると処理が自動的に開始されます。
POST
/
api
/
v2
/
orders
/
wtr-embed
cURL
curl -X POST https://api.bizmori.com/api/v2/orders/wtr-embed \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"idempotencyKey": "5e9c7a3b-b4d2-4f18-83e6-8b1a2d5f7c93",
"files": [
{
"fileName": "image.jpg",
"watermarks": [{"text": "MORI_WATERMARK"}]
}
]
}'const response = await fetch('https://api.bizmori.com/api/v2/orders/wtr-embed', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Content-Type': 'application/json'
},
body: JSON.stringify({
idempotencyKey: '5e9c7a3b-b4d2-4f18-83e6-8b1a2d5f7c93',
files: [
{
fileName: 'image.jpg',
watermarks: [{ text: 'MORI_WATERMARK' }]
}
]
})
});
const data = await response.json();import requests
response = requests.post(
'https://api.bizmori.com/api/v2/orders/wtr-embed',
headers={'Authorization': 'Bearer YOUR_API_TOKEN'},
json={
'idempotencyKey': '5e9c7a3b-b4d2-4f18-83e6-8b1a2d5f7c93',
'files': [
{
'fileName': 'image.jpg',
'watermarks': [{'text': 'MORI_WATERMARK'}]
}
]
}
)
data = response.json()<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.bizmori.com/api/v2/orders/wtr-embed",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'idempotencyKey' => '5e9c7a3b-b4d2-4f18-83e6-8b1a2d5f7c93',
'files' => [
[
'fileName' => 'image1.jpg',
'watermarks' => [
[
'text' => 'MORI_WATERMARK'
]
]
],
[
'fileName' => 'image2.png',
'watermarks' => [
[
'text' => 'MORI_WATERMARK'
]
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.bizmori.com/api/v2/orders/wtr-embed"
payload := strings.NewReader("{\n \"idempotencyKey\": \"5e9c7a3b-b4d2-4f18-83e6-8b1a2d5f7c93\",\n \"files\": [\n {\n \"fileName\": \"image1.jpg\",\n \"watermarks\": [\n {\n \"text\": \"MORI_WATERMARK\"\n }\n ]\n },\n {\n \"fileName\": \"image2.png\",\n \"watermarks\": [\n {\n \"text\": \"MORI_WATERMARK\"\n }\n ]\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.bizmori.com/api/v2/orders/wtr-embed")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"idempotencyKey\": \"5e9c7a3b-b4d2-4f18-83e6-8b1a2d5f7c93\",\n \"files\": [\n {\n \"fileName\": \"image1.jpg\",\n \"watermarks\": [\n {\n \"text\": \"MORI_WATERMARK\"\n }\n ]\n },\n {\n \"fileName\": \"image2.png\",\n \"watermarks\": [\n {\n \"text\": \"MORI_WATERMARK\"\n }\n ]\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bizmori.com/api/v2/orders/wtr-embed")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"idempotencyKey\": \"5e9c7a3b-b4d2-4f18-83e6-8b1a2d5f7c93\",\n \"files\": [\n {\n \"fileName\": \"image1.jpg\",\n \"watermarks\": [\n {\n \"text\": \"MORI_WATERMARK\"\n }\n ]\n },\n {\n \"fileName\": \"image2.png\",\n \"watermarks\": [\n {\n \"text\": \"MORI_WATERMARK\"\n }\n ]\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": {
"orderName": "wtr_embed_20260318120000.000",
"orderId": "424706541233094656",
"status": "pending",
"files": [
{
"fileId": 2469,
"fileName": "image.jpg",
"uploadUrl": "https://s3.ap-northeast-2.amazonaws.com/...?X-Amz-Algorithm=AWS4-HMAC-SHA256&...",
"fileKey": "wtr-embed/424706541233094656/images/1/image.jpg",
"fileFormat": "JPG",
"fileType": "IMG"
},
{
"fileId": 2470,
"fileName": "document.pdf",
"uploadUrl": "https://s3.ap-northeast-2.amazonaws.com/...?X-Amz-Algorithm=AWS4-HMAC-SHA256&...",
"fileKey": "wtr-embed/424706541233094656/documents/2/document.pdf",
"fileFormat": "PDF",
"fileType": "DOCUMENT"
}
]
}
}非推奨。 この v2 エンドポイントは 2026 年 10 月 9 日 09:00 KST(00:00 UTC)にサポートを終了する予定です。新しく連携する場合は
POST /api/v3/orders/wtr-embed を使用し、移行方法は watermark 埋め込みのクイックスタートを参照してください。v2 のサポート終了後の動作(2026 年 10 月 9 日 09:00 KST、00:00 UTC から):- 認証・権限の確認はこれまでどおり先に行われるため、
401・403エラーは従来と同じです。 - 認証を通過した v2 の watermark 埋め込み・抽出リクエストには、本番キーと
sk_test_キーのどちらでも410 Goneと{ "code": "WATERMARK_V2_API_SUNSET" }が返されます。Linkヘッダーが v3 エンドポイントを示すので、v3 で新しくリクエストしてください。 - その時点までに処理が始まっていない v2 注文は、処理されずに失敗として確定します。注文の詳細(
errors.errorCode)と失敗 Webhook にはWATERMARK_V2_API_SUNSETと v3 への案内メッセージが含まれ、課金されずクレジットは戻ります。 - 終了時点ですでに処理中の注文は、結果の記録まで完了します。その後に改めて実行されることはありません。
- 既存の v2 注文の取得と、作成済みの結果・レポートのダウンロードは、既存の保管期間内であれば引き続き利用できます。v2 レポートの新規作成・再作成はできません。
Deprecation: true、Sunset: Fri, 09 Oct 2026 00:00:00 GMT、Link ヘッダーが付くだけです。v3 の watermark 抽出では、v2 で埋め込んだ watermark を検出できません。 エンドポイントを v3 に切り替えるだけでは既存の v2 watermark 画像は検出されず、v2 のサポート終了後に v2 の検出を例外的に受け付けることもありません。
サポート終了後のレスポンス
2026 年 10 月 9 日 09:00 KST(00:00 UTC)から、このエンドポイントに認証済みのリクエストを送ると、次のレスポンスが返されます。HTTP/1.1 410 Gone
Content-Type: application/json; charset=utf-8
Deprecation: true
Sunset: Fri, 09 Oct 2026 00:00:00 GMT
Link: </api/v3/orders/wtr-embed>; rel="successor-version"
{ "code": "WATERMARK_V2_API_SUNSET" }
Link ヘッダーの v3 エンドポイントに新しくリクエストしてください。承認
外部クライアントアクセス用のBearer APIキー。本番キーは sk_ プレフィックスを使用し、テストキーは sk_test_ プレフィックスを使用して、処理やクレジット消費なしに注文ライフサイクルを検証します。
ボディ
application/json
冪等性キー
Required array length:
1 - 100 elementsHide child attributes
Hide child attributes
ファイル名
例:
"image.jpg"
元画像URL(任意)
- 指定した場合: URLモード(プリサインドURLは発行されず、即座に処理)
- 指定しない場合: アップロードモード(プリサインドURLを発行)
例:
"https://example.com/image.jpg"
レスポンス
注文が正常に作成されました
Hide child attributes
Hide child attributes
注文ステータス
pending: 入力モードに関わらず常に返却
利用可能なオプション:
pending Hide child attributes
Hide child attributes
プリサインドアップロードURL。アップロードモードでのみ返却されます。
リクエストで指定された公開画像URL。URLモードでのみ返却されます。
ファイルのS3オブジェクトキー。
ファイル形式。
利用可能なオプション:
JPG, PNG, WEBP, BMP, TIFF, PDF ファイルタイプの分類。
利用可能なオプション:
IMG, DOCUMENT