Skip to main content
This guide walks you through detecting whether an image is AI-generated — from uploading an image to reading the detection result.

Prerequisites

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

Step 1: Create an order

Create an AI Detection order with your image file name.
curl -X POST https://api.bizmori.com/api/v2/orders/ai-detection \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "idempotencyKey": "my-detection-001",
    "fileName": "photo.jpg"
  }'
Response:
{
  "data": {
    "orderId": "123456789",
    "orderName": "ai_detection_2026-03-18",
    "status": "pending",
    "file": {
      "fileId": 1,
      "fileName": "photo.jpg",
      "uploadUrl": "https://s3.amazonaws.com/...",
      "fileKey": "ai-detection/123456789/1/photo.jpg"
    }
  }
}
You can optionally request heatmap and overlay images by adding "options": { "generateHeatmap": true, "generateOverlay": true } to the request body. These will be available in the order detail once processing completes.

Step 2: Upload the file

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
The presigned upload URL expires after 1 hour. Upload your image before it expires.

Step 3: Confirm the order

After uploading, call confirm to start detection processing:
curl -X POST https://api.bizmori.com/api/v2/orders/ai-detection/confirm \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"idempotencyKey": "YOUR_IDEMPOTENCY_KEY", "orderId": "123456789"}'

Step 4: Check the result

Poll the order or use webhooks to receive a push notification when detection completes. The detection result is included directly in the order detail — there is no separate download step.
curl https://api.bizmori.com/api/v2/orders/123456789 \
  -H "Authorization: Bearer YOUR_API_TOKEN"
Response:
{
  "data": {
    "type": "aiDetection",
    "orderId": "123456789",
    "status": "complete",
    "probability": 0.92,
    "statusCode": "likely_ai",
    "heatmapUrl": "https://s3.amazonaws.com/...",
    "overlayUrl": "https://s3.amazonaws.com/..."
  }
}

Reading the result

The probability field (0–1) indicates how likely the image is AI-generated. The statusCode provides a human-readable interpretation:
statusCodeProbability rangeMeaning
likely_real< 0.25Highly likely human-created
uncertain_real0.25 – 0.5Likely human-created
uncertain_ai0.5 – 0.75Likely AI-generated
likely_ai≥ 0.75Highly likely AI-generated
heatmapUrl and overlayUrl are only present if you requested them via options.generateHeatmap and options.generateOverlay in Step 1.

Error handling

HTTP StatusMeaningAction
400Invalid requestCheck parameters and file format
401Authentication failedVerify your API key
429Rate limit exceededReduce request frequency or upgrade plan
For the complete error code reference, see Error Codes.

Next steps

Anti-AI

Protect images from AI training and generation.

Watermark Embed

Embed invisible watermarks into images.

Watermark Extract

Detect and extract watermarks from images.

Webhooks

Set up webhooks to get notified when processing completes.