# Amazon Latin America Product Details (`ikmal_suzali_atr/amazon-latam-details`) Actor

Full Amazon Latin America product details by ASIN or URL (Brazil (amazon.com.br), Mexico (amazon.com.mx)): title, brand, buybox price, list price and discount, rating and review count, availability, seller and ships-from, delivery promise for a postal code, category path, bullets,…

- **URL**: https://apify.com/ikmal\_suzali\_atr/amazon-latam-details.md
- **Developed by:** [AtTheRate AI](https://apify.com/ikmal_suzali_atr) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $7.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Amazon Latin America Product Details

Reads the full product page for any ASIN on amazon.com.br or amazon.com.mx and returns it as one clean row: buybox price, list price and discount, availability, rating and reviews, seller and ships-from, images, bullet points, Best Sellers Rank, variants and the category breadcrumb. Use it to keep your own and your rivals' listings current in Brazil and Mexico.

### What you get

- Buybox pricing: `price`, `original_price`, `discount_percent` and `currency` (BRL or MXN).
- Availability as Amazon states it: `in_stock`, the raw `availability` line and `stock_quantity`.
- Who is selling: `seller`, `seller_id` and `ships_from`, plus the `delivery` promise and `delivery_location`.
- Reviews and ranking: `rating`, `rating_count`, `best_sellers_rank`, `bsr_top` and `bsr_top_category`.
- Content: `name`, `brand`, `highlights`, `description`, `specifications`, `images` and `images_count`.
- Product family: `variants` with sibling ASINs, `parent_asin`, `badges` and `category_path`.
- Optional postal code: pass a CEP or codigo postal and the delivery area is set first, recorded in `location_applied`.

### Input

Pass ASINs or product URLs and pick the storefront. ASINs are storefront specific.

```json
{
  "asins": ["B0CF479SWM"],
  "locale": "br",
  "proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "BR" }
}
```

- `asins` (required): 10-character ASINs or product URLs such as `.../dp/<ASIN>`. Duplicates are ignored and every input gets one row.
- `locale`: `br` for amazon.com.br, `mx` for amazon.com.mx. Default `br`.
- `pincode`: optional postal code, for example 01310-100 for Sao Paulo or 06600 for Mexico City.
- `maxConcurrency`: products fetched in parallel, 1 to 4. Two is the safe default.
- `proxyConfiguration`: residential proxy in the storefront's country, already defaulted to residential BR.

### Output

One row per requested ASIN or URL.

```json
{
  "platform": "amazon-latam",
  "locale": "br",
  "requested": "B0CF479SWM",
  "found": true,
  "asin": "B0CF479SWM",
  "name": "Product title as printed on the page",
  "brand": "Brand name",
  "price": 105.9,
  "original_price": 129.9,
  "discount_percent": 18,
  "currency": "BRL",
  "rating": 4.6,
  "rating_count": 130,
  "in_stock": true,
  "availability": "Em estoque",
  "seller": "Amazon.com.br",
  "ships_from": "Amazon.com.br",
  "delivery": "Entrega GRATIS: qua., 16 de set.",
  "bsr_top": 842,
  "bsr_top_category": "Beleza",
  "location_applied": false,
  "product_url": "https://www.amazon.com.br/dp/B0CF479SWM"
}
```

`price` is null when the product has no buybox offer, for example when it is unavailable. `review_count` and `seller_rating` are always null, use `rating_count`. An ASIN that does not exist returns a row with `found: false` and an `error` message instead of failing the run.

### Use cases

- Daily price and discount monitoring of your own and rival ASINs in Brazil and Mexico.
- Buybox and seller watch: alert when `seller` or `ships_from` changes on a listing you own.
- Availability monitoring: `in_stock` and `availability` catch out-of-stock windows early.
- Category rank tracking with `bsr_top` and `bsr_top_category` next to price and rating.

### Notes and limits

- Price is read only from the buybox block. Carousels such as "produtos relacionados" are ignored, so an unavailable product returns `price: null` rather than a neighbour's price.
- A residential proxy inside the storefront's country is required, BR for Brazil and MX for Mexico. Datacentre addresses get a captcha.
- The postal code is optional and the storefronts sometimes refuse the location call. The run then continues with the default location and records `location_applied: false`.
- Every input produces a row. Invalid ids, missing products and errors come back as `found: false` with the reason.

### FAQ

**Do I need a proxy?** Yes, residential in the storefront's country: BR for amazon.com.br, MX for amazon.com.mx. The actor already defaults to residential BR.

**How many products can I pull in one run?** As many ASINs as you pass. Runtime is the only limit: two products at a time by default, capped at 4 in parallel.

**Does it need a login or an API key?** No. Public product pages only, no account and no seller credentials.

**What happens with a wrong or dead ASIN?** You get a row with `found: false` and the reason. The run still succeeds and the other ASINs are unaffected.

# Actor input Schema

## `asins` (type: `array`):

Amazon ASINs (10 characters, e.g. B0CF479SWM) or product URLs (…/dp/<ASIN>, …/gp/product/<ASIN>). Duplicates are ignored; every input gets one output row.

## `locale` (type: `string`):

Which Amazon storefront to read the product from. ASINs are storefront-specific.

## `pincode` (type: `string`):

Optional CEP / código postal (e.g. 01310-100 for São Paulo, 06600 for Mexico City). Sets the delivery location before fetching so delivery promise and availability reflect that area. Leave empty for the storefront default.

## `maxConcurrency` (type: `integer`):

How many product pages are fetched at the same time (1–4). Amazon rate-limits per session; 2 is safe.

## `delayMs` (type: `integer`):

Pause between product fetches.

## `callsPerSession` (type: `integer`):

Re-mint the session (fresh cookies and proxy exit) after this many product fetches.

## `proxyConfiguration` (type: `object`):

On the Apify platform this decides egress; a residential proxy in the storefront's country (BR for the default storefront) is strongly recommended — Amazon serves a captcha to datacenter IPs. On our own servers it is ignored and our residential proxy is used.

## Actor input object example

```json
{
  "asins": [
    "B0CF479SWM"
  ],
  "locale": "br",
  "maxConcurrency": 2,
  "delayMs": 1000,
  "callsPerSession": 60,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "BR"
  }
}
```

# Actor output Schema

## `results` (type: `string`):

One row per product.

## `summary` (type: `string`):

Counts for the run: what was requested, captured, skipped and failed.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "asins": [
        "B0CF479SWM"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("ikmal_suzali_atr/amazon-latam-details").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "asins": ["B0CF479SWM"] }

# Run the Actor and wait for it to finish
run = client.actor("ikmal_suzali_atr/amazon-latam-details").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "asins": [
    "B0CF479SWM"
  ]
}' |
apify call ikmal_suzali_atr/amazon-latam-details --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,ikmal_suzali_atr/amazon-latam-details"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/pIIRvFM6f9BwcJw6M/builds/DY1gPIgxneoBdK9SL/openapi.json
