Submit Review
curl --request POST \
--url https://cdn.tailoredd.com/apiV2/reviews \
--header 'Content-Type: application/json' \
--data '
{
"productId": "product-123",
"merchantId": "your-merchant-id",
"rating": 5,
"title": "Great product!",
"text": "I really love this product, highly recommended!",
"authorName": "John Doe",
"authorEmail": "john@example.com",
"orderId": "order-sample-001",
"incentiveClaimId": "claim-xyz789",
"incentiveConsent": true,
"wouldRecommend": true,
"pros": "Fast shipping, great quality",
"cons": "Packaging could be better",
"attributes": {
"fit": "true_to_size",
"quality": "excellent",
"delivery": "fast",
"packaging": "good"
}
}
'import requests
url = "https://cdn.tailoredd.com/apiV2/reviews"
payload = {
"productId": "product-123",
"merchantId": "your-merchant-id",
"rating": 5,
"title": "Great product!",
"text": "I really love this product, highly recommended!",
"authorName": "John Doe",
"authorEmail": "john@example.com",
"orderId": "order-sample-001",
"incentiveClaimId": "claim-xyz789",
"incentiveConsent": True,
"wouldRecommend": True,
"pros": "Fast shipping, great quality",
"cons": "Packaging could be better",
"attributes": {
"fit": "true_to_size",
"quality": "excellent",
"delivery": "fast",
"packaging": "good"
}
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
productId: 'product-123',
merchantId: 'your-merchant-id',
rating: 5,
title: 'Great product!',
text: 'I really love this product, highly recommended!',
authorName: 'John Doe',
authorEmail: 'john@example.com',
orderId: 'order-sample-001',
incentiveClaimId: 'claim-xyz789',
incentiveConsent: true,
wouldRecommend: true,
pros: 'Fast shipping, great quality',
cons: 'Packaging could be better',
attributes: {fit: 'true_to_size', quality: 'excellent', delivery: 'fast', packaging: 'good'}
})
};
fetch('https://cdn.tailoredd.com/apiV2/reviews', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://cdn.tailoredd.com/apiV2/reviews",
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([
'productId' => 'product-123',
'merchantId' => 'your-merchant-id',
'rating' => 5,
'title' => 'Great product!',
'text' => 'I really love this product, highly recommended!',
'authorName' => 'John Doe',
'authorEmail' => 'john@example.com',
'orderId' => 'order-sample-001',
'incentiveClaimId' => 'claim-xyz789',
'incentiveConsent' => true,
'wouldRecommend' => true,
'pros' => 'Fast shipping, great quality',
'cons' => 'Packaging could be better',
'attributes' => [
'fit' => 'true_to_size',
'quality' => 'excellent',
'delivery' => 'fast',
'packaging' => 'good'
]
]),
CURLOPT_HTTPHEADER => [
"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://cdn.tailoredd.com/apiV2/reviews"
payload := strings.NewReader("{\n \"productId\": \"product-123\",\n \"merchantId\": \"your-merchant-id\",\n \"rating\": 5,\n \"title\": \"Great product!\",\n \"text\": \"I really love this product, highly recommended!\",\n \"authorName\": \"John Doe\",\n \"authorEmail\": \"john@example.com\",\n \"orderId\": \"order-sample-001\",\n \"incentiveClaimId\": \"claim-xyz789\",\n \"incentiveConsent\": true,\n \"wouldRecommend\": true,\n \"pros\": \"Fast shipping, great quality\",\n \"cons\": \"Packaging could be better\",\n \"attributes\": {\n \"fit\": \"true_to_size\",\n \"quality\": \"excellent\",\n \"delivery\": \"fast\",\n \"packaging\": \"good\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
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://cdn.tailoredd.com/apiV2/reviews")
.header("Content-Type", "application/json")
.body("{\n \"productId\": \"product-123\",\n \"merchantId\": \"your-merchant-id\",\n \"rating\": 5,\n \"title\": \"Great product!\",\n \"text\": \"I really love this product, highly recommended!\",\n \"authorName\": \"John Doe\",\n \"authorEmail\": \"john@example.com\",\n \"orderId\": \"order-sample-001\",\n \"incentiveClaimId\": \"claim-xyz789\",\n \"incentiveConsent\": true,\n \"wouldRecommend\": true,\n \"pros\": \"Fast shipping, great quality\",\n \"cons\": \"Packaging could be better\",\n \"attributes\": {\n \"fit\": \"true_to_size\",\n \"quality\": \"excellent\",\n \"delivery\": \"fast\",\n \"packaging\": \"good\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://cdn.tailoredd.com/apiV2/reviews")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"productId\": \"product-123\",\n \"merchantId\": \"your-merchant-id\",\n \"rating\": 5,\n \"title\": \"Great product!\",\n \"text\": \"I really love this product, highly recommended!\",\n \"authorName\": \"John Doe\",\n \"authorEmail\": \"john@example.com\",\n \"orderId\": \"order-sample-001\",\n \"incentiveClaimId\": \"claim-xyz789\",\n \"incentiveConsent\": true,\n \"wouldRecommend\": true,\n \"pros\": \"Fast shipping, great quality\",\n \"cons\": \"Packaging could be better\",\n \"attributes\": {\n \"fit\": \"true_to_size\",\n \"quality\": \"excellent\",\n \"delivery\": \"fast\",\n \"packaging\": \"good\"\n }\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {}
}{
"success": false,
"error": {
"code": "VALIDATION_ERROR",
"message": "Rating must be between 1 and 5"
}
}Reviews
Submit review
Submit a customer review for a product with rating, title, body, and optional verification metadata.
POST
/
reviews
Submit Review
curl --request POST \
--url https://cdn.tailoredd.com/apiV2/reviews \
--header 'Content-Type: application/json' \
--data '
{
"productId": "product-123",
"merchantId": "your-merchant-id",
"rating": 5,
"title": "Great product!",
"text": "I really love this product, highly recommended!",
"authorName": "John Doe",
"authorEmail": "john@example.com",
"orderId": "order-sample-001",
"incentiveClaimId": "claim-xyz789",
"incentiveConsent": true,
"wouldRecommend": true,
"pros": "Fast shipping, great quality",
"cons": "Packaging could be better",
"attributes": {
"fit": "true_to_size",
"quality": "excellent",
"delivery": "fast",
"packaging": "good"
}
}
'import requests
url = "https://cdn.tailoredd.com/apiV2/reviews"
payload = {
"productId": "product-123",
"merchantId": "your-merchant-id",
"rating": 5,
"title": "Great product!",
"text": "I really love this product, highly recommended!",
"authorName": "John Doe",
"authorEmail": "john@example.com",
"orderId": "order-sample-001",
"incentiveClaimId": "claim-xyz789",
"incentiveConsent": True,
"wouldRecommend": True,
"pros": "Fast shipping, great quality",
"cons": "Packaging could be better",
"attributes": {
"fit": "true_to_size",
"quality": "excellent",
"delivery": "fast",
"packaging": "good"
}
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
productId: 'product-123',
merchantId: 'your-merchant-id',
rating: 5,
title: 'Great product!',
text: 'I really love this product, highly recommended!',
authorName: 'John Doe',
authorEmail: 'john@example.com',
orderId: 'order-sample-001',
incentiveClaimId: 'claim-xyz789',
incentiveConsent: true,
wouldRecommend: true,
pros: 'Fast shipping, great quality',
cons: 'Packaging could be better',
attributes: {fit: 'true_to_size', quality: 'excellent', delivery: 'fast', packaging: 'good'}
})
};
fetch('https://cdn.tailoredd.com/apiV2/reviews', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://cdn.tailoredd.com/apiV2/reviews",
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([
'productId' => 'product-123',
'merchantId' => 'your-merchant-id',
'rating' => 5,
'title' => 'Great product!',
'text' => 'I really love this product, highly recommended!',
'authorName' => 'John Doe',
'authorEmail' => 'john@example.com',
'orderId' => 'order-sample-001',
'incentiveClaimId' => 'claim-xyz789',
'incentiveConsent' => true,
'wouldRecommend' => true,
'pros' => 'Fast shipping, great quality',
'cons' => 'Packaging could be better',
'attributes' => [
'fit' => 'true_to_size',
'quality' => 'excellent',
'delivery' => 'fast',
'packaging' => 'good'
]
]),
CURLOPT_HTTPHEADER => [
"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://cdn.tailoredd.com/apiV2/reviews"
payload := strings.NewReader("{\n \"productId\": \"product-123\",\n \"merchantId\": \"your-merchant-id\",\n \"rating\": 5,\n \"title\": \"Great product!\",\n \"text\": \"I really love this product, highly recommended!\",\n \"authorName\": \"John Doe\",\n \"authorEmail\": \"john@example.com\",\n \"orderId\": \"order-sample-001\",\n \"incentiveClaimId\": \"claim-xyz789\",\n \"incentiveConsent\": true,\n \"wouldRecommend\": true,\n \"pros\": \"Fast shipping, great quality\",\n \"cons\": \"Packaging could be better\",\n \"attributes\": {\n \"fit\": \"true_to_size\",\n \"quality\": \"excellent\",\n \"delivery\": \"fast\",\n \"packaging\": \"good\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
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://cdn.tailoredd.com/apiV2/reviews")
.header("Content-Type", "application/json")
.body("{\n \"productId\": \"product-123\",\n \"merchantId\": \"your-merchant-id\",\n \"rating\": 5,\n \"title\": \"Great product!\",\n \"text\": \"I really love this product, highly recommended!\",\n \"authorName\": \"John Doe\",\n \"authorEmail\": \"john@example.com\",\n \"orderId\": \"order-sample-001\",\n \"incentiveClaimId\": \"claim-xyz789\",\n \"incentiveConsent\": true,\n \"wouldRecommend\": true,\n \"pros\": \"Fast shipping, great quality\",\n \"cons\": \"Packaging could be better\",\n \"attributes\": {\n \"fit\": \"true_to_size\",\n \"quality\": \"excellent\",\n \"delivery\": \"fast\",\n \"packaging\": \"good\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://cdn.tailoredd.com/apiV2/reviews")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"productId\": \"product-123\",\n \"merchantId\": \"your-merchant-id\",\n \"rating\": 5,\n \"title\": \"Great product!\",\n \"text\": \"I really love this product, highly recommended!\",\n \"authorName\": \"John Doe\",\n \"authorEmail\": \"john@example.com\",\n \"orderId\": \"order-sample-001\",\n \"incentiveClaimId\": \"claim-xyz789\",\n \"incentiveConsent\": true,\n \"wouldRecommend\": true,\n \"pros\": \"Fast shipping, great quality\",\n \"cons\": \"Packaging could be better\",\n \"attributes\": {\n \"fit\": \"true_to_size\",\n \"quality\": \"excellent\",\n \"delivery\": \"fast\",\n \"packaging\": \"good\"\n }\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {}
}{
"success": false,
"error": {
"code": "VALIDATION_ERROR",
"message": "Rating must be between 1 and 5"
}
}POST {BASE_URL}/reviews
Body parameters
string
required
Product being reviewed.
string
required
Your merchant ID.
integer
required
1–5 star rating.
string
required
Customer display name.
string
required
Customer email.
string
Review headline.
string
Review body.
string
Order ID to mark as verified purchase.
string
Incentive claim ID.
boolean
FTC disclosure accepted.
boolean
Recommendation flag.
string
Free-text pros.
string
Free-text cons.
object
Custom attribute key/value pairs.
Example
{
"productId": "SKU-001", "merchantId": "YOUR_MERCHANT_ID",
"rating": 5, "title": "Best purchase this year",
"text": "Quality exceeded expectations!",
"authorName": "James T.", "authorEmail": "james@example.com",
"orderId": "ORDER-10045", "wouldRecommend": true,
"pros": "Fast shipping, great quality",
"attributes": { "fit": "true_to_size", "quality": "excellent" }
}
Was this page helpful?
⌘I