// docs

SHEIN PDP

Detalhes de produtos da SHEIN Brasil por URL: preço, estoque, descrição, imagens e atributos. Custo: 5 créditos por chamada.

Tempo de resposta: Catálogo brasileiro, em português e BRL. Exemplos de resposta ilustrativos: preços e disponibilidade podem mudar. Cada chamada consulta uma página ou um produto e custa 5 créditos; falhas de upstream seguem a política de estorno da plataforma.

Nota importante: alguns campos podem retornar null em produção, dependendo da página de origem. Consulte o schema e a descrição de cada campo para tratar valores ausentes; os exemplos mostram uma resposta possível.

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 '{
  "target": "shein.com",
  "type": "pdp",
  "url": "https://br.shein.com/Product-p-429081540.html?mallCode=2"
}'

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

shein_com_pdp

Auth

Bearer ou X-API-Key

shein_com_pdp tools/call
{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "shein_com_pdp",
    "arguments": {
      "url": "https://br.shein.com/Product-p-429081540.html?mallCode=2",
      "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 URL HTTPS de br.shein.com terminando em -p-GOODS_ID.html. Aceita mallCode ou mall_code na query. Outros países, login e fragmentos não são aceitos. - https://br.shein.com/Product-p-429081540.html?mallCode=2
mallCode
Código de mall da SHEIN PDP. Use o valor retornado pela PLP; se ausente, usa a URL ou o padrão 1.
string Opcional String numérica positiva de até 5 dígitos. Use o mallCode retornado pela PLP. Se também estiver na URL, os valores devem coincidir. Código da URL, ou 1 2

Exemplos de request

Produto retornado pela busca

A URL de cada resultado PLP já inclui o mallCode correto.

Produto retornado pela busca
{
  "target": "shein.com",
  "type": "pdp",
  "url": "https://br.shein.com/Product-p-429081540.html?mallCode=2"
}

Código de mall explícito

Use o mallCode da PLP. Sem campo nem parâmetro na URL, o padrão é 1.

Código de mall explícito
{
  "target": "shein.com",
  "type": "pdp",
  "url": "https://br.shein.com/Product-p-429081540.html",
  "mallCode": "2"
}

Schema de response (leaf paths)

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

responseSchema
{
  "source": "string",
  "type": "string",
  "url": "string",
  "requestUrl": "string",
  "extractedAt": "string",
  "productId": "string",
  "sku": "string | null",
  "name": "string",
  "category": "string | null",
  "mallCode": "string",
  "country": "string",
  "currency": "string",
  "price": "number | null",
  "regularPrice": "number | null",
  "discountAmount": "number | null",
  "stock": "number | null",
  "isOnSale": "boolean | null",
  "description": "string | null",
  "thumbnail": "string | null",
  "images": "{ url: string }[]",
  "attributes": "{ name: string; value: string | null }[]",
  "attributes[].name": "string",
  "attributes[].value": "string | null",
  "sizes": "object[]"
}

Exemplo de response

responseExample
{
  "source": "shein.com",
  "type": "pdp",
  "url": "https://br.shein.com/Product-p-429081540.html?mallCode=2",
  "requestUrl": "https://br.shein.com/Product-p-429081540.html?mallCode=2",
  "extractedAt": "2026-09-18T06:30:00.000Z",
  "productId": "429081540",
  "sku": "sz260325034356227289416",
  "name": "Calça jeans feminina wide leg",
  "category": "Jeans feminino",
  "mallCode": "2",
  "country": "BR",
  "currency": "BRL",
  "price": 49.99,
  "regularPrice": 274,
  "discountAmount": 224.01,
  "stock": 20,
  "isOnSale": true,
  "description": "Calça jeans feminina de cintura alta.",
  "thumbnail": null,
  "images": [],
  "attributes": [
    {
      "name": "Tipo de fechamento",
      "value": "Zíper"
    }
  ],
  "sizes": []
}

Referência completa de campos

Path Tipo Descrição Exemplo
attributes { name: string; value: string | null }[] Atributos do catálogo, como tecido, cor e tipo de fechamento. [{"name":"Tipo de fechamento","value":"Zíper"}]
attributes[].name string Nome do atributo. Tipo de fechamento
attributes[].value string | null Valor do atributo. Zíper
category string | null Nome da categoria, quando informado. Jeans feminino
country string Catálogo consultado: BR. BR
currency string Moeda dos valores normalizados: BRL. BRL
description string | null Descrição fornecida pelo catálogo; null quando ausente. Calça jeans feminina de cintura alta.
discountAmount number | null Valor monetário de desconto informado pela SHEIN, separado do preço final. 224.01
extractedAt string Data e hora da extração em ISO 8601. 2026-09-18T06:30:00.000Z
images { url: string }[] Imagens do produto, sem URLs duplicadas. []
isOnSale boolean | null Disponibilidade para venda quando explicitamente informada; null quando ausente. true
mallCode string Código de mall usado pela consulta. Preserve esse valor ao consultar um resultado da PLP. 2
name string Título do produto. Calça jeans feminina wide leg
price number | null Preço de venda; no PDP, prioriza a resposta de preço atual validada. 49.99
productId string Identificador goods_id do produto. 429081540
regularPrice number | null Preço de referência informado pela SHEIN; não comprova um preço de venda anterior. 274
requestUrl string Mesmo valor de url. https://br.shein.com/Product-p-429081540.html?mallCode=2
sizes object[] Entradas size_and_stock fornecidas pelo catálogo. A estrutura varia; [] significa que a resposta não trouxe essa grade e não comprova falta de estoque. []
sku string | null Código de catálogo goods_sn ou skc_name, quando disponível. sz260325034356227289416
source string Fonte: shein.com. shein.com
stock number | null Estoque informado para a seleção consultada, quando disponível; não representa uma soma de todas as variações. 20
thumbnail string | null Imagem principal, quando disponível. null
type string Tipo de consulta: plp ou pdp. pdp
url string URL pública canônica da consulta. https://br.shein.com/Product-p-429081540.html?mallCode=2

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.