# Amazon Seller Feedback

{% hint style="success" %}
To enable this feature, set the **`type=seller_feeback`**&#x70;arameter.
{% endhint %}

The request can return a maximum of 5 seller feedback records. To access additional seller feedback records beyond the first page, you can utilize the `page` parameter for pagination. By inspecting the pagination.has\_next\_page property, you can determine if there are more results available on the next page to retrieve.

The main keys included in the returned JSON object are:

* `seller_feedback`
* `pagination`

### Amazon Seller Feedback Parameters

The Amazon Seller feature only takes one specific parameter:

<table><thead><tr><th width="129">Parameter</th><th width="102" align="center">Type</th><th>Description</th></tr></thead><tbody><tr><td>seller_id<br> <mark style="color:red;background-color:red;">Required</mark> </td><td align="center"><code>string</code></td><td>The ID of an amazon seller.</td></tr></tbody></table>

Your full **GET** request should then be sent to the following address:

```
https://ecom.shifter.io/v1?engine=amazon&api_key=<YOUR_API_KEY>&type=seller_feeback&seller_id=AAZRLVTNON75Z
```

### Amazon Seller Feedback Integration Examples

{% tabs %}
{% tab title="cURL" %}

```bash
curl --request GET --url "https://ecom.shifter.io/v1?engine=amazon&api_key=<YOUR_API_KEY>&type=seller_feeback&seller_id=AAZRLVTNON75Z
```

{% endtab %}

{% tab title="NodeJS" %}

```javascript
const http = require("https");

const options = {
  "method": "GET",
  "hostname": "ecom.shifter.io",
  "port": null,
  "path": "/v1?engine=amazon&api_key=<YOUR_API_KEY>&type=seller_feeback&seller_id=AAZRLVTNON75Z",
  "headers": {}
};

const req = http.request(options, function (res) {
  const chunks = [];

  res.on("data", function (chunk) {
    chunks.push(chunk);
  });

  res.on("end", function () {
    const body = Buffer.concat(chunks);
    console.log(body.toString());
  });
});

req.end();
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

API_KEY = '<YOUR_API_KEY>'
SCRAPER_URL = 'https://ecom.shifter.io/v1'

PARAMS = {
    "api_key":API_KEY,
    "engine":"amazon",
    "type":"seller_feeback",
    "seller_id":"AAZRLVTNON75Z"
}

response = requests.get(SCRAPER_URL, params=PARAMS)

print(response.text)
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://ecom.shifter.io/v1?engine=amazon&api_key=<YOUR_API_KEY>&type=seller_feeback&&seller_id=AAZRLVTNON75Z",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
```

{% endtab %}

{% tab title="Go" %}

```go
package main

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

func main() {

	url := "https://ecom.shifter.io/v1?engine=amazon&api_key=<YOUR_API_KEY>&type=seller_feeback&seller_id=AAZRLVTNON75Z"

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

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

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

	fmt.Println(res)
	fmt.Println(string(body))

}
```

{% endtab %}

{% tab title="Java" %}

```java
HttpResponse<String> response = Unirest.get("https://ecom.shifter.io/v1?engine=amazon&api_key=<YOUR_API_KEY>&type=seller_feeback&seller_id=AAZRLVTNON75Z")
  .asString();
```

{% endtab %}

{% tab title=".NET" %}

```vbnet
var client = new RestClient("https://ecom.shifter.io/v1?engine=amazon&api_key=<YOUR_API_KEY>&type=seller_feeback&seller_id=AAZRLVTNON75Z");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);
```

{% endtab %}

{% tab title="Ruby" %}

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

url = URI("https://ecom.shifter.io/v1?engine=amazon&api_key=<YOUR_API_KEY>&type=seller_feeback&seller_id=AAZRLVTNON75Z")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

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

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

{% endtab %}
{% endtabs %}

<details>

<summary>Response Example</summary>

```javascript
{
    "search_parameters": {
        "amazon_url": "https://www.amazon.com/",
        "engine": "amazon",
        "amazon_domain": "amazon.com",
        "device": "desktop",
        "type": "seller_feedback",
        "seller_id": "AAZRLVTNON75Z",
        "scroll_to_bottom": true,
        "wait_bottom_carousel": true,
        "wait_for_video": true,
        "wait_for_offers": true
    },
    "search_information": {
        "organic_results_state": "Results for exact spelling"
    },
    "seller_feedback": [
        {
            "rater": "Jorge balarezo",
            "rating": 5,
            "has_response": false,
            "body": "Tiene un perfume muy agradable ,siempre lo uso lo recomiendo no se van a arrepentir,lo uso ppr a&ntilde;os y estoy contento",
            "date": {
                "raw": "July 24, 2023",
                "utc": "2023-07-24T04:00:00.000Z"
            },
            "position": 1
        },
        {
            "rater": "Sarah M.",
            "rating": 5,
            "has_response": false,
            "body": "Great service",
            "date": {
                "raw": "July 24, 2023",
                "utc": "2023-07-24T04:00:00.000Z"
            },
            "position": 2
        },
        {
            "rater": "Stafford T. Decambra",
            "rating": 5,
            "has_response": false,
            "body": "As described.....thanks!",
            "date": {
                "raw": "July 24, 2023",
                "utc": "2023-07-24T04:00:00.000Z"
            },
            "position": 3
        },
        {
            "rater": "Chad H.",
            "rating": 1,
            "has_response": false,
            "body": "Specifically searched for and ordered a Sharp EL-1801C and was shipped a Sharp EL-1801V. We were shipped a nicer and more expensive calculator, but ordered the &quot;C&quot; vs &quot;V&quot; due to space available and design of keys. Just frustrated that the product was different than advertised or shown.",
            "date": {
                "raw": "July 24, 2023",
                "utc": "2023-07-24T04:00:00.000Z"
            },
            "position": 4
        },
        {
            "rater": "T.S",
            "rating": 5,
            "has_response": false,
            "body": "Great",
            "date": {
                "raw": "July 24, 2023",
                "utc": "2023-07-24T04:00:00.000Z"
            },
            "position": 5
        }
    ],
    "pagination": {
        "current_page": 1,
        "has_next_page": true,
        "next_page": 2
    }
}
```

</details>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://developers.shifter.io/amazon-api/amazon-seller-feedback.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
