cURL
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": "c6d4e2f1-3a5b-4c78-9d0e-6f2a1b8c4d95", "orderId": "ORDER_ID"}'const response = await fetch(
'https://api.bizmori.com/api/v2/orders/ai-detection/confirm',
{
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Content-Type': 'application/json'
},
body: JSON.stringify({ idempotencyKey: 'c6d4e2f1-3a5b-4c78-9d0e-6f2a1b8c4d95', orderId: 'ORDER_ID' })
}
);
const data = await response.json();import requests
response = requests.post(
'https://api.bizmori.com/api/v2/orders/ai-detection/confirm',
headers={'Authorization': 'Bearer YOUR_API_TOKEN'},
json={'idempotencyKey': 'c6d4e2f1-3a5b-4c78-9d0e-6f2a1b8c4d95', 'orderId': 'ORDER_ID'}
)
data = response.json()<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.bizmori.com/api/v2/orders/ai-detection/confirm",
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' => 'c6d4e2f1-3a5b-4c78-9d0e-6f2a1b8c4d95',
'orderId' => '<string>'
]),
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/ai-detection/confirm"
payload := strings.NewReader("{\n \"idempotencyKey\": \"c6d4e2f1-3a5b-4c78-9d0e-6f2a1b8c4d95\",\n \"orderId\": \"<string>\"\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/ai-detection/confirm")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"idempotencyKey\": \"c6d4e2f1-3a5b-4c78-9d0e-6f2a1b8c4d95\",\n \"orderId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bizmori.com/api/v2/orders/ai-detection/confirm")
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\": \"c6d4e2f1-3a5b-4c78-9d0e-6f2a1b8c4d95\",\n \"orderId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"orderId": "<string>",
"status": "inProgress"
}
}{
"code": "VALIDATION_FAILED"
}{
"code": "AUTH_NOT_AUTHENTICATED"
}{
"code": "RESOURCE_NOT_FOUND"
}AI Detection
Confirm AI Detection order
Confirms that the image upload is complete and starts processing.
Call this endpoint after uploading the image to the upload URL received from the create order endpoint. The order status will change from pending to inProgress.
The detection result is delivered via webhook (order.aiDetection.completed or order.aiDetection.failed), or can be retrieved by polling the Get order endpoint.
POST
/
api
/
v2
/
orders
/
ai-detection
/
confirm
cURL
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": "c6d4e2f1-3a5b-4c78-9d0e-6f2a1b8c4d95", "orderId": "ORDER_ID"}'const response = await fetch(
'https://api.bizmori.com/api/v2/orders/ai-detection/confirm',
{
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Content-Type': 'application/json'
},
body: JSON.stringify({ idempotencyKey: 'c6d4e2f1-3a5b-4c78-9d0e-6f2a1b8c4d95', orderId: 'ORDER_ID' })
}
);
const data = await response.json();import requests
response = requests.post(
'https://api.bizmori.com/api/v2/orders/ai-detection/confirm',
headers={'Authorization': 'Bearer YOUR_API_TOKEN'},
json={'idempotencyKey': 'c6d4e2f1-3a5b-4c78-9d0e-6f2a1b8c4d95', 'orderId': 'ORDER_ID'}
)
data = response.json()<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.bizmori.com/api/v2/orders/ai-detection/confirm",
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' => 'c6d4e2f1-3a5b-4c78-9d0e-6f2a1b8c4d95',
'orderId' => '<string>'
]),
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/ai-detection/confirm"
payload := strings.NewReader("{\n \"idempotencyKey\": \"c6d4e2f1-3a5b-4c78-9d0e-6f2a1b8c4d95\",\n \"orderId\": \"<string>\"\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/ai-detection/confirm")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"idempotencyKey\": \"c6d4e2f1-3a5b-4c78-9d0e-6f2a1b8c4d95\",\n \"orderId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bizmori.com/api/v2/orders/ai-detection/confirm")
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\": \"c6d4e2f1-3a5b-4c78-9d0e-6f2a1b8c4d95\",\n \"orderId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"orderId": "<string>",
"status": "inProgress"
}
}{
"code": "VALIDATION_FAILED"
}{
"code": "AUTH_NOT_AUTHENTICATED"
}{
"code": "RESOURCE_NOT_FOUND"
}Call this endpoint only after uploading the image to the URL from the Create order step. Live keys use the presigned storage URL; test keys use the BIZ MORI test upload URL. If the file has not been uploaded yet, the request will return an error.
Authorizations
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