Skip to content

// docs

Magalu: Get product details

Extracts complete, structured product data (PDP) from Magalu.

magazineluiza.com.br:pdp · 1 credit per request

Standard credit cost. Your account pricing is shown in the sandbox.

Try this operation in the sandbox

When to use this operation

sellerMetrics returns followers, sales, reputation and the year the store joined, when published. Followers come from the exact count in the hybrid storefront: sellerMetrics.followers contains value (an integer), text (the number as a string) and relation="exact"; for example, {value: 137, text: "137", relation: "exact"}. The query uses the seller selected in the PDP, including when seller_id is present in the URL. Sales, reputation and membership year reuse product data and a supplementary store request when necessary. Follower enrichment runs alongside the native query with a total deadline of 20 seconds; failures are recorded in sources and do not prevent the product response. memberSince contains only the year, without a day or month. Magalu itself does not trigger a supplementary request and these metrics may be null, as in the illustrative example below. Counts use value, text and relation: exact, greater_than, at_least, approximate or unknown. An explicit zero stays zero; missing information is null.

HTTP request

cURL
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.magazineluiza.com.br/apple-iphone-15-128gb-azul-61-48mp-ios-5g/p/238034800/te/ip15/",
  "target": "magazineluiza.com.br",
  "type": "pdp"
}'

Keep your API key on your server. See the quickstart for authentication and response handling.

MCP request

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

magazineluiza_com_br_pdp · tools/call
{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "magazineluiza_com_br_pdp",
    "arguments": {
      "url": "https://www.magazineluiza.com.br/apple-iphone-15-128gb-azul-61-48mp-ios-5g/p/238034800/te/ip15/",
      "executionId": "exec_example_123"
    }
  }
}

Supported inputs

Conditional fields depend on the alternatives and constraints in the rule column. Fields marked unsupported are omitted.

FieldTypeRequirementRuleDefaultExample
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.magazineluiza.com.br/apple-iphone-15-128gb-azul-61-48mp-ios-5g/p/238034800/te/ip15/
target
Target source for extraction.
enum Required Always mandatory in the payload and must match the operation. - magazineluiza.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

Request examples

PDP by URL

Basic request with canonical URL of the product page.

PDP by URL
{
  "url": "https://www.magazineluiza.com.br/apple-iphone-15-128gb-azul-61-48mp-ios-5g/p/238034800/te/ip15/",
  "target": "magazineluiza.com.br",
  "type": "pdp"
}

Response schema

Leaf paths and expected types. Field names and enum values are part of the API contract.

responseSchema
{
  "requestId": "string (uuid)",
  "executionId": "string (uuid)",
  "notFound": "boolean (optional; true when the upstream entity was not found and data is null)",
  "data.canonicalUrl": "string",
  "data.cashPrice": "number",
  "data.price": "number",
  "data.regularPrice": "number",
  "data.sellerName": "string",
  "data.sellerId": "string",
  "data.sellerUrl": "string",
  "data.sellerCnpj": "string",
  "data.sellerSocialReason": "string",
  "data.sellerAddress": "string",
  "data.sellerCity": "string",
  "data.sellerState": "string",
  "data.sellerZipCode": "string",
  "data.sellerCountry": "string",
  "data.description": "string",
  "data.images[].url": "string",
  "data.mainImage.url": "string",
  "data.brand.name": "string",
  "data.aggregateRating.ratingValue": "number",
  "data.aggregateRating.reviewCount": "number",
  "data.aggregateRating.bestRating": "number",
  "data.currency": "string",
  "data.currencyRaw": "string",
  "data.breadcrumbs[].name": "string",
  "data.breadcrumbs[].url": "string",
  "data.sku": "string",
  "data.availability": "string",
  "data.name": "string",
  "data.url": "string",
  "data.additionalProperties[].name": "string",
  "data.additionalProperties[].value": "string",
  "data.color": "string",
  "data.otherSellers[].sellerName": "string",
  "data.otherSellers[].price": "number",
  "data.otherSellers[].sellerUrl": "string",
  "data.otherSellers[].sellerId": "string",
  "data.mpn": "string",
  "data.features[]": "string",
  "data.ean": "string",
  "data.installmentPrice": "number",
  "data.installmentCount": "number",
  "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.sources[].url": "string",
  "data.sellerMetrics.sources[].status": "\"success\" | \"unavailable\" | \"error\"",
  "data.sellerMetrics.sources[].errorCode": "string | null"
}

