API para realizar webscraping do site Buscapé.
- Clone o repositório
- Instale as dependências:
npm install- Crie um arquivo .env baseado no exemplo e configure as variáveis de ambiente
Para desenvolvimento:
npm run devPara produção:
npm startBusca produtos no Buscapé
Parâmetros:
- q (obrigatório): termo de busca
Exemplo:
GET /api/search?q=notebook
Resposta:
{
"query": "notebook",
"total": 30,
"products": [
{
"name": "Nome do Produto",
"price": "R$ 1.999,00",
"rating": "4.5 (100)",
"link": "https://www.buscape.com.br/produto",
"tags": ["Indica", "Oferta"],
"image": "url-da-imagem",
"installment": "até 10x de R$ 199,90"
}
]
}Obtém detalhes específicos de um produto
Parâmetros:
- url (obrigatório): URL completa do produto no Buscapé
Exemplo:
GET /api/product?url=https://www.buscape.com.br/produto
Resposta:
{
"name": "Nome do Produto",
"price": "R$ 1.999,00",
"description": "Descrição do produto",
"specifications": {
"Marca": "Valor",
"Modelo": "Valor"
},
"merchants": [
{
"name": "Nome da Loja",
"price": "R$ 1.999,00",
"rating": "4.5",
"shipping": "Frete Grátis"
}
]
}Verifica manualmente o preço de um produto monitorado
Parâmetros:
- id (obrigatório): ID do monitor
Exemplo:
POST /api/monitor/check/abc123
Resposta:
{
"success": true,
"result": {
"checked": true,
"notified": false
}
}Cancela o monitoramento de um produto (usado no e-mail)
- ✅ Monitoramento automático de preços a cada 6 horas
- ✅ Notificações por e-mail quando o preço alvo é atingido
- ✅ Interface para gerenciar produtos monitorados
- ✅ Verificação manual de preços
- ✅ Integração com Firebase Firestore
- ✅ E-mails via Resend API
-
Firebase Setup:
- Crie um projeto no Firebase Console
- Ative o Firestore Database
- Gere uma chave de conta de serviço (Service Account)
- Configure as variáveis de ambiente no arquivo
.env
-
Resend Setup:
- Crie uma conta em Resend
- Gere uma API Key
- Configure a variável
RESEND_API_KEYno.env
-
Variáveis de Ambiente: Copie o arquivo
env.examplepara.enve preencha:FIREBASE_PROJECT_ID=seu-project-id FIREBASE_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----\n" FIREBASE_CLIENT_EMAIL=firebase-adminsdk@... RESEND_API_KEY=re_sua_chave EMAIL_FROM=BuscapéAPI <[email protected]>
Adiciona um produto ao monitoramento
Body:
{
"userEmail": "[email protected]",
"productName": "Nome do Produto",
"productUrl": "https://www.buscape.com.br/...",
"currentPrice": 1500.00,
"targetPrice": 1300.00,
"productImage": "url-da-imagem"
}GET /api/monitor?email=[email protected]
Lista todos os produtos monitorados por um e-mail
Atualiza o preço alvo de um monitor
Body:
{
"targetPrice": 1200.00
}Remove um monitoramento
- Node.js
- Express
- Axios
- Cheerio
- CORS
- Firebase Admin SDK
- Resend
- Node-Cron
- Tailwind CSS
- HeroUI V2
- Alpine.js
- Lucide Icons