Skip to content

Online Reviews API

Scrape online reviews instantly with a simple API call

Our Reviews APIs are the easiest way to scrape product reviews from ecommerce websites.

Getting Started

To scrape online reviews from the platforms we support, you need 2 query parameters:

  1. An API key, available here as api_key

  2. The encoded listing or product URL for which you need the reviews as url

  3. (Optional) The page number from which you want the reviews as page

The following command is an example of how you can get reviews for a listing on a platform we support:

curl -L -X GET 'https://data.unwrangle.com/api/getter/?url=<LISTING_URL>&api_key=<API_KEY>'
import requests

url = "https://data.unwrangle.com/api/getter/?url=<LISTING_URL>&api_key=<API_KEY>"

payload={}
headers = {}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.text)
var axios = require('axios');

var config = {
method: 'get',
url: 'https://data.unwrangle.com/api/getter/?url=<LISTING_URL>&api_key=<API_KEY>',
headers: { }
};

axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
Unirest.setTimeouts(0, 0);
HttpResponse<String> response = Unirest.get("https://data.unwrangle.com/api/getter/?url=%3CLISTING_URL%3E&api_key=%3CAPI_KEY%3E")
.asString();
require "uri"
require "net/http"

url = URI("https://data.unwrangle.com/api/getter/?url=<LISTING_URL>&api_key=<API_KEY>")

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

request = Net::HTTP::Get.new(url)

response = https.request(request)
puts response.read_body
<?php
$client = new http\Client;
$request = new http\Client\Request;
$request->setRequestUrl('https://data.unwrangle.com/api/getter/?url=<LISTING_URL>&api_key=<API_KEY>');
$request->setRequestMethod('GET');
$request->setOptions(array());

$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();
package main

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

func main() {

url := "https://data.unwrangle.com/api/getter/?url=%3CLISTING_URL%3E&api_key=%3CAPI_KEY%3E"
method := "GET"

client := &http.Client {
}
req, err := http.NewRequest(method, url, nil)

if err != nil {
    fmt.Println(err)
    return
}
res, err := client.Do(req)
if err != nil {
    fmt.Println(err)
    return
}
defer res.Body.Close()

body, err := ioutil.ReadAll(res.Body)
if err != nil {
    fmt.Println(err)
    return
}
fmt.Println(string(body))
}

The reviews returned will be for the page number specified (default is 1) sorted by recency.

URL

The query parameter url is where the product or listing URL must go, in an encoded format.

Say you want the reviews for this particular Amazon listing: https://www.amazon.com/Arctix-Womens-Jacket-Island-Medium/dp/B07W6X1K55.

For this the listing URL must be encoded and assigned to the url query parameter.

After encoding it will look like this: https%3A%2F%2Fwww.amazon.com%2FArctix-Womens-Jacket-Island-Medium%2Fdp%2FB07W6X1K55.

Encoding the URL is trivially easy in most programming languages. The following snippet showcases how to do this:

sudo apt-get install gridsite-clients
urlencode "LISTING URL"
import urllib.parse
encoded_url = urllib.parse.quote("LISTING URL")
encoded_url = encodeURIComponent("LISTING URL")
String encoded_url = URLEncoder.encode("LISTING URL", "UTF-8");
require 'uri'
encoded_url = URI::encode("LISTING URL")
<?php

$url_encoded = urlencode("YOUR URL");

?>
package main

import (
    "net/url"
)

func main() {
    encoded_url := url.QueryEscape("YOUR URL")
}

Supported Platforms

