curl -X GET https://api.bizmori.com/api/v3/orders/ORDER_ID/reports/en-US \
-H "Authorization: Bearer YOUR_API_KEY"const orderId = 'ORDER_ID';
const locale = 'en-US';
const response = await fetch(`https://api.bizmori.com/api/v3/orders/${orderId}/reports/${locale}`, {
headers: { 'Authorization': 'Bearer YOUR_API_KEY' }
});
const { data } = await response.json();
if (data.status === 'completed') window.location.href = data.download.url;
import requests
order_id = 'ORDER_ID'
locale = 'en-US'
response = requests.get(
f'https://api.bizmori.com/api/v3/orders/{order_id}/reports/{locale}',
headers={'Authorization': 'Bearer YOUR_API_KEY'}
)
data = response.json()['data']
if data['status'] == 'completed':
pdf = requests.get(data['download']['url']).content
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.bizmori.com/api/v3/orders/{orderId}/reports/{locale}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.bizmori.com/api/v3/orders/{orderId}/reports/{locale}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.bizmori.com/api/v3/orders/{orderId}/reports/{locale}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bizmori.com/api/v3/orders/{orderId}/reports/{locale}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": {
"orderId": "1234567891",
"reportType": "watermarkDetection",
"locale": "en-US",
"status": "completed",
"download": {
"url": "https://s3.ap-northeast-2.amazonaws.com/...",
"expiresInSeconds": 300
},
"failure": null
}
}Get order report
Get the status of a report and, when it is completed, its download URL. A locale with no report request returns 404 REPORT_NOT_FOUND.
A new download.url is issued on every call and expires after 300 seconds. An expired URL returns 403 from storage and cannot be renewed. Don’t store the URL: call this endpoint when the user clicks download and open the returned URL right away.
Returns 400 ORDER_EXPIRED after the order’s retention period ends, whatever the report status.
curl -X GET https://api.bizmori.com/api/v3/orders/ORDER_ID/reports/en-US \
-H "Authorization: Bearer YOUR_API_KEY"const orderId = 'ORDER_ID';
const locale = 'en-US';
const response = await fetch(`https://api.bizmori.com/api/v3/orders/${orderId}/reports/${locale}`, {
headers: { 'Authorization': 'Bearer YOUR_API_KEY' }
});
const { data } = await response.json();
if (data.status === 'completed') window.location.href = data.download.url;
import requests
order_id = 'ORDER_ID'
locale = 'en-US'
response = requests.get(
f'https://api.bizmori.com/api/v3/orders/{order_id}/reports/{locale}',
headers={'Authorization': 'Bearer YOUR_API_KEY'}
)
data = response.json()['data']
if data['status'] == 'completed':
pdf = requests.get(data['download']['url']).content
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.bizmori.com/api/v3/orders/{orderId}/reports/{locale}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.bizmori.com/api/v3/orders/{orderId}/reports/{locale}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.bizmori.com/api/v3/orders/{orderId}/reports/{locale}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bizmori.com/api/v3/orders/{orderId}/reports/{locale}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": {
"orderId": "1234567891",
"reportType": "watermarkDetection",
"locale": "en-US",
"status": "completed",
"download": {
"url": "https://s3.ap-northeast-2.amazonaws.com/...",
"expiresInSeconds": 300
},
"failure": null
}
}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.
Path Parameters
Order ID
^[0-9]{1,20}$Report language
ko-KR, en-US, ja-JP Response
Report resource in queued, processing, completed, or failed status. download is set only when completed
Hide child attributes
Hide child attributes
Order ID
Set by BIZ MORI from the order type
watermarkDetection, aiDetection ko-KR, en-US, ja-JP Report generation status
queued, processing, completed, failed Download information. Present only when status is completed
Hide child attributes
Hide child attributes
Presigned PDF URL, valid for 300 seconds. Watermark reports download as <order name>-report-<locale>.pdf (for example Spring campaign-report-en-US.pdf).
Call the report endpoint again for a new URL instead of storing this one.
300 Failure information. Present only when status is failed
Hide child attributes
Hide child attributes
REPORT_GENERATION_FAILED, REPORT_NOT_AVAILABLE true if calling POST /api/v3/orders/{orderId}/reports again for the same order and locale starts a new attempt.
Watermark reports become false after 3 failed attempts.