// docs

Netshoes PDP

Extrai dados detalhados de produto (PDP) da Netshoes a partir do HTML bruto nao renderizado, incluindo grade de tamanhos, recomendacao de reviews, atributos e dimensoes.

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.netshoes.com.br/p/tenis-adidas-breaknet-FB9-9335-205",
  "target": "netshoes.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

netshoes_com_br_pdp

Auth

Bearer ou X-API-Key

netshoes_com_br_pdp tools/call
{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "netshoes_com_br_pdp",
    "arguments": {
      "url": "https://www.netshoes.com.br/p/tenis-adidas-breaknet-FB9-9335-205",
      "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 ser netshoes.com.br. - mercadolivre.com.br
type
Tipo da extração: pdp, idp, plp, quote, review ou places.
enum Obrigatório Sempre obrigatorio no payload e deve ser pdp. - pdp

Exemplos de request

PDP por URL

Requisicao basica com URL canonica de produto da Netshoes.

PDP por URL
{
  "url": "https://www.netshoes.com.br/p/tenis-adidas-breaknet-FB9-9335-205",
  "target": "netshoes.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.url": "string",
  "data.name": "string",
  "data.sku": "string",
  "data.parentSku": "string",
  "data.brand.name": "string",
  "data.department": "string",
  "data.productType": "string",
  "data.genders[]": "string",
  "data.sizeType": "string",
  "data.color": "string",
  "data.size": "string",
  "data.ean": "string",
  "data.price": "number",
  "data.cashPrice": "number",
  "data.regularPrice": "number",
  "data.discountAmount": "number",
  "data.discountPercent": "number",
  "data.installmentPrice": "number",
  "data.installmentCount": "number",
  "data.sellerName": "string",
  "data.sellerId": "string",
  "data.availability": "\"InStock\" | \"OutOfStock\"",
  "data.freeShipping": "boolean",
  "data.netshoesDelivery": "boolean",
  "data.sizeBayEligible": "boolean",
  "data.aggregateRating.ratingValue": "number",
  "data.aggregateRating.reviewCount": "number",
  "data.percentRecommended": "number",
  "data.reviewHistogram[].starNumber": "number",
  "data.reviewHistogram[].numberOfVotes": "number",
  "data.images[].url": "string",
  "data.mainImage.url": "string",
  "data.breadcrumbs[].name": "string",
  "data.breadcrumbs[].url": "string",
  "data.additionalProperties[].name": "string",
  "data.additionalProperties[].value": "string | number | boolean",
  "data.mainTraits[].name": "string",
  "data.mainTraits[].value": "string",
  "data.features[]": "string",
  "data.searchUrls[].name": "string",
  "data.searchUrls[].url": "string",
  "data.variants[].sku": "string",
  "data.variants[].size": "string",
  "data.variants[].availability": "\"InStock\" | \"OutOfStock\"",
  "data.variants[].price": "number",
  "data.variants[].regularPrice": "number",
  "data.variants[].sellerName": "string",
  "data.stamps[]": "string"
}

Exemplo de response

responseExample
{
  "requestId": "req_netshoes_pdp_demo",
  "executionId": "exec_netshoes_pdp_demo",
  "data": {
    "canonicalUrl": "https://www.netshoes.com.br/p/tenis-adidas-breaknet-FB9-9335-205",
    "url": "https://www.netshoes.com.br/p/tenis-adidas-breaknet-FB9-9335-205",
    "name": "Tênis Adidas Breaknet",
    "sku": "FB9-9335-205-40",
    "parentSku": "FB9-9335",
    "brand": {
      "id": "3",
      "name": "Adidas",
      "slug": "adidas"
    },
    "department": "Casual",
    "productType": "Tênis",
    "genders": [
      "Masculino"
    ],
    "sizeType": "BR",
    "color": "Branco",
    "size": "40",
    "ean": "4067890000000",
    "description": "Tênis casual da Adidas com cabedal sintético e visual clássico.",
    "longDescription": "Tênis casual da Adidas com construção versátil, conforto para o uso diário e visual inspirado em quadra.",
    "origin": "Nacional",
    "weightInGrams": 900,
    "heightInCm": 12,
    "widthInCm": 10,
    "depthInCm": 30,
    "currency": "BRL",
    "currencyRaw": "R$",
    "price": 229.99,
    "cashPrice": 219.99,
    "regularPrice": 349.99,
    "discountAmount": 120,
    "discountPercent": 34,
    "installmentPrice": 23,
    "installmentCount": 10,
    "sellerName": "Adidas",
    "sellerId": "9702",
    "availability": "InStock",
    "freeShipping": true,
    "nearExpirationDate": false,
    "netshoesDelivery": true,
    "sizeBayEligible": true,
    "breadcrumbs": [
      {
        "name": "Casual",
        "url": "https://www.netshoes.com.br/casual"
      }
    ],
    "images": [
      {
        "url": "https://static.netshoes.com.br/produtos/tenis-adidas-breaknet/05/FB9-9335-205/FB9-9335-205_zoom1.jpg"
      }
    ],
    "mainImage": {
      "url": "https://static.netshoes.com.br/produtos/tenis-adidas-breaknet/05/FB9-9335-205/FB9-9335-205_zoom1.jpg"
    },
    "videos": [
      {
        "url": "https://videos.netshoes.com.br/demo.mp4",
        "thumbnailUrl": "https://videos.netshoes.com.br/demo-thumb.jpg"
      }
    ],
    "aggregateRating": {
      "ratingValue": 4.71,
      "reviewCount": 9552,
      "bestRating": 5
    },
    "percentRecommended": 96,
    "reviewHistogram": [
      {
        "starNumber": 5,
        "numberOfVotes": 231,
        "percentOfVotes": 89
      }
    ],
    "additionalProperties": [
      {
        "name": "Marca",
        "value": "Adidas"
      },
      {
        "name": "Gênero",
        "value": "Masculino"
      },
      {
        "name": "Origem",
        "value": "Nacional"
      }
    ],
    "mainTraits": [
      {
        "name": "Marca",
        "value": "Adidas"
      },
      {
        "name": "Gênero",
        "value": "Masculino"
      }
    ],
    "features": [
      "Marca: Adidas",
      "Gênero: Masculino"
    ],
    "searchUrls": [
      {
        "name": "Tênis Adidas",
        "url": "https://www.netshoes.com.br/busca/tenis-adidas"
      }
    ],
    "variants": [
      {
        "sku": "FB9-9335-205-39",
        "size": "39",
        "ean": "4067890000001",
        "availability": "InStock",
        "price": 229.99,
        "regularPrice": 349.99,
        "sellerId": "9702",
        "sellerName": "Adidas",
        "freeShipping": true,
        "nearExpirationDate": false,
        "netshoesDelivery": true,
        "stamps": [
          "NetsGO"
        ]
      }
    ],
    "stamps": [
      "NetsGO"
    ]
  }
}

Referência completa de campos

Path Tipo Descrição Exemplo
data.additionalProperties[].name string Nome do atributo estruturado. Marca
data.additionalProperties[].value string | number | boolean Valor do atributo estruturado. Adidas
data.aggregateRating.ratingValue number Nota media agregada do produto. 4.71
data.aggregateRating.reviewCount number Quantidade total de reviews agregados. 9552
data.availability "InStock" | "OutOfStock" Status padronizado de disponibilidade do produto. InStock
data.brand.name string Nome da marca do produto. Adidas
data.breadcrumbs[].name string Nome do nivel do breadcrumb. Casual
data.breadcrumbs[].url string URL publica do nivel do breadcrumb. https://www.netshoes.com.br/casual
data.canonicalUrl string URL canonica publicada pela Netshoes para o produto. https://www.netshoes.com.br/p/tenis-adidas-breaknet-FB9-9335-205
data.cashPrice number Preco final sem desconto adicional de meio de pagamento. 219.99
data.color string Cor da variacao selecionada. Branco
data.department string Departamento principal informado pela Netshoes. Casual
data.discountAmount number Valor absoluto do desconto em reais. 120
data.discountPercent number Percentual de desconto sobre o preco de lista. 34
data.ean string EAN da variacao selecionada quando disponivel. 4067890000000
data.features[] string Representacao textual resumida dos principais atributos. Marca: Adidas
data.freeShipping boolean Indica se a oferta principal informa frete gratis. true
data.genders[] string Lista de generos associados ao produto. Masculino
data.images[].url string URL de imagem do produto. https://static.netshoes.com.br/produtos/tenis-adidas-breaknet/05/FB9-9335-205/FB9-9335-205_zoom1.jpg
data.installmentCount number Numero de parcelas informado pela Netshoes. 10
data.installmentPrice number Valor da parcela informado pela Netshoes. 23
data.mainImage.url string URL da imagem principal do produto. https://static.netshoes.com.br/produtos/tenis-adidas-breaknet/05/FB9-9335-205/FB9-9335-205_zoom1.jpg
data.mainTraits[].name string Nome do traço principal exibido no PDP. Marca
data.mainTraits[].value string Valor do traço principal exibido no PDP. Adidas
data.name string Nome do produto. Tênis Adidas Breaknet
data.netshoesDelivery boolean Indica se a entrega e operada pela Netshoes. true
data.parentSku string Codigo pai do produto/grade. FB9-9335
data.percentRecommended number Percentual de usuarios que recomendam o produto. 96
data.price number Preco de venda exibido. 229.99
data.productType string Tipo de produto informado pela Netshoes. Tênis
data.regularPrice number Preco de lista/antes do desconto. 349.99
data.reviewHistogram[].numberOfVotes number Quantidade de votos naquela faixa de estrelas. 231
data.reviewHistogram[].starNumber number Numero de estrelas da faixa avaliada. 5
data.searchUrls[].name string Label de busca relacionada publicada pela Netshoes. Tênis Adidas
data.searchUrls[].url string URL absoluta da busca relacionada. https://www.netshoes.com.br/busca/tenis-adidas
data.sellerId string Identificador do seller associado a oferta principal. 9702
data.sellerName string Nome do seller associado a oferta principal. Adidas
data.size string Tamanho da variacao selecionada. 40
data.sizeBayEligible boolean Flag de elegibilidade SizeBay quando presente no upstream. true
data.sizeType string Tabela/tipo de grade de tamanhos. BR
data.sku string SKU da variacao selecionada. FB9-9335-205-40
data.stamps[] string Selos ou badges comerciais associados a oferta principal. NetsGO
data.url string URL final retornada no payload do scraper. https://www.netshoes.com.br/p/tenis-adidas-breaknet-FB9-9335-205
data.variants[].availability "InStock" | "OutOfStock" Disponibilidade padronizada da variante. InStock
data.variants[].price number Preco de venda da variante. 229.99
data.variants[].regularPrice number Preco de lista da variante. 349.99
data.variants[].sellerName string Seller associado a variante. Adidas
data.variants[].size string Tamanho da variante. 39
data.variants[].sku string SKU de uma variante/tamanho dentro da grade. FB9-9335-205-39
executionId string (uuid) Identificador unico da execucao do worker. exec_netshoes_pdp_demo
notFound boolean (optional; true when the upstream entity was not found and data is null) Indicador opcional para respostas onde a entidade nao existe no upstream. N/A
requestId string (uuid) Identificador unico da requisicao atendida pelo gateway. req_netshoes_pdp_demo

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.