Skip to main content
This guide walks you through creating an Anti-AI protection order — the most common integration pattern. The same flow applies to Watermark Embed orders.

Prerequisites

  • A BIZ MORI API key (get one here)
  • An image file to protect (jpg, jpeg, png, or webp)

Step 1: Create an order

Choose your preferred input mode:
Create an order and receive presigned S3 URLs for uploading your files.
curl -X POST https://morimori.app/api/v2/orders/anti-ai \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "idempotencyKey": "my-first-order-001",
    "files": [{ "fileName": "photo.jpg" }],
    "options": { "strength": "high" }
  }'
Response:
{
  "data": {
    "orderName": "anti_ai_2026-02-19",
    "orderId": "123456789",
    "status": "pending",
    "files": [
      {
        "fileId": 1,
        "fileName": "photo.jpg",
        "uploadUrl": "https://s3.amazonaws.com/...",
        "fileKey": "temp/123456789/0/photo.jpg"
      }
    ]
  }
}

Step 2: Upload files (Upload Mode only)

PUT your file to the presigned uploadUrl from Step 1. This is a direct S3 upload — no Authorization header needed.
cURL
curl -X PUT "https://s3.amazonaws.com/..." \
  -H "Content-Type: image/jpeg" \
  --data-binary @photo.jpg
Presigned URLs expire after a set time. If yours has expired, use the Refresh URLs endpoint to generate new ones.

Step 3: Confirm the order (Upload Mode only)

After uploading all files, call confirm to start processing:
curl -X POST https://morimori.app/api/v2/orders/anti-ai/confirm \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"idempotencyKey": "my-confirm-001", "orderId": "123456789"}'

Step 4: Check order status

Poll the order or use webhooks to receive a push notification when processing completes.
curl https://morimori.app/api/v2/orders/123456789 \
  -H "Authorization: Bearer YOUR_API_TOKEN"
Order statuses:
StatusMeaning
pendingWaiting for file upload
inProgressProcessing
completeReady for download
failedProcessing failed

Step 5: Download the result

Once status is complete, fetch the download URL:
curl https://morimori.app/api/v2/orders/123456789/download \
  -H "Authorization: Bearer YOUR_API_TOKEN"
Response:
{
  "data": {
    "downloadUrl": "https://s3.amazonaws.com/...",
    "expiresIn": 3600
  }
}
The downloadUrl is a presigned S3 URL valid for 1 hour. Download the protected file directly from this URL.

Next steps