PDP by URL
Basic request for product page Amazon.
{
"url": "https://www.amazon.com.br/Echo-Dot-4%C2%AA-gera%C3%A7%C3%A3o-Cor-Azul/dp/B09B8QFYZ2",
"target": "amazon.com.br",
"type": "pdp"
} // docs
Extracts complete product data (PDP) from Amazon Brazil.
amazon.com.br:pdp · 1 credit per request
Standard credit cost. Your account pricing is shown in the sandbox.
Try this operation in the sandboxsellerMetrics.feedback contains the feedback count and positive percentage for the last 12 months, for the primary seller only. It reuses the existing request to that seller profile and does not fetch otherSellers profiles. If the period is not published, feedback is null. Counts use value, text and relation: exact, greater_than, at_least, approximate or unknown. An explicit zero stays zero; missing information is null. The response example is illustrative.
curl -X POST https://api.geckoapi.com.br/v1/extract \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://www.amazon.com.br/Echo-Dot-4%C2%AA-gera%C3%A7%C3%A3o-Cor-Azul/dp/B09B8QFYZ2",
"target": "amazon.com.br",
"type": "pdp"
}' Keep your API key on your server. See the quickstart for authentication and response handling.
The hosted MCP tool fixes target and type for this operation. Its remaining arguments use the same input rules as Extract.
POST /v1/mcp · Bearer or X-API-Key authentication
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "amazon_com_br_pdp",
"arguments": {
"url": "https://www.amazon.com.br/Echo-Dot-4%C2%AA-gera%C3%A7%C3%A3o-Cor-Azul/dp/B09B8QFYZ2",
"executionId": "exec_example_123"
}
}
} Conditional fields depend on the alternatives and constraints in the rule column. Fields marked unsupported are omitted.
| Field | Type | Requirement | Rule | Default | Example |
|---|---|---|---|---|---|
| url URL extraction target. For some PLPs it can be omitted when API assembles URL from other fields. | string (URL) | Required | Required for this operation. | - | https://www.amazon.com.br/Echo-Dot-4%C2%AA-gera%C3%A7%C3%A3o-Cor-Azul/dp/B09B8QFYZ2 |
| target Target source for extraction. | enum | Required | Always mandatory in the payload and must match the operation. | - | amazon.com.br |
| type Extraction type: pdp, idp, plp, ilp, quote, review or places. | enum | Required | Always mandatory in the payload and must match the operation. | - | pdp |
Basic request for product page Amazon.
{
"url": "https://www.amazon.com.br/Echo-Dot-4%C2%AA-gera%C3%A7%C3%A3o-Cor-Azul/dp/B09B8QFYZ2",
"target": "amazon.com.br",
"type": "pdp"
} Leaf paths and expected types. Field names and enum values are part of the API contract.
{
"requestId": "string (uuid)",
"executionId": "string (uuid)",
"notFound": "boolean (optional; true when the upstream entity was not found and data is null)",
"data.isInternational": "boolean",
"data.variants[].asin": "string",
"data.variants[].url": "string",
"data.shippingFee.shippingFee": "string",
"data.shippingFee.zipCode": "string",
"data.taxFreePrice": "number",
"data.cashPrice": "number",
"data.canonicalUrl": "string",
"data.price": "number",
"data.additionalProperties[].name": "string",
"data.additionalProperties[].value": "string",
"data.regularPrice": "number",
"data.sellerName": "string",
"data.deliveredBy": "string | null",
"data.itemCondition": "string",
"data.images[].url": "string",
"data.brand.name": "string",
"data.aggregateRating.ratingValue": "number",
"data.aggregateRating.bestRating": "number",
"data.aggregateRating.reviewCount": "number",
"data.currency": "string",
"data.currencyRaw": "string",
"data.breadcrumbs[].name": "string",
"data.breadcrumbs[].url": "string",
"data.description": "string",
"data.mainImage.url": "string",
"data.sku": "string",
"data.availability": "string",
"data.name": "string",
"data.url": "string",
"data.otherSellers[].sellerName": "string",
"data.otherSellers[].price": "number",
"data.otherSellers[].sellerUrl": "string",
"data.otherSellers[].sellerId": "string",
"data.sellerId": "string",
"data.sellerUrl": "string",
"data.coupon": "string",
"data.couponCode": "string",
"data.couponDescription": "string",
"data.installmentPrice": "string",
"data.installmentCount": "number",
"data.mpn": "string",
"data.size": "string",
"data.color": "string",
"data.style": "string",
"data.sellerSocialReason": "string",
"data.sellerCnpj": "string",
"data.sellerAddress": "string",
"data.sellerCity": "string",
"data.sellerState": "string",
"data.sellerCountry": "string",
"data.sellerMetrics": "object",
"data.sellerMetrics.sellerId": "string | null",
"data.sellerMetrics.collectedAt": "string (ISO 8601 UTC)",
"data.sellerMetrics.followers": "{ value: number | null, text: string, relation: \"exact\" | \"greater_than\" | \"at_least\" | \"approximate\" | \"unknown\" } | null",
"data.sellerMetrics.products": "{ value: number | null, text: string, relation: \"exact\" | \"greater_than\" | \"at_least\" | \"approximate\" | \"unknown\" } | null",
"data.sellerMetrics.sales": "{ value: number | null, text: string, relation: \"exact\" | \"greater_than\" | \"at_least\" | \"approximate\" | \"unknown\" } | null",
"data.sellerMetrics.salesPeriod": "string | null",
"data.sellerMetrics.rating": "{ value: number, bestRating: number | null } | null",
"data.sellerMetrics.memberSince": "{ year: number, text: string, precision: \"year\" } | null",
"data.sellerMetrics.feedback": "{ count: number | null, positivePercentage: number | null, periodMonths: number, text: string } | null",
"data.sellerMetrics.sources": "Array<{ url: string, status: \"success\" | \"unavailable\" | \"error\", errorCode: string | null }>",
"data.sellerMetrics.feedback.count": "number | null",
"data.sellerMetrics.feedback.positivePercentage": "number | null",
"data.sellerMetrics.feedback.periodMonths": "number",
"data.sellerMetrics.feedback.text": "string",
"data.sellerMetrics.sources[].url": "string",
"data.sellerMetrics.sources[].status": "\"success\" | \"unavailable\" | \"error\"",
"data.sellerMetrics.sources[].errorCode": "string | null",
"data.badges": "string[]"
} Illustrative response. Product names, reviews and other source content retain their original language. Missing and null values do not imply zero stock, free shipping or zero reviews.
{
"requestId": "44444444-1111-4111-8111-444444444444",
"executionId": "44444444-2222-4222-8222-444444444444",
"data": {
"isInternational": false,
"variants": [
{
"asin": "B09B8QFYZ2",
"url": "https://www.amazon.com.br/dp/B09B8QFYZ2"
}
],
"shippingFee": {
"shippingFee": "R$ 12,90",
"zipCode": "80000-000"
},
"taxFreePrice": 359,
"cashPrice": 359,
"canonicalUrl": "https://www.amazon.com.br/dp/B09B8QFYZ2",
"price": 379,
"additionalProperties": [
{
"name": "Marca",
"value": "Amazon"
}
],
"regularPrice": 429,
"sellerName": "Amazon.com.br",
"deliveredBy": "Amazon.com.br",
"itemCondition": "new",
"images": [
{
"url": "https://m.media-amazon.com/images/I/echo-dot-main.jpg"
}
],
"brand": {
"name": "Amazon"
},
"aggregateRating": {
"ratingValue": 4.8,
"bestRating": 5,
"reviewCount": 10234
},
"currency": "BRL",
"currencyRaw": "R$",
"breadcrumbs": [
{
"name": "Eletronicos",
"url": "https://www.amazon.com.br/eletronicos"
}
],
"description": "Smart speaker com Alexa integrada.",
"mainImage": {
"url": "https://m.media-amazon.com/images/I/echo-dot-main.jpg"
},
"sku": "B09B8QFYZ2",
"availability": "InStock",
"name": "Echo Dot 4a geracao",
"url": "https://www.amazon.com.br/dp/B09B8QFYZ2",
"otherSellers": [
{
"sellerName": "Loja Parceira Prime",
"price": 389,
"sellerUrl": "https://www.amazon.com.br/sp?seller=A1SELLER123",
"sellerId": "A1SELLER123"
}
],
"sellerId": "A1AMAZONBR",
"sellerUrl": "https://www.amazon.com.br/sp?seller=A1AMAZONBR",
"coupon": "R$20 off",
"couponCode": "COMPRANOAPP",
"couponDescription": "Insira o codigo COMPRANOAPP na finalizacao da compra. Valido na sua primeira compra na Amazon, pelo App",
"installmentPrice": "31.58",
"installmentCount": 12,
"mpn": "ECHODOT4",
"size": "Padrao",
"color": "Azul",
"style": "Com relogio",
"sellerSocialReason": "Amazon Servicos de Varejo do Brasil Ltda",
"sellerCnpj": "15.436.940/0001-03",
"sellerAddress": "Av. Juscelino Kubitschek, 2041",
"sellerCity": "Sao Paulo",
"sellerState": "SP",
"sellerCountry": "Brasil",
"sellerMetrics": {
"sellerId": "A1AMAZONBR",
"collectedAt": "2026-10-29T22:00:00.000Z",
"followers": null,
"products": null,
"sales": null,
"salesPeriod": null,
"rating": null,
"memberSince": null,
"feedback": {
"count": 156,
"positivePercentage": 85,
"periodMonths": 12,
"text": "85% positivo nos últimos 12 meses (156 avaliações)"
},
"sources": [
{
"url": "https://www.amazon.com.br/sp?ie=UTF8&seller=A1AMAZONBR",
"status": "success",
"errorCode": null
}
]
},
"badges": [
"Escolha da Amazon",
"Oferta"
]
}
} | Path | Type | Description | Example |
|---|---|---|---|
| data.additionalProperties[].name | string | Field data.additionalProperties[].name returned in the response payload. | Marca |
| data.additionalProperties[].value | string | data.additionalProperties[].value field returned in the response payload. | Amazon |
| data.aggregateRating.bestRating | number | data.aggregateRating.bestRating field returned in the response payload. | 5 |
| data.aggregateRating.ratingValue | number | Field data.aggregateRating.ratingValue returned in the response payload. | 4.8 |
| data.aggregateRating.reviewCount | number | data.aggregateRating.reviewCount field returned in the response payload. | 10234 |
| data.availability | string | Field data.availability returned in the response payload. | InStock |
| data.badges | string[] | Amazon Choice and deal badges displayed for the main product, without duplicates. Preserves the published labels, for example ["Escolha da Amazon", "Oferta"]. Returns [] when neither badge is present; both may coexist. Does not infer badges from discounts or include recommended-product badges, coupons or countdown text. Badges may change over time and with the displayed offer. | ["Escolha da Amazon","Oferta"] |
| data.brand.name | string | Field data.brand.name returned in the response payload. | Amazon |
| data.breadcrumbs[].name | string | Field data.breadcrumbs[].name returned in the response payload. | Eletronicos |
| data.breadcrumbs[].url | string | Field data.breadcrumbs[].url returned in the response payload. | https://www.amazon.com.br/eletronicos |
| data.canonicalUrl | string | data.canonicalUrl field returned in the response payload. | https://www.amazon.com.br/dp/B09B8QFYZ2 |
| data.cashPrice | number | Field data.cashPrice returned in the response payload. | 359 |
| data.color | string | data.color field returned in the response payload. | Azul |
| data.coupon | string | Coupon displayed on PDP, as R$20 off, when available. | R$20 off |
| data.couponCode | string | Coupon code displayed on PDP, when available. | COMPRANOAPP |
| data.couponDescription | string | Coupon description/instruction displayed on PDP, when available. | Insira o codigo COMPRANOAPP na finalizacao da compra. Valido na sua primeira compra na Amazon, pelo App |
| data.currency | string | Field data.currency returned in the response payload. | BRL |
| data.currencyRaw | string | Field data.currencyRaw returned in the response payload. | R$ |
| data.deliveredBy | string | null | Company responsible for sending the main offer, as displayed by Amazon (for example, Amazon, Amazon.com.br, or the name of a partner store). It may be different from sellerName: a store may sell the product and Amazon will ship it. Returns null when the page does not inform the person responsible for sending. It does not identify the carrier of the last stage nor does it apply to otherSellers. | Amazon.com.br |
| data.description | string | Field data.description returned in the response payload. | Smart speaker com Alexa integrada. |
| data.images[].url | string | Field data.images[].url returned in the response payload. | https://m.media-amazon.com/images/I/echo-dot-main.jpg |
| data.installmentCount | number | Number of installments of the first installment option found in PDP. | 12 |
| data.installmentPrice | string | Value of the first installment found in PDP. | 31.58 |
| data.isInternational | boolean | Field data.isInternational returned in the response payload. | false |
| data.itemCondition | string | data.itemCondition field returned in the response payload. | new |
| data.mainImage.url | string | Field data.mainImage.url returned in the response payload. | https://m.media-amazon.com/images/I/echo-dot-main.jpg |
| data.mpn | string | data.mpn field returned in the response payload. | ECHODOT4 |
| data.name | string | Field data.name returned in the response payload. | Echo Dot 4a geracao |
| data.otherSellers[].price | number | Field data.otherSellers[].price returned in the response payload. | 389 |
| data.otherSellers[].sellerId | string | Field data.otherSellers[].sellerId returned in the response payload. | A1SELLER123 |
| data.otherSellers[].sellerName | string | Field data.otherSellers[].sellerName returned in the response payload. | Loja Parceira Prime |
| data.otherSellers[].sellerUrl | string | data.otherSellers[].sellerUrl field returned in the response payload. | https://www.amazon.com.br/sp?seller=A1SELLER123 |
| data.price | number | data.price field returned in the response payload. | 379 |
| data.regularPrice | number | data.regularPrice field returned in the response payload. | 429 |
| data.sellerAddress | string | Field data.sellerAddress returned in the response payload. | Av. Juscelino Kubitschek, 2041 |
| data.sellerCity | string | data.sellerCity field returned in the response payload. | Sao Paulo |
| data.sellerCnpj | string | Field data.sellerCnpj returned in the response payload. | 15.436.940/0001-03 |
| data.sellerCountry | string | Field data.sellerCountry returned in the response payload. | Brasil |
| data.sellerId | string | Field data.sellerId returned in the response payload. | A1AMAZONBR |
| data.sellerMetrics | object | Top seller store indicators, separate from product sales and reviews. Fields without information remain null. | {"sellerId":"A1AMAZONBR","collectedAt":"2026-10-29T22:00:00.000Z","followers":null,"products":null,"sales":null,"salesPeriod":null,"rating":null,"memberSince":null,"feedback":{"count":156,"positivePercentage":85,"periodMonths":12,"text":"85% positivo nos últimos 12 meses (156 avaliações)"},"sources":[{"url":"https://www.amazon.com.br/sp?ie=UTF8&seller=A1AMAZONBR","status":"success","errorCode":null}]} |
| data.sellerMetrics.collectedAt | string (ISO 8601 UTC) | Date/time UTC of observing store metrics. | 2026-10-29T22:00:00.000Z |
| data.sellerMetrics.feedback | { count: number | null, positivePercentage: number | null, periodMonths: number, text: string } | null | Seller ratings for the last 12 months: count, positivePercentage (0 a 100), periodMonths=12 and text. null if the window is not available. | {"count":156,"positivePercentage":85,"periodMonths":12,"text":"85% positivo nos últimos 12 meses (156 avaliações)"} |
| data.sellerMetrics.feedback.count | number | null | Number of seller reviews in the period. | 156 |
| data.sellerMetrics.feedback.periodMonths | number | Seller evaluation window in months; currently 12. | 12 |
| data.sellerMetrics.feedback.positivePercentage | number | null | Percentage of positive seller reviews (0 to 100). | 85 |
| data.sellerMetrics.feedback.text | string | Visible text published by the source. | 85% positivo nos últimos 12 meses (156 avaliações) |
| data.sellerMetrics.followers | { value: number | null, text: string, relation: "exact" | "greater_than" | "at_least" | "approximate" | "unknown" } | null | Store followers: value, visible text and relationship. null when the source does not inform. | null |
| data.sellerMetrics.memberSince | { year: number, text: string, precision: "year" } | null | Year the store entered the marketplace, with original text and precision=year. It does not provide the day/month or legal data for opening the company. | null |
| data.sellerMetrics.products | { value: number | null, text: string, relation: "exact" | "greater_than" | "at_least" | "approximate" | "unknown" } | null | Quantity of products in the store: value, visible text and relationship. null when the source does not inform. | null |
| data.sellerMetrics.rating | { value: number, bestRating: number | null } | null | Store reputation and maximum published scale. It is not the evaluation of the product. | null |
| data.sellerMetrics.sales | { value: number | null, text: string, relation: "exact" | "greater_than" | "at_least" | "approximate" | "unknown" } | null | Store sales, separate from product soldCount. Preserves tracks: +5mil becomes value=5000, relation=greater_than. Does not imply exact total. | null |
| data.sellerMetrics.salesPeriod | string | null | Declared period for store sales; null when not informed. Do not assume lifetime sales or sales from the last 12 months. | null |
| data.sellerMetrics.sellerId | string | null | ID of the primary seller to which these metrics belong. | A1AMAZONBR |
| data.sellerMetrics.sources | Array<{ url: string, status: "success" | "unavailable" | "error", errorCode: string | null }> | Sources consulted: success indicates metrics section found; unavailable indicates response without compatible section; error indicates failure, detailed by errorCode. Empty list indicates no compatible query. A complementary failure does not prevent the product from being returned. | [{"url":"https://www.amazon.com.br/sp?ie=UTF8&seller=A1AMAZONBR","status":"success","errorCode":null}] |
| data.sellerMetrics.sources[].errorCode | string | null | Fault code HTTP, timeout or query error; null when there is no error. | null |
| data.sellerMetrics.sources[].status | "success" | "unavailable" | "error" | Store metrics query result: success, unavailable or error. | success |
| data.sellerMetrics.sources[].url | string | URL. | https://www.amazon.com.br/sp?ie=UTF8&seller=A1AMAZONBR |
| data.sellerName | string | Field data.sellerName returned in the response payload. | Amazon.com.br |
| data.sellerSocialReason | string | Field data.sellerSocialReason returned in the response payload. | Amazon Servicos de Varejo do Brasil Ltda |
| data.sellerState | string | data.sellerState field returned in the response payload. | SP |
| data.sellerUrl | string | data.sellerUrl field returned in the response payload. | https://www.amazon.com.br/sp?seller=A1AMAZONBR |
| data.shippingFee.shippingFee | string | Field data.shippingFee.shippingFee returned in the response payload. | R$ 12,90 |
| data.shippingFee.zipCode | string | Field data.shippingFee.zipCode returned in the response payload. | 80000-000 |
| data.size | string | Field data.size returned in the response payload. | Padrao |
| data.sku | string | data.sku field returned in the response payload. | B09B8QFYZ2 |
| data.style | string | Field data.style returned in the response payload. | Com relogio |
| data.taxFreePrice | number | Field data.taxFreePrice returned in the response payload. | 359 |
| data.url | string | Field data.url returned in the response payload. | https://www.amazon.com.br/dp/B09B8QFYZ2 |
| data.variants[].asin | string | Field data.variants[].asin returned in the response payload. | B09B8QFYZ2 |
| data.variants[].url | string | Field data.variants[].url returned in the response payload. | https://www.amazon.com.br/dp/B09B8QFYZ2 |
| executionId | string (uuid) | Field executionId returned in the response payload. | 44444444-2222-4222-8222-444444444444 |
| notFound | boolean (optional; true when the upstream entity was not found and data is null) | Present and true when the upstream entity was not found. In this case data is null and the request still completes successfully. | N/A |
| requestId | string (uuid) | Field requestId returned in the response payload. | 44444444-1111-4111-8111-444444444444 |
When supported by this operation, an entity not found upstream can return HTTP 200 with data: null and notFound: true. Check the documented response fields before interpreting an empty result. Source-specific behavior and exceptions are described above.
| HTTP status | Error code | Meaning |
|---|---|---|
| 400 | INVALID_PAYLOAD | Invalid JSON or a request that violates the documented validation rules. |
| 401 | UNAUTHORIZED | Missing authorization or an invalid API key or token. |
| 402 | INSUFFICIENT_CREDITS | The account has insufficient credits for this operation. |
| 403 | FORBIDDEN | The account does not have access, or the API is temporarily disabled. |
| 409 | EXECUTION_CONFLICT | The execution identifier conflicts with an incompatible execution state. |
| 429 | RATE_LIMIT_EXCEEDED / TOO_MANY_INFLIGHT_REQUESTS | A rate limit or simultaneous request limit was exceeded. |
| 5xx | UPSTREAM_TIMEOUT / UPSTREAM_HTTP_ERROR / WORKER_FUNCTION_ERROR | An upstream, worker or gateway failure. Failed requests follow the platform refund policy. |