Platform Expected URL Format (after encoding)
Yelp https%3A%2F%2Fwww.yelp.com%2Fbiz%2Fchateau-tivoli-bed-and-breakfast-san-francisco
Amazon https%3A%2F%2Fwww.amazon.com%2FColumbia-Glennaker-Jacket-Black-Large%2Fdp%2FB00LEX0Y3K%2F
Costco https%3A%2F%2Fwww.costco.com%2Fapple-airpods-pro.product.100525619.html
Target https%3A%2F%2Fwww.target.com%2Fp%2Fapple-airpods-with-charging-case%2F-%2FA-54191097
BestBuy https%3A%2F%2Fwww.bestbuy.com%2Fsite%2Fbose-quietcomfort-earbuds-true-wireless-noise-cancelling-in-ear-headphones-triple-black%2F6419203.p
Home Depot https%3A%2F%2Fwww.homedepot.com%2Fp%2FHDX-100-ft-16-3-Indoor-Outdoor-Extension-Cord-Orange-HD-277-525%2F100650619
Walmart https%3A%2F%2Fwww.walmart.com%2Fip%2FiPhone-Charger-2Pacsk-3-Ft-Charging-Cable-Wall-Power-Adapter-Plug-Block-Compatible-12-pro-max-11-X-8-8-Plus-7-7-Plus-6-6S-6-Plu-5S-SE-Mini-Air-Pro-Ca%2F404907731
Sams' Club https%3A%2F%2Fwww.samsclub.com%2Fapple-airpods-with-charging-case%2F54191097%2F
Lowes https%3A%2F%2Fwww.lowes.com%2Fsearch%3FsearchTerm%3Ddrill%26searchBy%3Dkeyword
MediaMarkt https%3A%2F%2Fwww.mediamarkt.de%2Fsearch%3FsearchTerm%3Dlaptop%26searchBy%3Dkeyword
Currys.co.uk https%3A%2F%2Fwww.currys.co.uk%2Fsearch%3FsearchTerm%3Dlaptop%26searchBy%3Dkeyword

We can add support for new platforms within 2 or 3 days in most cases. Please reach out to us at sales@unwrangle.com or on the chat box on our website.

Countries

On Amazon and MediaMarkt, each country extension is supported (for e.g. https://www.amazon.de/<listing_path> or https://www.mediamarkt.de/<listing_path>) and our API responds with the default language for that country.

Credits

Each successful API request to any of the Reviews APIs costs 10 credits.

Example

An example of a typical request and response is showcased below:

curl -L -X GET 'https://data.unwrangle.com/api/getter/?url=https%3A%2F%2Fwww.amazon.com%2FArctix-Womens-Jacket-Island-Medium%2Fdp%2FB07W6X1K55&platform=amazon_reviews&page=1&api_key=API_KEY'
import requests

url = "https://data.unwrangle.com/api/getter/?url=https%3A%2F%2Fwww.amazon.com%2FArctix-Womens-Jacket-Island-Medium%2Fdp%2FB07W6X1K55&platform=amazon_reviews&page=1&api_key=<API_KEY>"

payload={}
headers = {}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.text)
var axios = require('axios');

var config = {
method: 'get',
url: 'https://data.unwrangle.com/api/getter/?url=https%3A%2F%2Fwww.amazon.com%2FArctix-Womens-Jacket-Island-Medium%2Fdp%2FB07W6X1K55&platform=amazon_reviews&page=1&api_key=<API_KEY>',
headers: { }
};

axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
Unirest.setTimeouts(0, 0);
HttpResponse<String> response = Unirest.get("https://data.unwrangle.com/api/getter/?url=https%3A%2F%2Fwww.amazon.com%2FArctix-Womens-Jacket-Island-Medium%2Fdp%2FB07W6X1K55&platform=amazon_reviews&page=1&api_key=<API_KEY>")
.asString();
require "uri"
require "net/http"

url = URI("https://data.unwrangle.com/api/getter/?url=https%3A%2F%2Fwww.amazon.com%2FArctix-Womens-Jacket-Island-Medium%2Fdp%2FB07W6X1K55&platform=amazon_reviews&page=1&api_key=<API_KEY>")

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

request = Net::HTTP::Get.new(url)

response = https.request(request)
puts response.read_body
<?php
$client = new http\Client;
$request = new http\Client\Request;
$request->setRequestUrl('https://data.unwrangle.com/api/getter/?url=https%3A%2F%2Fwww.amazon.com%2FArctix-Womens-Jacket-Island-Medium%2Fdp%2FB07W6X1K55&platform=amazon_reviews&page=1&api_key=<API_KEY>');
$request->setRequestMethod('GET');
$request->setOptions(array());

$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();
package main

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

func main() {

url := "https://data.unwrangle.com/api/getter/?url=https%3A%2F%2Fwww.amazon.com%2FArctix-Womens-Jacket-Island-Medium%2Fdp%2FB07W6X1K55&platform=amazon_reviews&page=1&api_key=<API_KEY>"
method := "GET"

client := &http.Client {
}
req, err := http.NewRequest(method, url, nil)

if err != nil {
    fmt.Println(err)
    return
}
res, err := client.Do(req)
if err != nil {
    fmt.Println(err)
    return
}
defer res.Body.Close()

body, err := ioutil.ReadAll(res.Body)
if err != nil {
    fmt.Println(err)
    return
}
fmt.Println(string(body))
}

