# Leilões da Receita Federal — Lotes, Alertas e Descontos (`kodama-data/leiloes-receita-federal-brasil`) Actor

Lotes dos leilões da Receita Federal: celulares, eletrônicos, veículos. Lance mínimo x avaliação, prazo, UF, aceita PF, itens e alerta de novos lotes.

- **URL**: https://apify.com/kodama-data/leiloes-receita-federal-brasil.md
- **Developed by:** [Guilherme Kodama](https://apify.com/kodama-data) (community)
- **Categories:** E-commerce, Business, Other
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.00 / 1,000 lotes

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Leilões da Receita Federal — Lotes, Alertas e Descontos (SLE)

> Desenvolvido e mantido por **Guilherme Kodama** · GitHub: [github.com/guilhermeKodama](https://github.com/guilhermeKodama)

> 📬 Do mesmo autor: **Radar Vending Público** — alerta diário por e-mail de licitações e diários oficiais para máquinas de café, snack e água em órgãos públicos. [Ver amostra e planos](https://guilhermekodama.github.io/radar-vending/) · [Plano Fundador — R$ 29/mês](https://pay.kiwify.com.br/caNaoiF)

**Quais mercadorias apreendidas a Receita Federal vai leiloar, onde, e por quanto?** Este actor lê o portal
público do **Sistema de Leilão Eletrônico (SLE)** da Receita Federal e entrega, lote a lote: tipo (celulares,
eletrônicos, informática, veículos, relógios, brinquedos, cosméticos, pneus, resíduos…), **lance mínimo x valor de
avaliação** (com o desconto em %), prazo de propostas, cidade/UF e depósito, **se aceita pessoa física**, avisos e
erratas do edital e a lista de itens de cada lote.

### Para quem

- **Revendedores e lojistas** (celulares, acessórios, eletrônicos, informática): achar lotes com desconto antes do prazo.
- **Compradores de veículos**: carros, motos e caminhões de leilão da Receita, filtrando por UF, ano e valor.
- **Recicladores**: lotes de resíduos (direito ao material após destruição).
- **Assessorias de leilão e analistas**: base estruturada + histórico de arrematação por tipo de lote.

### O que entrega

Uma linha por lote (`id` = edital#lote), com `tipoLote`, `valorMinimo`, `valorAvaliacao`,
`descontoMinimoSobreAvaliacaoPct`, `permitePF`/`somentePJ`, `dataFimPropostas`, `diasAteFimPropostas`,
`dataAberturaLances`, `unidade`, `cidade`, `uf`, `recintos`, `numItens`, `quantidadeTotal`, `itens`
(descrição, quantidade, unidade, recinto), `anosVeiculo`, `avisosErratas`, `contato`, `linkEdital`,
`situacaoEdital`, `situacaoLote`, `arrematado` (histórico) e `statusAlerta` (novo/alterado/visto).

No key-value store, a chave `RESUMO` traz: editais processados, lotes por UF e por tipo, soma de lances mínimos por
tipo, **top 10 descontos** e **taxa de arrematação por tipo** (quando você inclui editais encerrados).

### Como usar

- `situacoes`: `proximos`, `abertos` (padrão), `fechados`, `encerrados` (histórico recente).
- `tiposLote`: `celular`, `informatica`, `eletronico`, `automovel`, `motocicleta`, `caminhao`, `relogio`, `residuos`…
- `keywords` / `excludeKeywords`: busca na descrição dos itens (`iphone`, `notebook`, `hilux`; excluir `danificado`).
- `ufs`, `cidades`, `minValue`/`maxValue`, `minDiscountPct`, `onlyAllowsPF`, `excludeResiduos`.
- **Modo alerta**: `onlyNew: true` + `stateKey` e agende diário → só lotes novos ou que mudaram de valor/situação.

Exemplos:

- Celulares e eletrônicos no Brasil, alerta diário: `{"tiposLote":["celular","eletronico","informatica"],"onlyNew":true,"stateKey":"eletronicos"}`
- Carros até R$ 60 mil que pessoa física pode arrematar: `{"tiposLote":["automovel","veiculo"],"onlyAllowsPF":true,"maxValue":60000}`
- Histórico: `{"situacoes":["encerrados"],"tiposLote":["celular"],"maxEditais":10}` → taxa de arrematação no RESUMO.

### Observações honestas

- O valor de arremate final não é publicado em JSON pelo portal (só em ata PDF); o actor informa **se** o lote foi
  arrematado, não por quanto.
- Lotes baixados/reaproveitados de editais antigos não têm itens visíveis no portal (contados em `lotesSemDetalheNoPortal`).
- A UF é deduzida da unidade da Receita que publica o edital; a mercadoria pode estar em outro depósito da mesma região
  (veja `recintos`).
- Para dar lance é preciso conta gov.br no próprio SLE; o actor só informa, não participa do leilão.

### Privacidade (LGPD)

A fonte não traz dados de pessoas. **Placa e chassi de veículos são mascarados por padrão** (`maskVehicleIds`).
Nenhum dado de licitante ou arrematante é coletado.

### Fonte

Receita Federal do Brasil — Sistema de Leilão Eletrônico (SLE), portal público
https://www25.receita.fazenda.gov.br/sle-sociedade/portal. Dado público oficial, sem chave e sem login, coletado com
pausas educadas entre requisições.

***

#### English summary

**Brazil Federal Revenue (Receita Federal) auctions.** Lots of seized goods auctioned by Brazil's tax authority
(phones, electronics, computers, vehicles, watches, toys, scrap…): minimum bid vs. appraisal value with discount %,
deadlines, city/state, whether individuals may bid, item lists, notices, and historical sell-through by lot type.
Alert mode (`onlyNew`) for daily monitoring. Vehicle plates and VINs masked by default.

# Actor input Schema

## `situacoes` (type: `array`):

Quais editais incluir: proximos (ainda vão abrir propostas), abertos (recebendo propostas agora), fechados (em classificação/lances) e encerrados (histórico recente: mostra se cada lote foi arrematado). Padrão: próximos + abertos.

## `ufs` (type: `array`):

Siglas de UF onde a mercadoria está (ex.: \["SP","PR"]). Vazio = Brasil todo. A UF é deduzida da unidade/cidade da Receita que publica o edital.

## `cidades` (type: `array`):

Filtra pelo nome da cidade ou unidade da Receita (ex.: "Curitiba", "Galeão", "Porto de Santos", "Foz do Iguaçu").

## `tiposLote` (type: `array`):

Tipo de lote como a Receita classifica (busca parcial, sem acento): "celular", "informatica", "eletronico", "automovel", "motocicleta", "caminhao", "relogio", "brinquedo", "cosmetico", "bebida", "pneu", "residuos"...

## `keywords` (type: `array`):

Só lotes cujos itens contenham ao menos uma destas palavras (todas as palavras de cada termo, sem acento). Ex.: \["iphone", "notebook", "hilux"].

## `excludeKeywords` (type: `array`):

Descarta lotes cujos itens contenham qualquer uma destas palavras. Ex.: \["danificado", "sucata"].

## `minValue` (type: `integer`):

Valor mínimo do lote (preço de partida) a partir de.

## `maxValue` (type: `integer`):

Valor mínimo do lote (preço de partida) até. Útil para revendedor com caixa limitado.

## `minDiscountPct` (type: `integer`):

Só lotes em que o lance mínimo está pelo menos X% abaixo do valor de avaliação da Receita. Ex.: 50.

## `onlyAllowsPF` (type: `boolean`):

Muitos lotes são só para empresas (PJ). Marque para ver só os que pessoa física pode arrematar.

## `excludeResiduos` (type: `boolean`):

Lotes de resíduos dão direito só ao material após destruição (interessa a recicladores). Marque para esconder.

## `includeItems` (type: `boolean`):

Busca a lista de itens (descrição, quantidade, recinto) de cada lote. Necessário para palavras-chave. Desmarque para uma visão rápida só por edital/tipo/valor.

## `maxItemsPerLot` (type: `integer`):

Lotes de mercadoria às vezes têm centenas de itens; corta a lista na saída (a contagem total continua em numItens).

## `maskVehicleIds` (type: `boolean`):

Mascarar placa e chassi de veículos nas descrições (padrão: sim). O dado completo está no edital oficial (linkEdital).

## `onlyNew` (type: `boolean`):

Entrega só lotes que não apareceram em execuções anteriores com a mesma stateKey, ou que mudaram de valor/situação. Agende diário ou semanal.

## `stateKey` (type: `string`):

Nome da memória do modo alerta. Use uma chave por filtro (ex.: "celulares-sp").

## `maxLots` (type: `integer`):

Limite de lotes entregues na execução (controla custo).

## `maxEditais` (type: `integer`):

Limite de editais processados (ordenados pelo prazo de propostas mais próximo).

## `requestDelaySecs` (type: `number`):

Pausa educada entre requisições ao portal público da Receita.

## Actor input object example

```json
{
  "situacoes": [
    "proximos",
    "abertos"
  ],
  "tiposLote": [
    "celular",
    "informatica",
    "eletronico"
  ],
  "onlyAllowsPF": false,
  "excludeResiduos": false,
  "includeItems": true,
  "maxItemsPerLot": 30,
  "maskVehicleIds": true,
  "onlyNew": false,
  "stateKey": "padrao",
  "maxLots": 2000,
  "maxEditais": 40,
  "requestDelaySecs": 0.25
}
```

# Actor output Schema

## `results` (type: `string`):

Uma linha por lote, com valores, prazo, local, itens e status do alerta.

## `resumo` (type: `string`):

JSON com editais processados, contagem por UF/tipo, top descontos e contadores.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "situacoes": [
        "proximos",
        "abertos"
    ],
    "tiposLote": [
        "celular",
        "informatica",
        "eletronico"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("kodama-data/leiloes-receita-federal-brasil").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "situacoes": [
        "proximos",
        "abertos",
    ],
    "tiposLote": [
        "celular",
        "informatica",
        "eletronico",
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("kodama-data/leiloes-receita-federal-brasil").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "situacoes": [
    "proximos",
    "abertos"
  ],
  "tiposLote": [
    "celular",
    "informatica",
    "eletronico"
  ]
}' |
apify call kodama-data/leiloes-receita-federal-brasil --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,kodama-data/leiloes-receita-federal-brasil"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/fsxEt3j1rlBk5ALeq/builds/8IOvMcBeHuBIseEAl/openapi.json
