---
title: "Create a review"
url: "https://docs.unified.to/commerce/review/Create_a_review"
description: "API reference for Create a review. Launch multiple pre-built Review integrations today with zero maintenance — all through a single API."
generated_at: "2026-06-03T19:03:01.705Z"
---
# Create a review

 POST/commerce/{connection\_id}/review

## Parameters

**fields**string array 

id

created\_at

updated\_at

item\_id

item\_variant\_id

location\_id

rating

title

content

author\_name

author\_email

author\_avatar\_url

author\_location

verified\_purchase

helpful\_votes

unhelpful\_votes

media

status

is\_verified

is\_featured

is\_public

comments

metadata

url

raw

Fields to return

**raw**string 

Raw parameters to include in the 3rd-party request. Encoded as a URL component. eg. raw parameters: foo=bar&zoo=bar -> raw=foo%3Dbar%26zoo%3Dbar

**connection\_id**string  required 

ID of the connection

## Payload

**id**string 

**created\_at**date 

(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)

**updated\_at**date 

(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)

**item\_id**string 

Reference to the product being reviewed (reference to CommerceItem)

**item\_variant\_id**string 

Optional reference to specific variant if applicable (reference to CommerceCommerceItemvariant)

**location\_id**string 

(reference to CommerceLocation)

**rating**number 

1-5 rating

**title**string 

**content**string 

**author\_name**string 

**author\_email**string 

**author\_avatar\_url**string 

**author\_location**string 

**verified\_purchase**boolean 

**helpful\_votes**number 

**unhelpful\_votes**number 

**media** array 

Photosvideos attached to the review

**status** enum

Valid values:

 "PENDING" 

 "APPROVED" 

 "REJECTED" 

 "SPAM" 

**is\_verified**boolean 

**is\_featured**boolean 

**is\_public**boolean 

**comments** array 

**metadata** array 

**url**string 

**raw**any 

Original review data from source platform

## Returns

[CommerceReview](/commerce/review/model)

**id**string 

**created\_at**date 

(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)

**updated\_at**date 

(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)

**item\_id**string 

Reference to the product being reviewed (reference to CommerceItem)

**item\_variant\_id**string 

Optional reference to specific variant if applicable (reference to CommerceCommerceItemvariant)

**location\_id**string 

(reference to CommerceLocation)

**rating**number 

1-5 rating

**title**string 

**content**string 

**author\_name**string 

**author\_email**string 

**author\_avatar\_url**string 

**author\_location**string 

**verified\_purchase**boolean 

**helpful\_votes**number 

**unhelpful\_votes**number 

**media** array 

Photosvideos attached to the review

**status** enum

Valid values:

 "PENDING" 

 "APPROVED" 

 "REJECTED" 

 "SPAM" 

**is\_verified**boolean 

**is\_featured**boolean 

**is\_public**boolean 

**comments** array 

**metadata** array 

**url**string 

**raw**any 

Original review data from source platform

## Code Samples

### Node.js SDK

```
import { UnifiedTo } from '@unified-api/typescript-sdk';

const sdk = new UnifiedTo({
    security: {
        jwt: '<YOUR_API_KEY_HERE>',
    },
});

const connectionId = '5de520f96e439b002043d8dc';

const results = await sdk.commerce.createCommerceReview({ connectionId, commerceReview: { }, 
    fields: '',
    raw: '',
 });
```

### Node.js (axios)

```
const options = {
  method: 'POST',
  url: 'https://api.unified.to/commerce/5de520f96e439b002043d8dc/review',
  headers: {
    authorization: 'bearer .....'
  },
  data: undefined,
  params: {
    fields: '',
    raw: '',
  }
};

const results = await axios.request(options);
```

### Java

```
AsyncHttpClient client = new DefaultAsyncHttpClient();

client.prepare("POST", "https://api.unified.to/commerce/5de520f96e439b002043d8dc/review?fields=&raw=")
  .setHeader("accept", "application/json")
  .setHeader("authorization", ".....")
  .execute()
  .toCompletableFuture()
  .thenAccept(System.out::println)
  .join();

client.close();
```

### Go

```
import (
	"fmt"
	"net/http"
	"io/ioutil"
)

url := `https://api.unified.to/commerce/5de520f96e439b002043d8dc/review?fields=&raw=

req, _ := http.NewRequest("POST", url, nil)

req.Header.Add("accept", "application/json")
req.Header.Add("authorization", ".....")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)
```

### Python

```
import requests

url = "https://api.unified.to/commerce/5de520f96e439b002043d8dc/review?fields=&raw="

headers = {
    "accept": "application/json",
    "authorization": "....."
}

response = requests.post(url, headers=headers)
```

### PHP

```
$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.unified.to/commerce/5de520f96e439b002043d8dc/review?fields=&raw=",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_HTTPHEADER => [
    "accept: application/json",
    "authorization: ....."
  ],
]);
```

### Ruby

```
require 'uri'
require 'net/http'
require 'openssl'

url = URI("https://api.unified.to/commerce/5de520f96e439b002043d8dc/review?fields=&raw=")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["accept"] = 'application/json'
request["authorization"] = '....'

response = http.request(request)
puts response.read_body
```

### cURL

```
curl --request POST \
  --url 'https://api.unified.to/commerce/5de520f96e439b002043d8dc/review?fields=&raw=' \
  --header 'accept: application/json' \
  --header 'authorization: .....'
```
