curl --request POST \
--url https://omnicommerce.sg/api/v1/reviews/{reviewId}/reply \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"reply": "<string>",
"generateWithAi": false,
"submit": true,
"instructions": "<string>",
"organizationId": "<string>"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
reply: '<string>',
generateWithAi: false,
submit: true,
instructions: '<string>',
organizationId: '<string>'
})
};
fetch('https://omnicommerce.sg/api/v1/reviews/{reviewId}/reply', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://omnicommerce.sg/api/v1/reviews/{reviewId}/reply"
payload = {
"reply": "<string>",
"generateWithAi": False,
"submit": True,
"instructions": "<string>",
"organizationId": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"ok": true,
"apiVersion": "developer_v1",
"operationId": "<string>",
"status": "accepted",
"warnings": [
"<string>"
],
"recommendations": [
"<string>"
],
"links": {},
"data": {
"success": true,
"reviewId": "<string>",
"submitted": true,
"reply": "<string>",
"model": "<string>",
"error": "<string>",
"sellerCenterUrl": "<string>"
},
"jobId": "<string>",
"productId": "<string>"
}Reply to Review
Reply to one review identified by its OmniCommerce UUID in the URL. Requires reviews:write. Supply reply or set generateWithAi: true. submit defaults to true; set false with AI generation to return a draft without posting. Optional instructions guide AI writing. AI generation uses organization AI credits.
Read data.submitted for confirmed marketplace submission. Generated text is retained when submission fails. Unsupported marketplaces return their capability limitation. Check review state before retrying an unconfirmed submission. Amazon review requests are separate.
curl --request POST \
--url https://omnicommerce.sg/api/v1/reviews/{reviewId}/reply \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"reply": "<string>",
"generateWithAi": false,
"submit": true,
"instructions": "<string>",
"organizationId": "<string>"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
reply: '<string>',
generateWithAi: false,
submit: true,
instructions: '<string>',
organizationId: '<string>'
})
};
fetch('https://omnicommerce.sg/api/v1/reviews/{reviewId}/reply', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://omnicommerce.sg/api/v1/reviews/{reviewId}/reply"
payload = {
"reply": "<string>",
"generateWithAi": False,
"submit": True,
"instructions": "<string>",
"organizationId": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"ok": true,
"apiVersion": "developer_v1",
"operationId": "<string>",
"status": "accepted",
"warnings": [
"<string>"
],
"recommendations": [
"<string>"
],
"links": {},
"data": {
"success": true,
"reviewId": "<string>",
"submitted": true,
"reply": "<string>",
"model": "<string>",
"error": "<string>",
"sellerCenterUrl": "<string>"
},
"jobId": "<string>",
"productId": "<string>"
}Authorizations
Bearer API key for server-to-server access. Session auth is also supported in first-party UI flows.
Path Parameters
Body
Seller reply to send to this review. Omit when generateWithAi is true.
1 - 500Generate a reply using the review context and organization brand voice. Uses AI credits.
true submits the reply to the marketplace. With generateWithAi, false returns a draft without submitting.
Optional writing instructions for AI-generated replies. Requires generateWithAi.
1 - 2000Required for session auth. API keys already belong to one organization.
1 - 160Response
The reply or draft result for this review.
"developer_v1"accepted, completed, failed Show child attributes
Show child attributes
Show child attributes
Show child attributes