For the above request the response looks like this:

Note

When the Amazon Reviews API is used without a cookie, it returns the most recent 8 reviews. See Amazon Product Reviews URL for more details.

{
    "success": true,
    "url": "https://www.amazon.com/Arctix-Womens-Jacket-Island-Medium/dp/B07W6X1K55",
    "sort_by": "recent",
    "total_results": 8,
    "reviews": [
        {
            "id": "R2QFEOSF7N2H4H",
            "date": "2024-10-19",
            "author_name": "Matthew",
            "author_url": "https://www.amazon.com/gp/profile/amzn1.account.AEC7YLVC2TMZQZI4IL3PVBE5HTLQ/ref=cm_cr_othr_d_gw_tr?ie=UTF8",
            "rating": 2.0,
            "review_title": "2.0 out of 5 stars",
            "review_url": "https://www.amazon.com/gp/customer-reviews/R2QFEOSF7N2H4H/ref=cm_cr_othr_d_rvw_ttl?ie=UTF8&ASIN=B07W6X1K55",
            "review_text": "Runs very small",
            "review_imgs": [],
            "review_videos": [],
            "meta_data": {
                "variant_info": [
                    "Size: 3X",
                    "Color: Plum"
                ],
                "verified_purchase": true,
                "amazon_vine": false
            },
            "location": "United States"
        },
        {
            "id": "R3H9I0EJQ93746",
            "date": "2024-10-17",
            "author_name": "Kati",
            "author_url": "https://www.amazon.com/gp/profile/amzn1.account.AFMUL3EHZBAUKB5M6GAQAIC2WCMA/ref=cm_cr_othr_d_gw_tr?ie=UTF8",
            "rating": 5.0,
            "review_title": "5.0 out of 5 stars",
            "review_url": "https://www.amazon.com/gp/customer-reviews/R3H9I0EJQ93746/ref=cm_cr_othr_d_rvw_ttl?ie=UTF8&ASIN=B07W6X1K55",
            "review_text": "Love the the color. TTC and quality is 10/10!",
            "review_imgs": [],
            "review_videos": [],
            "meta_data": {
                "variant_info": [],
                "verified_purchase": true,
                "amazon_vine": false
            },
            "location": "United States"
        },
        {
            "id": "R2GW7TL373M1YH",
            "date": "2024-10-14",
            "author_name": "AndreaLK",
            "author_url": "https://www.amazon.com/gp/profile/amzn1.account.AHQLMIX3DYXXFZ42EZLXUQTWGLRA/ref=cm_cr_othr_d_gw_tr?ie=UTF8",
            "rating": 2.0,
            "review_title": "2.0 out of 5 stars",
            "review_url": "https://www.amazon.com/gp/customer-reviews/R2GW7TL373M1YH/ref=cm_cr_othr_d_rvw_ttl?ie=UTF8&ASIN=B07W6X1K55",
            "review_text": "Way too large around chest and arms.  Returning.",
            "review_imgs": [],
            "review_videos": [],
            "meta_data": {
                "variant_info": [
                    "Size: 3X",
                    "Color: Black"
                ],
                "verified_purchase": true,
                "amazon_vine": false
            },
            "location": "United States"
        },
        {
            "id": "R3CJ3Q4S3OOKTU",
            "date": "2024-10-02",
            "author_name": "megan",
            "author_url": "https://www.amazon.com/gp/profile/amzn1.account.AHOSNNW3THBHYHUYJ6GEHMP6HWMA/ref=cm_cr_othr_d_gw_tr?ie=UTF8",
            "rating": 5.0,
            "review_title": "5.0 out of 5 stars",
            "review_url": "https://www.amazon.com/gp/customer-reviews/R3CJ3Q4S3OOKTU/ref=cm_cr_othr_d_rvw_ttl?ie=UTF8&ASIN=B07W6X1K55",
            "review_text": "Keeps you warm and dry",
            "review_imgs": [],
            "review_videos": [],
            "meta_data": {
                "variant_info": [
                    "Size: Small",
                    "Color: Slate Blue"
                ],
                "verified_purchase": true,
                "amazon_vine": false
            },
            "location": "United States"
        },
        {
            "id": "R1Q1UHYF5WT11Z",
            "date": "2024-09-29",
            "author_name": "amandamay24",
            "author_url": "https://www.amazon.com/gp/profile/amzn1.account.AHG6XTLFIEJM7CYUOVB52ZBOVOXQ/ref=cm_cr_othr_d_gw_tr?ie=UTF8",
            "rating": 5.0,
            "review_title": "5.0 out of 5 stars",
            "review_url": "https://www.amazon.com/gp/customer-reviews/R1Q1UHYF5WT11Z/ref=cm_cr_othr_d_rvw_ttl?ie=UTF8&ASIN=B07W6X1K55",
            "review_text": "I love the plum color, the fit, and the quality of this jacket. I got a medium and I usually wear a small or medium. The sleeves are perfect, not too long at all (I have crazy long arms, though, and most shirts are too short for me).",
            "review_imgs": [],
            "review_videos": [],
            "meta_data": {
                "variant_info": [
                    "Size: Medium",
                    "Color: Plum"
                ],
                "verified_purchase": true,
                "amazon_vine": false
            },
            "location": "United States"
        },
        {
            "id": "R2G1ARVUGQSL31",
            "date": "2024-09-14",
            "author_name": "Brianne Algerio",
            "author_url": "https://www.amazon.com/gp/profile/amzn1.account.AHXKO4CKJXSYTVSU47FR5XDSYR5Q/ref=cm_cr_othr_d_gw_tr?ie=UTF8",
            "rating": 5.0,
            "review_title": "5.0 out of 5 stars",
            "review_url": "https://www.amazon.com/gp/customer-reviews/R2G1ARVUGQSL31/ref=cm_cr_othr_d_rvw_ttl?ie=UTF8&ASIN=B07W6X1K55",
            "review_text": "One thing I wish it had is an inside pocket that was just as deep or close to the outter pockets.",
            "review_imgs": [],
            "review_videos": [],
            "meta_data": {
                "variant_info": [
                    "Size: Medium",
                    "Color: Black"
                ],
                "verified_purchase": true,
                "amazon_vine": false
            },
            "location": "United States"
        },
        {
            "id": "R2Y2607Q4TUY4V",
            "date": "2024-09-12",
            "author_name": "julia",
            "author_url": "https://www.amazon.com/gp/profile/amzn1.account.AHEBE4DGTSHKGUVFWUYNV5RKTZUQ/ref=cm_cr_othr_d_gw_tr?ie=UTF8",
            "rating": 3.0,
            "review_title": "3.0 out of 5 stars",
            "review_url": "https://www.amazon.com/gp/customer-reviews/R2Y2607Q4TUY4V/ref=cm_cr_othr_d_rvw_ttl?ie=UTF8&ASIN=B07W6X1K55",
            "review_text": "Hood is big so it covers you from the rain. Feels like plastic, but like the mesh.",
            "review_imgs": [],
            "review_videos": [],
            "meta_data": {
                "variant_info": [
                    "Size: 3X",
                    "Color: Plum"
                ],
                "verified_purchase": true,
                "amazon_vine": false
            },
            "location": "United States"
        },
        {
            "id": "R1TUIJQU05Q2KE",
            "date": "2024-09-08",
            "author_name": "missy",
            "author_url": "https://www.amazon.com/gp/profile/amzn1.account.AFQMETTQDLPAQXTY2OXYENYD2HUA/ref=cm_cr_othr_d_gw_tr?ie=UTF8",
            "rating": 5.0,
            "review_title": "5.0 out of 5 stars",
            "review_url": "https://www.amazon.com/gp/customer-reviews/R1TUIJQU05Q2KE/ref=cm_cr_othr_d_rvw_ttl?ie=UTF8&ASIN=B07W6X1K55",
            "review_text": "I really like the fabric and fit of this jacket.  Have not rain tested it yet, so we will see.",
            "review_imgs": [],
            "review_videos": [],
            "meta_data": {
                "variant_info": [
                    "Size: Small",
                    "Color: Teal"
                ],
                "verified_purchase": true,
                "amazon_vine": false
            },
            "location": "United States"
        }
    ],
    "result_count": 8,
    "meta_data": {},
    "remaining_credits": 1996539
}

Conclusion

The Online Reviews API is a powerful tool for extracting customer reviews from various online platforms. By using this API, you can quickly and easily access a wide range of customer feedback, which can be invaluable for making informed business decisions.