Skip to main content
POST
cURL

How to upload the image

After receiving the uploadUrl from the response, upload your image using a PUT request. Live keys return a presigned storage URL. Test keys return a BIZ MORI test upload URL that consumes and discards the request body:
Live presigned upload URLs expire after 10 minutes. Test upload URLs carry their own authorization and do not require a Bearer header. Upload the file before the URL expires, then call the Confirm order endpoint.

Getting the detection result

Once you confirm the upload, the order status changes to inProgress. When detection completes, the result is available via:
  1. Webhook — Subscribe to order.aiDetection.completed or order.aiDetection.failed events
  2. Polling — Call the Get order endpoint until status is complete or failed
The detection result is included in the order detail response under aiDetection:
Test orders return deterministic detection results from the input file name. Use _ai for probability 0.98 or _human for probability 0.02. Test orders do not create downloadable heatmap or overlay files.

Status Codes

Authorizations

Authorization
string
header
required

Bearer API key for external client access. Live keys use the sk_ prefix; test keys use the sk_test_ prefix and support order-lifecycle testing with mock responses without processing or credit usage.

Body

application/json
idempotencyKey
string
required

Idempotency key to prevent duplicate requests

Example:

"0e6c4a9b-b1d8-457e-a9fc-4b7d0e3a6c59"

fileName
string
required

Image file name with extension. Supported: jpg, jpeg, png, webp, bmp, tiff

Example:

"photo.jpg"

orderName
string

Order name (optional, auto-generated if not provided)

Maximum string length: 64
Example:

"my-detection-order"

options
object

Output options (optional). Generated files are included in the order detail response.

Response

Order created successfully

data
object