# Amazon

Com o Web Scraper API, você pode fazer scraping e analisar vários tipos de **Amazon** páginas; abaixo está uma visão geral de todos os scrapers compatíveis e seus respectivos `source` valores.

| Fonte                | Descrição                                                                                                                      | Parser dedicado                                                                                                                         |
| -------------------- | ------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------- |
| `amazon_product`     | [**Página de produto**](/api-targets/pt-br/e-commerce/amazon/product.md) de um ASIN de sua escolha.                            | Sim.                                                                                                                                    |
| `amazon_search`      | [**Resultados de pesquisa**](/api-targets/pt-br/e-commerce/amazon/search.md) para um termo de busca de sua escolha.            | Sim.                                                                                                                                    |
| `amazon_pricing`     | [**Lista de ofertas**](/api-targets/pt-br/e-commerce/amazon/pricing.md) disponíveis para um ASIN de sua escolha.               | Sim.                                                                                                                                    |
| `amazon_sellers`     | [**Informações do vendedor**](/api-targets/pt-br/e-commerce/amazon/sellers.md) de um vendedor de sua escolha.                  | Sim.                                                                                                                                    |
| `amazon_bestsellers` | Lista de [**itens mais vendidos**](/api-targets/pt-br/e-commerce/amazon/best-sellers.md) em um nó de taxonomia de sua escolha. | Sim                                                                                                                                     |
| `amazon`             | Envie qualquer [**URL da Amazon**](/api-targets/pt-br/e-commerce/amazon/url.md) que quiser.                                    | Limitado a URLs de tipos específicos [**de página da Amazon**](/products/pt-br/web-scraper-api/features/localization/domain-locale.md). |

## Primeiros passos

**Crie suas credenciais de usuário da API**: Cadastre-se para uma avaliação gratuita ou compre o produto no [**painel da Oxylabs**](https://dashboard.oxylabs.io/en/registration) para criar suas credenciais de usuário da API (`USERNAME` e `PASSWORD`).

{% hint style="warning" %}
Se você precisar de mais de um usuário de API para sua conta, entre em contato com nosso [**suporte ao cliente**](mailto:support@oxylabs.io) ou envie uma mensagem para nosso suporte por chat ao vivo 24/7.
{% endhint %}

### Exemplo de solicitação

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

```bash
curl 'https://realtime.oxylabs.io/v1/queries' \
--user "USERNAME:PASSWORD" \
-H "Content-Type: application/json" \
-d '{
        "source": "amazon_product",
        "query": "B07FZ8S74R",
        "geo_location": "90210",
        "parse": true
    }'
```

{% endtab %}

{% tab title="Python" %}

```python
import requests
from pprint import pprint

# Estruture o payload.
payload = {
    'source': 'amazon_product',
    'query': 'B07FZ8S74R',
    'geo_location': '90210',
    'parse': True
}

# Obtenha a resposta.
response = requests.request(
    'POST',
    'https://realtime.oxylabs.io/v1/queries',
    auth=('USERNAME', 'PASSWORD'),
    json=payload,
)

# Imprima a resposta formatada em stdout.
pprint(response.json())
```

{% endtab %}

{% tab title="Node.js" %}

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

const username = "USERNAME";
const password = "PASSWORD";
const body = {
    source: "amazon_product",
    query: "B07FZ8S74R",
    geo_location: "90210",
    parse: true,
};

const options = {
    hostname: "realtime.oxylabs.io",
    path: "/v1/queries",
    method: "POST",
    headers: {
        "Content-Type": "application/json",
        Authorization:
            "Basic " + Buffer.from(`${username}:${password}`).toString("base64"),
    },
};

const request = https.request(options, (response) => {
    let data = "";

    response.on("data", (chunk) => {
        data += chunk;
    });

    response.on("end", () => {
        const responseData = JSON.parse(data);
        console.log(JSON.stringify(responseData, null, 2));
    });
});

request.on("error", (error) => {
    console.error("Error:", error);
});

request.write(JSON.stringify(body));
request.end();
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php

$params = array(
    'source' => 'amazon_product',
    'query' => 'B07FZ8S74R',
    'geo_location' => '90210',
    'parse' => true,
);

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "https://realtime.oxylabs.io/v1/queries");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($params));
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_USERPWD, "USERNAME" . ":" . "PASSWORD");

