# Pricing

The `amazon_pricing` data source is designed to retrieve Amazon product offer listings. To see what the parsed output looks like, download [**this**](https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FiwDdoZGfMbUe5cRL2417%2Fuploads%2FhGVtkmLp7gccwTLCJzLY%2Famazon_pricing.json?alt=media\&token=a30a8253-225f-44c2-880b-850e94e23c21) JSON file.

{% hint style="info" %}
Explore output [**data dictionary**](#data-dictionary) for Amazon Pricing, offering a brief description, screenshot, parsed JSON code snippet, and a table defining each parsed field. Navigate through the details using the right-side navigation or scrolling down the page.
{% endhint %}

## Request samples

In the code examples below, we make a request to retrieve product offer listing page for ASIN B087TXHLVQ on `amazon.nl` marketplace.

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

```shell
curl 'https://realtime.oxylabs.io/v1/queries' \
--user 'USERNAME:PASSWORD' \
-H 'Content-Type: application/json' \
-d '{
        "source": "amazon_pricing",
        "domain": "nl",
        "query": "B087TXHLVQ",
        "parse": true
    }'
```

{% endtab %}

{% tab title="Python" %}

```python
import requests
from pprint import pprint


# Structure payload.
payload = {
    'source': 'amazon_pricing',
    'domain': 'nl',
    'query': 'B087TXHLVQ',
    'parse': True,
}


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

# Print prettified response to stdout.
pprint(response.json())
```

{% endtab %}

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

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

const username = "USERNAME";
const password = "PASSWORD";
const body = {
    source: "amazon_pricing",
    domain: "nl",
    query: "B087TXHLVQ",
    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="HTTP" %}

```http
https://realtime.oxylabs.io/v1/queries?source=amazon_pricing&domain=nl&query=B087TXHLVQ&parse=true&access_token=12345abcde
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php

$params = array(
    'source' => 'amazon_pricing',
    'domain' => 'nl',
    'query' => 'B087TXHLVQ',
    '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="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_pricing",
		"domain": "nl",
		"query":  "B087TXHLVQ",
		"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)
	response, _ := client.Do(request)

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

```

{% endtab %}

{% tab title="C#" %}

```csharp
using System;
using System.Collections.Generic;
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_pricing",
                domain = "nl",
                query = "B087TXHLVQ",
                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.ASCIIEncoding.UTF8.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="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_pricing");
        jsonObject.put("domain", "nl");
        jsonObject.put("query", "B087TXHLVQ");
        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_pricing", 
    "domain": "nl", 
    "query": "B087TXHLVQ",
    "parse": true
}
```

{% endtab %}
{% endtabs %}

We use synchronous [**Realtime**](https://developers.oxylabs.io/scraping-solutions/web-scraper-api/integration-methods/realtime) integration method in our examples. If you would like to use [**Proxy Endpoint**](https://developers.oxylabs.io/scraping-solutions/web-scraper-api/integration-methods/proxy-endpoint) or asynchronous [**Push-Pull**](https://developers.oxylabs.io/scraping-solutions/web-scraper-api/integration-methods/push-pull) integration, refer to the [**integration methods**](https://developers.oxylabs.io/scraping-solutions/web-scraper-api/integration-methods) section.

## Request parameter values

### Generic

Basic setup and customization options for scraping Amazon product offer listings.

<table><thead><tr><th width="222">Parameter</th><th width="350.3333333333333">Description</th><th>Default Value</th></tr></thead><tbody><tr><td><mark style="background-color:green;"><strong>source</strong></mark></td><td>Sets the scraper.</td><td><code>amazon_pricing</code></td></tr><tr><td><mark style="background-color:green;"><strong>query</strong></mark></td><td>10-symbol ASIN code</td><td>-</td></tr><tr><td><code>render</code></td><td>Enables JavaScript rendering when set to <code>html</code>. <a href="../../features/js-rendering-and-browser-control/javascript-rendering"><strong>More info</strong></a><strong>.</strong></td><td>-</td></tr><tr><td><code>parse</code></td><td>Returns parsed data when set to <code>true</code>. Explore output <a href="#output-data-dictionary"><strong>data dictionary</strong></a>.</td><td><code>false</code></td></tr><tr><td><code>callback_url</code></td><td>URL to your callback endpoint. <a href="../../../integration-methods/push-pull#callback"><strong>More info</strong></a>.</td><td>-</td></tr><tr><td><code>user_agent_type</code></td><td>Device type and browser. The full list can be found <a href="../../features/http-context-and-job-management/user-agent-type"><strong>here</strong></a>.</td><td><code>desktop</code></td></tr></tbody></table>

&#x20;   \- mandatory parameter

### Localization

Adapt results to specific geographical locations, domains, languages.

| Parameter      | Description                                                                                                                                                                                                          | Default Value |
| -------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------- |
| `geo_location` | The *Deliver to* location. See our guide to using this parameter [**here**](https://developers.oxylabs.io/scraping-solutions/web-scraper-api/features/localization/e-commerce-localization)**.**                     | -             |
| `domain`       | Domain localization for Amazon. The full list of available domains can be found [**here**](https://developers.oxylabs.io/scraping-solutions/features/localization/domain-locale-results-language#domain).            | `com`         |
| `locale`       | `Accept-Language` header value, which sets the interface language of the Amazon page. [**More info**](https://developers.oxylabs.io/scraping-solutions/features/localization/domain-locale-results-language#locale). | -             |

{% hint style="warning" %}
**IMPORTANT:** On most page types, Amazon tailors the returned results based on the delivery location of their customers. Therefore, we advise using the `geo_location` parameter to set your preferred delivery location. You can read more about using `geo_location` with Amazon [**here**](https://developers.oxylabs.io/scraping-solutions/web-scraper-api/features/localization/e-commerce-localization).
{% endhint %}

### Pagination

Controls for managing the pagination and retrieval of search results.

<table><thead><tr><th width="222">Parameter</th><th width="350.3333333333333">Description</th><th width="167">Default Value</th></tr></thead><tbody><tr><td><code>start_page</code></td><td>Starting page number.</td><td><code>1</code></td></tr><tr><td><code>pages</code></td><td>Number of pages to retrieve.</td><td><code>1</code></td></tr></tbody></table>

### Other

Additional advanced settings and controls for specialized requirements.

| Parameter                                             | Description                                                                                                                                                                                                                                                     | Default Value                                                                                                                                                                                                                                                          |
| ----------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <p><code>context</code>:<br><code>currency</code></p> | Sets the currency. Check the available values [**here**](https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FzrXw45naRpCZ0Ku9AjY1%2Fuploads%2FNNybEQaVnTrc9ymR1NGE%2Fcurrency_new.json?alt=media\&token=a77440f9-50a5-4e07-9993-b2db2144800b). | Depends on the marketplace. Check the default values [**here**](https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FzrXw45naRpCZ0Ku9AjY1%2Fuploads%2FNNybEQaVnTrc9ymR1NGE%2Fcurrency_new.json?alt=media\&token=a77440f9-50a5-4e07-9993-b2db2144800b). |

#### Code example

```json
{
    "source": "amazon_pricing",
    "domain": "nl",
    "query": "B087TXHLVQ",
    "parse": true,
    "context": [
        {
            "key": "currency",
            "value": "AUD"
        }
    ]
}
```

## Structured data

<details>

<summary><code>amazon_pricing</code> structured output</summary>

```json
{
    "results": [
        {
            "content": {
                "url": "https://www.amazon.com/gp/aod/ajax/ref=dp_aod_unknown_mbc?asin=B07VGRJDFY&pageno=1",
                "asin": "B07VGRJDFY",
                "page": 1,
                "title": "Nintendo Switch with Neon Blue and Neon Red Joy‑Con - HAC-001(-01)",
                "pricing": [
                    {
                        "price": 237.99,
                        "seller": "Gamer Girlz Online",
                        "currency": "USD",
                        "delivery": "Ships from Gamer Girlz Online",
                        "condition": "Used - Acceptable",
                        "seller_id": "A151FB8X73UXPJ",
                        "seller_link": "/gp/aag/main?ie=UTF8&seller=A151FB8X73UXPJ&isAmazonFulfilled=0&asin=B07VGRJDFY&ref_=olp_merch_name_1",
                        "rating_count": 7857,
                        "price_shipping": 3.98,
                        "delivery_options": []
                    },
                    {
                        "price": 242,
                        "seller": "PROSALE (SN Recorded)",
                        "currency": "USD",
                        "delivery": "Ships from PROSALE (SN Recorded)",
                        "condition": "Used - Good",
                        "seller_id": "AWVDPEZSR45X1",
                        "seller_link": "/gp/aag/main?ie=UTF8&seller=AWVDPEZSR45X1&isAmazonFulfilled=0&asin=B07VGRJDFY&ref_=olp_merch_name_2",
                        "rating_count": 7202,
                        "price_shipping": 0,
                        "delivery_options": []
                    },
                    {
                        "price": 242,
                        "seller": "CellularStream",
                        "currency": "USD",
                        "delivery": "Ships from CellularStream",
                        "condition": "Used - Good",
                        "seller_id": "A3GMNP3CXMIPDP",
                        "seller_link": "/gp/aag/main?ie=UTF8&seller=A3GMNP3CXMIPDP&isAmazonFulfilled=0&asin=B07VGRJDFY&ref_=olp_merch_name_3",
                        "rating_count": 7256,
                        "price_shipping": 0,
                        "delivery_options": []
                    },
                    {
                        "price": 244.95,
                        "seller": "Re-Com",
                        "currency": "USD",
                        "delivery": "Ships from Re-Com",
                        "condition": "Used - Good",
                        "seller_id": "A37FI61TFZMV1Y",
                        "seller_link": "/gp/aag/main?ie=UTF8&seller=A37FI61TFZMV1Y&isAmazonFulfilled=0&asin=B07VGRJDFY&ref_=olp_merch_name_4",
                        "rating_count": 16179,
                        "price_shipping": 0,
                        "delivery_options": []
                    },
                    {
                        "price": 242,
                        "seller": "CirQle",
                        "currency": "USD",
                        "delivery": "Ships from CirQle",
                        "condition": "Used - Good",
                        "seller_id": "A3KFAI0ZG0Y40N",
                        "seller_link": "/gp/aag/main?ie=UTF8&seller=A3KFAI0ZG0Y40N&isAmazonFulfilled=0&asin=B07VGRJDFY&ref_=olp_merch_name_5",
                        "rating_count": 43,
                        "price_shipping": 3.99,
                        "delivery_options": []
                    },
                    {
                        "price": 251.99,
                        "seller": "Goldstar Tech",
                        "currency": "USD",
                        "delivery": "Ships from Goldstar Tech",
                        "condition": "Used - Good",
                        "seller_id": "ARJ9CR5IBXBH3",
                        "seller_link": "/gp/aag/main?ie=UTF8&seller=ARJ9CR5IBXBH3&isAmazonFulfilled=0&asin=B07VGRJDFY&ref_=olp_merch_name_6",
                        "rating_count": 56984,
                        "price_shipping": 0,
                        "delivery_options": []
                    },
                    {
                        "price": 254.9,
                        "seller": "VG1shop (Serial # Recorded)",
                        "currency": "USD",
                        "delivery": "Ships from VG1shop (Serial # Recorded)",
                        "condition": "Used - Good",
                        "seller_id": "AZZMAGMBAQU46",
                        "seller_link": "/gp/aag/main?ie=UTF8&seller=AZZMAGMBAQU46&isAmazonFulfilled=0&asin=B07VGRJDFY&ref_=olp_merch_name_7",
                        "rating_count": 147,
                        "price_shipping": 3.99,
                        "delivery_options": []
                    },
                    {
                        "price": 259.59,
                        "seller": "Amazon Warehouse",
                        "currency": "USD",
                        "delivery": "Ships from Amazon.com",
                        "condition": "Used - Good",
                        "seller_id": "",
                        "seller_link": "",
                        "rating_count": 0,
                        "price_shipping": 0,
                        "delivery_options": []
                    },
                    {
                        "price": 259.98,
                        "seller": "JMS Holdings",
                        "currency": "USD",
                        "delivery": "Ships from JMS Holdings",
                        "condition": "Used - Very Good",
                        "seller_id": "A23KD5S5NPGJB5",
                        "seller_link": "/gp/aag/main?ie=UTF8&seller=A23KD5S5NPGJB5&isAmazonFulfilled=0&asin=B07VGRJDFY&ref_=olp_merch_name_9",
                        "rating_count": 3877,
                        "price_shipping": 0,
                        "delivery_options": []
                    },
                    {
                        "price": 259.99,
                        "seller": "SKYTAC",
                        "currency": "USD",
                        "delivery": "Ships from SKYTAC",
                        "condition": "Used - Good",
                        "seller_id": "A2OPXXBQO51PIH",
                        "seller_link": "/gp/aag/main?ie=UTF8&seller=A2OPXXBQO51PIH&isAmazonFulfilled=0&asin=B07VGRJDFY&ref_=olp_merch_name_10",
                        "rating_count": 3,
                        "price_shipping": 3.99,
                        "delivery_options": []
                    }
                ],
                "_warnings": [
                    "Could not parse pricing seller link.",
                    "Could not parse pricing seller link.",
                    "Could not parse rating count."
                ],
                "asin_in_url": "B07VGRJDFY",
                "review_count": 111672,
                "parse_status_code": 12000
            },
            "created_at": "2022-05-09 06:55:44",
            "updated_at": "2022-05-09 06:55:48",
            "page": 1,
            "url": "https://www.amazon.com/gp/aod/ajax/ref=dp_aod_unknown_mbc?asin=B07VGRJDFY&pageno=1",
            "job_id": "6929323004996355073",
            "status_code": 200,
            "parser_type": ""
        }
    ]
}
```

</details>

## Output data dictionary

#### HTML example

<figure><img src="https://63892162-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FzrXw45naRpCZ0Ku9AjY1%2Fuploads%2F8dg1KQiRxZHEhdNDYIOg%2Famazon_pricing.png?alt=media&#x26;token=4bfe970a-71a4-444f-b8d6-6942e2c1852f" alt=""><figcaption></figcaption></figure>

The `amazon_pricing` provides structured representation of pricing information for a specific product available on Amazon. The table below presents a detailed list of each field we parse, along with its description and data type. The table also includes some metadata.

#### JSON structure

<table><thead><tr><th width="221">Key</th><th width="328">Description</th><th>Type</th></tr></thead><tbody><tr><td><code>url</code></td><td>The URL of the Amazon product page.</td><td>string</td></tr><tr><td><code>asin</code></td><td>Amazon Standard Identification Number.</td><td>string</td></tr><tr><td><code>page</code></td><td>The current page number.</td><td>integer</td></tr><tr><td><code>title</code></td><td>The title of the product.</td><td>string</td></tr><tr><td><code>pricing</code></td><td>A list of pricing details.</td><td>array</td></tr><tr><td><code>asin_in_url</code></td><td>Amazon Standard Identification Number retrieved from the URL.</td><td>string</td></tr><tr><td><code>review_count</code></td><td>The total number of reviews.</td><td>integer</td></tr><tr><td><code>parse_status_code</code></td><td>The status code of the parsing job. You can see the parser status codes described <a href="https://github.com/oxylabs/gitbook-public-english/blob/master/scraping-solutions/web-scraper-api/targets/amazon/broken-reference/README.md"><strong>here</strong></a>.</td><td>integer</td></tr><tr><td><code>created_at</code></td><td>The timestamp when the scraping job was created.</td><td>timestamp</td></tr><tr><td><code>update_at</code></td><td>The timestamp when the scraping job was finished.</td><td>timestamp</td></tr><tr><td><code>job_id</code></td><td>The ID of the job associated with the scraping job.</td><td>string</td></tr><tr><td><code>status_code</code></td><td>The status code of the scraping job. You can see the scraper status codes described<a href="../../response-codes"> <strong>here</strong></a>.</td><td>integer</td></tr><tr><td><code>parser_type</code></td><td>The type of parser used for parsing the data.</td><td>string</td></tr></tbody></table>

{% hint style="info" %}
In the following sections, parsed JSON code snippets are shortened where more than one item for the result type is available.
{% endhint %}

### Pricing

`pricing` includes details such as the price, seller, currency, delivery options, condition of the product, seller ID, and links to the seller's page. Additionally, the number of ratings received by the seller may be provided for further context.

<figure><img src="https://lh7-us.googleusercontent.com/Llj-o9YYWOEDj_93awsp5EBVn5U2Sbc69qLEQApZ1pX8uhjwTHVEovOaiP9Lc2N2kT3x98SIfba1L0i1RoR5m9QKEdZ_Go8UQzxiT8drYS1St4HYIltrSRNAcXo2jOdZXJRhiqFjwnSp7coFtrq3X60" alt=""><figcaption></figcaption></figure>

```json
...
"pricing": [
    {
        "price": 24,
        "seller": "Amazon.com",
        "currency": "USD",
        "delivery": "Ships from Amazon.com",
        "condition": "New",
        "seller_id": "A2NDNAPHQ3UDKH",
        "seller_link": "/gp/aag/main?ie=UTF8&seller=A2NDNAPHQ3UDKH&isAmazonFulfilled=0&asin=B07H9DVLBB&ref_=olp_merch_name_0",
        "rating_count": 41715,
        "price_shipping": 0,
        "delivery_options": []
    },
...
```

<table><thead><tr><th>Key (pricing)</th><th width="238">Description</th><th>Type</th></tr></thead><tbody><tr><td><code>price</code></td><td>The price of the product.</td><td>float</td></tr><tr><td><code>seller</code></td><td>The seller of the product.</td><td>string</td></tr><tr><td><code>currency</code></td><td>The currency in which the price is denominated.</td><td>string</td></tr><tr><td><code>delivery</code></td><td>The shipping location of the product.</td><td>string</td></tr><tr><td><code>condition</code></td><td>The condition of the product.</td><td>string</td></tr><tr><td><code>seller_id</code></td><td>The identification of the Amazon seller.</td><td>string</td></tr><tr><td><code>seller_link</code></td><td>The URL to the Amazon Seller's page.</td><td>string</td></tr><tr><td><code>rating_count</code></td><td>The total number of ratings submitted for the Amazon product.</td><td>integer</td></tr><tr><td><code>price_shipping</code></td><td>The shipping price.</td><td>float</td></tr><tr><td><code>delivery_options</code></td><td>Identifies the delivery options available.</td><td>array</td></tr></tbody></table>