Example response

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.

responseExample
{
  "requestId": "44444444-1111-4111-8111-444444444444",
  "executionId": "44444444-2222-4222-8222-444444444444",
  "data": {
    "canonicalUrl": "https://www.magazineluiza.com.br/apple-iphone-15-128gb-azul-61-48mp-ios-5g/p/238034800/te/ip15/",
    "cashPrice": 4299,
    "price": 4776.67,
    "regularPrice": 7299,
    "sellerName": "Magalu",
    "sellerId": "magazineluiza",
    "sellerUrl": "https://www.magazineluiza.com.br/lojista/magazineluiza/",
    "sellerCnpj": "47960950000121",
    "sellerSocialReason": "Magazine Luiza SA",
    "sellerAddress": "Rua Voluntarios da Franca, 1465, Centro",
    "sellerCity": "Franca",
    "sellerState": "SP",
    "sellerZipCode": "14400900",
    "sellerCountry": "BR",
    "description": "Descrição principal",
    "images": [
      {
        "url": "https://a-static.mlcdn.com.br/1000x1000/main.jpg"
      }
    ],
    "mainImage": {
      "url": "https://a-static.mlcdn.com.br/1000x1000/main.jpg"
    },
    "brand": {
      "name": "Apple"
    },
    "aggregateRating": {
      "ratingValue": 4.88,
      "reviewCount": 3949,
      "bestRating": 5
    },
    "currency": "BRL",
    "currencyRaw": "R$",
    "breadcrumbs": [
      {
        "name": "iPhone",
        "url": "https://www.magazineluiza.com.br/iphone/celulares-e-smartphones/s/te/teip/"
      }
    ],
    "sku": "238034800",
    "availability": "InStock",
    "name": "Apple iPhone 15 128GB Azul 6,1\" 48MP iOS 5G",
    "url": "https://www.magazineluiza.com.br/apple-iphone-15-128gb-azul-61-48mp-ios-5g/p/238034800/te/ip15/?seller_id=magazineluiza",
    "additionalProperties": [
      {
        "name": "Marca",
        "value": "Apple"
      }
    ],
    "color": "Azul",
    "otherSellers": [
      {
        "sellerName": "Outro Seller",
        "price": 4899,
        "sellerUrl": "https://www.magazineluiza.com.br/lojista/outro-seller/",
        "sellerId": "outro-seller"
      }
    ],
    "mpn": "A3090",
    "features": [
      "Dynamic Island",
      "USB-C"
    ],
    "ean": "194253952768",
    "installmentPrice": 477.67,
    "installmentCount": 10,
    "sellerMetrics": {
      "sellerId": "magazineluiza",
      "collectedAt": "2026-10-29T22:00:00.000Z",
      "followers": null,
      "products": null,
      "sales": null,
      "salesPeriod": null,
      "rating": null,
      "memberSince": null,
      "feedback": null,
      "sources": [
        {
          "url": "https://magalu-app.luizalabs.com/v3/catalog/item/238034800/helper",
          "status": "unavailable",
          "errorCode": null
        }
      ]
    }
  }
}

Complete field reference