$headers = array();
$headers[] = "Content-Type: application/json";
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$result = curl_exec($ch);
echo $result;

if (curl_errno($ch)) {
    echo 'Error:' . curl_error($ch);
}
curl_close($ch);
?>
```

{% endtab %}

{% tab title="C#" %}

```csharp
using System;
using System.Net.Http;
using System.Net.Http.Json;
using System.Threading.Tasks;

namespace OxyApi
{
    class Program
    {
        static async Task Main()
        {
            const string Username = "USERNAME";
            const string Password = "PASSWORD";

            var parameters = new {
                source = "amazon_product",
                query = "B07FZ8S74R",
                geo_location = "90210",
                parse = true
            };

            var client = new HttpClient();

            Uri baseUri = new Uri("https://realtime.oxylabs.io");
            client.BaseAddress = baseUri;

            var requestMessage = new HttpRequestMessage(HttpMethod.Post, "/v1/queries");
            requestMessage.Content = JsonContent.Create(parameters);

            var authenticationString = $"{Username}:{Password}";
            var base64EncodedAuthenticationString = Convert.ToBase64String(System.Text.Encoding.ASCII.GetBytes(authenticationString));
            requestMessage.Headers.Add("Authorization", "Basic " + base64EncodedAuthenticationString);

            var response = await client.SendAsync(requestMessage);
            var contents = await response.Content.ReadAsStringAsync();

            Console.WriteLine(contents);
        }
    }
}
```

{% endtab %}

{% tab title="Golang" %}

```go
package main

import (
	"bytes"
	"encoding/json"
	"fmt"
	"io/ioutil"
	"net/http"
)

func main() {
	const Username = "USERNAME"
	const Password = "PASSWORD"

	payload := map[string]interface{}{
		"source":       "amazon_product",
		"query":        "B07FZ8S74R",
		"geo_location": "90210",
		"parse":        true,
	}

	jsonValue, _ := json.Marshal(payload)

	client := &http.Client{}
	request, _ := http.NewRequest("POST",
		"https://realtime.oxylabs.io/v1/queries",
		bytes.NewBuffer(jsonValue),
	)

	request.SetBasicAuth(Username, Password)
	request.Header.Set("Content-Type", "application/json")
	response, _ := client.Do(request)

	responseText, _ := ioutil.ReadAll(response.Body)
	fmt.Println(string(responseText))
}
```

{% endtab %}

{% tab title="HTTP" %}

```http
https://Realtime.oxylabs.io/v1/queries?source=amazon_product&query=B07FZ8S74R&geo_location=90210&parse=true&access_token=12345abcde
```

{% endtab %}

{% tab title="Java" %}

```java
package org.example;

import okhttp3.*;
import org.json.JSONObject;
import java.util.concurrent.TimeUnit;

public class Main implements Runnable {
    private static final String AUTHORIZATION_HEADER = "Authorization";
    public static final String USERNAME = "USERNAME";
    public static final String PASSWORD = "PASSWORD";

    public void run() {
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("source", "amazon_product");
        jsonObject.put("query", "B07FZ8S74R");
        jsonObject.put("geo_location", "90210");
        jsonObject.put("parse", true);

        Authenticator authenticator = (route, response) -> {
            String credential = Credentials.basic(USERNAME, PASSWORD);
            return response
                    .request()
                    .newBuilder()
                    .header(AUTHORIZATION_HEADER, credential)
                    .build();
        };

        var client = new OkHttpClient.Builder()
                .authenticator(authenticator)
                .readTimeout(180, TimeUnit.SECONDS)
                .build();

        var mediaType = MediaType.parse("application/json; charset=utf-8");
        var body = RequestBody.create(jsonObject.toString(), mediaType);
        var request = new Request.Builder()
                .url("https://realtime.oxylabs.io/v1/queries")
                .post(body)
                .build();

        try (var response = client.newCall(request).execute()) {
            if (response.body() != null) {
                try (var responseBody = response.body()) {
                    System.out.println(responseBody.string());
                }
            }
        } catch (Exception exception) {
            System.out.println("Error: " + exception.getMessage());
        }

        System.exit(0);
    }

