// docs

Magalu PDP

Extrai dados completos de produto (PDP) da Magalu via endpoint mobile GraphQL nao renderizado.

Nota importante: alguns campos podem retornar null em produção, dependendo da página de origem. Nesta documentação, os exemplos de output são preenchidos intencionalmente com valores não nulos para facilitar integração.

Quando a entidade consultada não existe na origem, o extract e a tool MCP retornam 200 com data: null e notFound: true. Esse caso é tratado como resposta concluída, não como erro de servidor.

Chamada HTTP

cURL
curl -X POST https://api.geckoapi.com.br/v1/extract \
  -H "Authorization: Bearer SUA_CHAVE" \
  -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"
}'

Chamada MCP

A mesma seam também aparece no MCP hospedado como uma tool dedicada. Os argumentos reaproveitam os campos do extract, mas target e type já ficam fixos pela tool.

Ver guia completo do MCP

Endpoint

POST /v1/mcp

Tool name

magazineluiza_com_br_pdp

Auth

Bearer ou X-API-Key

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"
    }
  }
}

Possibilidades de input

Campos suportados nesta API do POST /v1/extract, com regras específicas de obrigatoriedade e condicionais.

Campo Tipo Status Regra Default Exemplo
url
URL alvo da extração. Para alguns PLPs pode ser omitida quando a API monta a URL a partir de outros campos.
string (URL) Obrigatório Obrigatorio para este seam. - https://www.mercadolivre.com.br/p/MLB123456
target
Fonte alvo da extração.
enum Obrigatório Sempre obrigatorio no payload e deve combinar com o seam. - mercadolivre.com.br
type
Tipo da extração: pdp, idp, plp, quote, review ou places.
enum Obrigatório Sempre obrigatorio no payload e deve combinar com o seam. - pdp

Exemplos de request

PDP por URL

Requisicao basica com URL canonica da pagina de produto.

PDP por 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"
}

Schema de response (leaf paths)

Mapa de paths de saída com tipo esperado para esta API.

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"
}

Exemplo de response

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
  }
}

Referência completa de campos

Path Tipo Descrição Exemplo
data.additionalProperties[].name string Campo data.additionalProperties[].name retornado no payload de resposta. Marca
data.additionalProperties[].value string Campo data.additionalProperties[].value retornado no payload de resposta. Apple
data.aggregateRating.bestRating number Campo data.aggregateRating.bestRating retornado no payload de resposta. 5
data.aggregateRating.ratingValue number Campo data.aggregateRating.ratingValue retornado no payload de resposta. 4.88
data.aggregateRating.reviewCount number Campo data.aggregateRating.reviewCount retornado no payload de resposta. 3949
data.availability string Campo data.availability retornado no payload de resposta. InStock
data.brand.name string Campo data.brand.name retornado no payload de resposta. Apple
data.breadcrumbs[].name string Campo data.breadcrumbs[].name retornado no payload de resposta. iPhone
data.breadcrumbs[].url string Campo data.breadcrumbs[].url retornado no payload de resposta. https://www.magazineluiza.com.br/iphone/celulares-e-smartphones/s/te/teip/
data.canonicalUrl string Campo data.canonicalUrl retornado no payload de resposta. https://www.magazineluiza.com.br/apple-iphone-15-128gb-azul-61-48mp-ios-5g/p/238034800/te/ip15/
data.cashPrice number Campo data.cashPrice retornado no payload de resposta. 4299
data.color string Campo data.color retornado no payload de resposta. Azul
data.currency string Campo data.currency retornado no payload de resposta. BRL
data.currencyRaw string Campo data.currencyRaw retornado no payload de resposta. R$
data.description string Campo data.description retornado no payload de resposta. Descrição principal
data.ean string Campo data.ean retornado no payload de resposta. 194253952768
data.features[] string Campo data.features[] retornado no payload de resposta. Dynamic Island
data.images[].url string Campo data.images[].url retornado no payload de resposta. https://a-static.mlcdn.com.br/1000x1000/main.jpg
data.installmentCount number Campo data.installmentCount retornado no payload de resposta. 10
data.installmentPrice number Campo data.installmentPrice retornado no payload de resposta. 477.67
data.mainImage.url string Campo data.mainImage.url retornado no payload de resposta. https://a-static.mlcdn.com.br/1000x1000/main.jpg
data.mpn string Campo data.mpn retornado no payload de resposta. A3090
data.name string Campo data.name retornado no payload de resposta. Apple iPhone 15 128GB Azul 6,1" 48MP iOS 5G
data.otherSellers[].price number Campo data.otherSellers[].price retornado no payload de resposta. 4899
data.otherSellers[].sellerId string Campo data.otherSellers[].sellerId retornado no payload de resposta. outro-seller
data.otherSellers[].sellerName string Campo data.otherSellers[].sellerName retornado no payload de resposta. Outro Seller
data.otherSellers[].sellerUrl string Campo data.otherSellers[].sellerUrl retornado no payload de resposta. https://www.magazineluiza.com.br/lojista/outro-seller/
data.price number Campo data.price retornado no payload de resposta. 4776.67
data.regularPrice number Campo data.regularPrice retornado no payload de resposta. 7299
data.sellerAddress string Campo data.sellerAddress retornado no payload de resposta. Rua Voluntarios da Franca, 1465, Centro
data.sellerCity string Campo data.sellerCity retornado no payload de resposta. Franca
data.sellerCnpj string Campo data.sellerCnpj retornado no payload de resposta. 47960950000121
data.sellerCountry string Campo data.sellerCountry retornado no payload de resposta. BR
data.sellerId string Campo data.sellerId retornado no payload de resposta. magazineluiza
data.sellerName string Campo data.sellerName retornado no payload de resposta. Magalu
data.sellerSocialReason string Campo data.sellerSocialReason retornado no payload de resposta. Magazine Luiza SA
data.sellerState string Campo data.sellerState retornado no payload de resposta. SP
data.sellerUrl string Campo data.sellerUrl retornado no payload de resposta. https://www.magazineluiza.com.br/lojista/magazineluiza/
data.sellerZipCode string Campo data.sellerZipCode retornado no payload de resposta. 14400900
data.sku string Campo data.sku retornado no payload de resposta. 238034800
data.url string Campo data.url retornado no payload de resposta. 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 de execucao para rastreio e deduplicacao. 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 unico da requisicao no gateway. 44444444-1111-4111-8111-444444444444

Erros comuns

Respostas com notFound: true não entram nesta tabela, porque retornam sucesso HTTP 200.

Status errorCode Quando acontece
400 INVALID_PAYLOAD JSON inválido ou violação das regras de validação do payload.
401 UNAUTHORIZED Header Authorization ausente ou token/chave inválida.
402 INSUFFICIENT_CREDITS Saldo de créditos insuficiente para a API solicitada.
403 FORBIDDEN Usuário sem acesso ou API temporariamente desabilitada.
409 EXECUTION_CONFLICT executionId conflita com uma execução em estado incompatível.
429 RATE_LIMIT_EXCEEDED / TOO_MANY_INFLIGHT_REQUESTS Limite de taxa ou limite de requisições em voo excedido.
5xx UPSTREAM_TIMEOUT / UPSTREAM_HTTP_ERROR / WORKER_INVOCATION_FAILED / WORKER_FUNCTION_ERROR / WORKER_INVALID_RESPONSE / INTERNAL_ERROR Falha de servidor no worker, provider/proxy ou gateway. Nesses casos os créditos são estornados automaticamente.