PathTypeDescriptionExample
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. Apple
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.88
data.aggregateRating.reviewCount number data.aggregateRating.reviewCount field returned in the response payload. 3949
data.availability string Field data.availability returned in the response payload. InStock
data.brand.name string Field data.brand.name returned in the response payload. Apple
data.breadcrumbs[].name string Field data.breadcrumbs[].name returned in the response payload. iPhone
data.breadcrumbs[].url string Field data.breadcrumbs[].url returned in the response payload. https://www.magazineluiza.com.br/iphone/celulares-e-smartphones/s/te/teip/
data.canonicalUrl string data.canonicalUrl field returned in the response payload. https://www.magazineluiza.com.br/apple-iphone-15-128gb-azul-61-48mp-ios-5g/p/238034800/te/ip15/
data.cashPrice number Field data.cashPrice returned in the response payload. 4299
data.color string data.color field returned in the response payload. Azul
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.description string Field data.description returned in the response payload. Descrição principal
data.ean string Field data.ean returned in the response payload. 194253952768
data.features[] string Field data.features[] returned in the response payload. Dynamic Island
data.images[].url string Field data.images[].url returned in the response payload. https://a-static.mlcdn.com.br/1000x1000/main.jpg
data.installmentCount number Field data.installmentCount returned in the response payload. 10
data.installmentPrice number Field data.installmentPrice returned in the response payload. 477.67
data.mainImage.url string Field data.mainImage.url returned in the response payload. https://a-static.mlcdn.com.br/1000x1000/main.jpg
data.mpn string data.mpn field returned in the response payload. A3090
data.name string Field data.name returned in the response payload. Apple iPhone 15 128GB Azul 6,1" 48MP iOS 5G
data.otherSellers[].price number Field data.otherSellers[].price returned in the response payload. 4899
data.otherSellers[].sellerId string Field data.otherSellers[].sellerId returned in the response payload. outro-seller
data.otherSellers[].sellerName string Field data.otherSellers[].sellerName returned in the response payload. Outro Seller
data.otherSellers[].sellerUrl string data.otherSellers[].sellerUrl field returned in the response payload. https://www.magazineluiza.com.br/lojista/outro-seller/
data.price number data.price field returned in the response payload. 4776.67
data.regularPrice number data.regularPrice field returned in the response payload. 7299
data.sellerAddress string Field data.sellerAddress returned in the response payload. Rua Voluntarios da Franca, 1465, Centro
data.sellerCity string data.sellerCity field returned in the response payload. Franca
data.sellerCnpj string Field data.sellerCnpj returned in the response payload. 47960950000121
data.sellerCountry string Field data.sellerCountry returned in the response payload. BR
data.sellerId string Field data.sellerId returned in the response payload. magazineluiza
data.sellerMetrics object Top seller store indicators, separate from product sales and reviews. Fields without information remain null. {"sellerId":"magazineluiza","collectedAt":"2026-10-29T22:00:00.000Z","followers":null,"products":null,"sales":null,"salesPeriod":null,"rating":null,"memberSince":null,"feedback":null,"sources":[{"url":"https://magalu-app.luizalabs.com/v3/catalog/item/238034800/helper","status":"unavailable","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. null
data.sellerMetrics.followers { value: number | null, text: string, relation: "exact" | "greater_than" | "at_least" | "approximate" | "unknown" } | null Exact follower count of the selected seller's store, taken from sellerPage.stats.totalFollowers of the hybrid storefront. Example: {value: 137, text: "137", relation: "exact"}. text contains the number as string, without interface rounding. Reported zero remains zero; absence, failure or own seller Magalu returns null. 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. magazineluiza
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://magalu-app.luizalabs.com/v3/catalog/item/238034800/helper","status":"unavailable","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. unavailable
data.sellerMetrics.sources[].url string URL. https://magalu-app.luizalabs.com/v3/catalog/item/238034800/helper
data.sellerName string Field data.sellerName returned in the response payload. Magalu
data.sellerSocialReason string Field data.sellerSocialReason returned in the response payload. Magazine Luiza SA
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.magazineluiza.com.br/lojista/magazineluiza/
data.sellerZipCode string Field data.sellerZipCode returned in the response payload. 14400900
data.sku string data.sku field returned in the response payload. 238034800
data.url string Field data.url returned in the response payload. https://www.magazineluiza.com.br/apple-iphone-15-128gb-azul-61-48mp-ios-5g/p/238034800/te/ip15/?seller_id=magazineluiza
executionId string (uuid) ID execution code for tracing and deduplication. 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) ID unique to the request at the gateway. 44444444-1111-4111-8111-444444444444

Errors and missing data

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 statusError codeMeaning
400INVALID_PAYLOADInvalid JSON or a request that violates the documented validation rules.
401UNAUTHORIZEDMissing authorization or an invalid API key or token.
402INSUFFICIENT_CREDITSThe account has insufficient credits for this operation.
403FORBIDDENThe account does not have access, or the API is temporarily disabled.
409EXECUTION_CONFLICTThe execution identifier conflicts with an incompatible execution state.
429RATE_LIMIT_EXCEEDED / TOO_MANY_INFLIGHT_REQUESTSA rate limit or simultaneous request limit was exceeded.
5xxUPSTREAM_TIMEOUT / UPSTREAM_HTTP_ERROR / WORKER_FUNCTION_ERRORAn upstream, worker or gateway failure. Failed requests follow the platform refund policy.

Other Magalu operations