    public static void main(String[] args) {
        new Thread(new Main()).start();
    }
}
```

{% endtab %}

{% tab title="JSON" %}

```json
{
    "source": "amazon_product",
    "query": "B07FZ8S74R",
    "geo_location": "90210",
    "parse": true
}
```

{% endtab %}
{% endtabs %}

<details>

<summary>Exemplo de saída</summary>

```json
{
    "results": [
        {
            "content": {
                "ads": [
                    {
                        "pos": 1,
                        "asin": "B07KRY43KN",
                        "type": "organic_also_viewed",
                        "price": 29.99,
                        "title": "Echo Glow - Lâmpada inteligente multicolorida, funciona com Alexa",
                        "images": [
                            "https://images-na.ssl-images-amazon.com/images/I/61kaGoho9HL._AC_UL160_SR160,160_.jpg"
                        ],
                        "rating": 4.5,
                        "location": "carousel",
                        "price_upper": 29.99,
                        "reviews_count": 48742,
                        "is_prime_eligible": false
                    },
                    {...}
                ],
                "url": "https://www.amazon.com/dp/B07FZ8S74R",
                "asin": "B07FZ8S74R",
                "page": 1,
                "brand": "Amazon",
                "price": 0,
                "stock": "Atualmente indisponível. Não sabemos quando ou se este item voltará ao estoque.",
                "title": "Echo Dot (3ª geração, lançamento de 2018) - Alto-falante inteligente com Alexa - Carvão",
                "coupon": "",
                "images": [
                    "https://m.media-amazon.com/images/I/61MZfowYoaL._AC_SL1000_.jpg",
                    "..."
                ],
                "rating": 4.7,
                "category": [],
                "currency": "USD",
                "delivery": [],
                "page_type": "Produto",
                "price_sns": 0,
                "variation": [],
                "has_videos": false,
                "sales_rank": [],
                "top_review": "Recentemente adicionei o Echo Dot (3ª geração, lançamento de 2018) à configuração da minha casa inteligente, e estou muito impressionado com seu desempenho e capacidades. Este alto-falante inteligente compacto oferece muito em termos de funcionalidade e conveniência. A configuração foi muito fácil \u2013 em minutos, eu já tinha a Alexa pronta para ajudar. O reconhecimento de voz é notavelmente preciso, e as respostas da Alexa são rápidas e úteis. Seja para verificar o clima, definir temporizadores ou reproduzir minha música favorita, o Echo Dot se integra facilmente à minha rotina diária. A qualidade do som é surpreendentemente robusta para um dispositivo tão compacto. A clareza e a profundidade do áudio são impressionantes, tornando-o perfeito para streaming de música ou até mesmo como um alto-falante secundário para um sistema de som maior. Aprecio o design elegante e discreto do Echo Dot, que se integra perfeitamente à decoração de qualquer ambiente. A cor Carvão adiciona um toque de elegância, tornando-o uma adição visualmente agradável ao meu espaço de estar. Um dos recursos de destaque é o controle da casa inteligente. O Echo Dot se conecta facilmente com vários dispositivos inteligentes, permitindo-me controlar luzes, termostatos e muito mais com simples comandos de voz. Ele realmente melhora a conveniência geral da configuração da minha casa inteligente. Em conclusão, o Echo Dot (3ª geração, lançamento de 2018) provou ser uma adição inestimável à minha casa. Sua combinação de precisão no reconhecimento de voz, qualidade de som impressionante e integração perfeita com a casa inteligente fazem dele um produto de destaque no mercado de alto-falantes inteligentes. Se você está procurando um alto-falante inteligente confiável e cheio de recursos, o Echo Dot é uma excelente escolha \u2013 altamente recomendado!\n  \nLeia mais",
                "asin_in_url": "B07FZ8S74R",
                "description": "",
                "parent_asin": "B07H65KP63",
                "price_upper": 0,
                "pricing_str": "",
                "pricing_url": "https://www.amazon.com/gp/offer-listing/B07FZ8S74R?startIndex=0",
                "manufacturer": "Amazon",
                "price_buybox": -1,
                "product_name": "Echo Dot (3ª geração, lançamento de 2018) - Alto-falante inteligente com Alexa - Carvão",
                "bullet_points": "CONHEÇA O ECHO DOT - Nosso alto-falante inteligente mais compacto, que se encaixa perfeitamente em espaços pequenos.\nSOM RICO E ALTO - Qualidade de áudio melhor do que a do Echo Dot Gen 2, para um som mais rico e mais alto. Faça pareamento com um segundo Echo Dot para som estéreo.\nALEXA AJUDA VOCÊ A FAZER MAIS COM O PRIME - Ouça milhões de músicas com Amazon Music, use sua voz para fazer frete grátis em 2 dias, ouça audiolivros no Audible e muito mais.\nFACILITE SUA VIDA - A Alexa pode definir temporizadores, verificar o clima, ler notícias, ajustar termostatos, responder perguntas e mais para ajudar nas tarefas diárias.\nPROJETADO PARA PROTEGER SUA PRIVACIDADE \u2013 Construído com várias camadas de controles de privacidade, incluindo a capacidade de excluir suas gravações, desativar o microfone e mais controles de privacidade no app.\nCONTROLE A MÚSICA COM UMA FRASE SIMPLES - O Echo Dot permite transmitir músicas do Amazon Music, Apple Music, Spotify, SiriusXM e outros, além de via Bluetooth. O controle por voz com a Alexa facilita pular para a próxima música, ajustar o volume e pausar sem levantar.\nCONECTE-SE COM OUTRAS PESSOAS SEM USAR AS MÃOS - Ligue para amigos e familiares que tenham o app Alexa ou um dispositivo Echo. Entre instantaneamente em outros cômodos ou anuncie para a casa toda que o jantar está pronto.\nALEXA TEM HABILIDADES - Com dezenas de milhares de skills e contando, a Alexa está sempre ficando mais inteligente e adicionando novas habilidades, como monitoramento de atividade física, jogos e muito mais.",
                "price_initial": 0,
                "pricing_count": 1,
                "reviews_count": 985157,
                "sns_discounts": [],
                "developer_info": [],
                "price_shipping": 0,
                "featured_merchant": [],
                "is_prime_eligible": false,
                "parse_status_code": 12005,
                "answered_questions_count": 0,
                "rating_stars_distribution": [
                    {
                        "rating": 5,
                        "percentage": 82
                    },
                    {...}
                ]
            },
            "created_at": "2024-07-01 09:05:45",
            "updated_at": "2024-07-01 09:05:55",
            "page": 1,
            "url": "https://www.amazon.com/dp/B07FZ8S74R",
            "job_id": "7213467808577910785",
            "status_code": 200,
            "parser_type": ""
        }
    ]
}
```

</details>

Usamos o método de integração [**Realtime**](/products/pt-br/web-scraper-api/integration-methods/realtime.md) síncrona em nossos exemplos. Se você quiser usar [**Proxy Endpoint**](/products/pt-br/web-scraper-api/integration-methods/proxy-endpoint.md) ou a integração assíncrona [**Push-Pull**](/products/pt-br/web-scraper-api/integration-methods/push-pull.md) , consulte a seção [**métodos de integração**](/products/pt-br/web-scraper-api/integration-methods.md) .

Opcionalmente, você pode incluir parâmetros adicionais como `geo_location`, `user_agent_type`, `parse`, `render` e mais para personalizar sua solicitação de scraping. Leia mais:

{% content-ref url="/spaces/OBEE5GAZ3BuoLyZVZDxR/pages/fee151ef5cad1073e50fe123dcce0978bce96986" %}
[Recursos](/products/pt-br/web-scraper-api/features.md)
{% endcontent-ref %}


---

# 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.oxylabs.io/api-targets/pt-br/e-commerce/amazon.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.
