Site sem RSS?
Essa capacidade gera um feed RSS para páginas que não oferecem nenhum: ela abre a URL num navegador real, identifica a lista de itens publicados — notícias, editais, vagas, lançamentos — e monta um feed com título, link e data de cada um. Está em beta, e cada chamada lê a página na hora.
Rode online
Rode nos nossos servidores com a sua conta. As ferramentas grátis rodam no seu navegador; esta aqui é descontada do seu saldo do KIT pelo preço acima.
Para páginas que só existem em HTML
Boa parte do que vale a pena acompanhar no Brasil não tem feed: página de licitações de prefeitura, mural de editais de universidade, seção de novidades de fornecedor, lista de vagas no site de uma empresa. Acompanhar isso hoje significa visitar a página e comparar de memória. A geração de feed inverte o jogo: a página vira uma fonte estruturada que qualquer leitor de RSS, automação ou script consegue consumir — sem depender de o dono do site oferecer nada.
Como o feed é montado
A ferramenta renderiza a página num navegador de verdade — com JavaScript executado, como um visitante veria — e procura o padrão repetido que caracteriza uma lista de publicações: blocos semelhantes com título, link e, quando existe, data. Desses blocos nasce o feed RSS. Cada chamada fotografa o estado atual da página: para manter o feed vivo, você agenda chamadas periódicas no seu fluxo e serve o resultado ao seu leitor ou automação.
Beta: o que esperar (e o que ainda não)
O rótulo beta é sério. Páginas com estrutura clara de lista funcionam bem; layouts muito criativos, rolagem infinita ou conteúdo carregado aos poucos podem confundir a detecção — itens a menos, ou um bloco de menu tomado por lista. O comportamento certo é testar com a sua página-alvo antes de montar qualquer processo em cima, e contar para a gente quando o resultado vier estranho: caso real reportado é o que faz um beta amadurecer.
Preço por leitura
Cada geração custa US$ 0,040 por solicitação, mais US$ 0,001 por URL processada — a renderização em navegador real é mais cara que uma leitura simples de HTML, e o preço reflete isso com transparência. Um acompanhamento diário de uma página sai por cerca de US$ 1,23 ao mês. Sem assinatura: se o edital que você vigiava foi publicado e a vigília acabou, o gasto acaba junto.
Casos de uso
Licitações da prefeitura no leitor de RSS
Uma construtora de médio porte acompanha as páginas de licitação de cinco prefeituras da região metropolitana de Porto Alegre. Nenhuma oferece feed. Com a geração agendada toda manhã, os avisos novos aparecem no leitor da equipe comercial como notícias — ninguém mais abre cinco sites por dia.
Edital de concurso sem F5
Quem espera edital vive apertando F5 na página da banca. Gerando um feed da página de publicações, a atualização aparece no agregador do candidato — a ansiedade continua, mas pelo menos o navegador descansa.
Novidades do fornecedor viram alerta
A página de lançamentos de um fornecedor industrial não tem feed nem newsletter. O time de compras gera o RSS diariamente e pluga no fluxo interno: produto novo publicado vira item no painel da equipe no dia seguinte.
Perguntas frequentes
O feed se atualiza sozinho?
Não: cada chamada lê a página naquele momento e devolve o feed correspondente. Para ter um feed sempre fresco, agende chamadas periódicas — uma por dia costuma bastar para páginas de edital e de novidades.
O que significa estar em beta?
Que a detecção de itens ainda erra em alguns layouts — especialmente páginas com rolagem infinita ou estrutura pouco convencional. Teste com a sua página antes de automatizar por cima, e relate os casos ruins: é assim que a gente calibra.
Funciona com página que carrega o conteúdo por JavaScript?
Sim — a leitura acontece num navegador real, com JavaScript executado e limite de 30 segundos de carregamento. O que aparecer renderizado nesse tempo entra na análise.
E se a página mudar de layout?
A detecção se apoia na estrutura visível, então uma reforma grande pode mudar o resultado. Como cada chamada lê a página do zero, não há nada para reconfigurar — mas vale conferir o feed depois de mudanças bruscas.
Quanto custa manter um acompanhamento diário?
US$ 0,040 por solicitação mais US$ 0,001 por URL: uma leitura por dia fica em torno de US$ 1,23 por mês, sem mensalidade nem fidelidade.
Isso é permitido? A página não é minha.
Gerar um feed do que uma página pública exibe equivale a visitá-la e anotar as novidades — para acompanhamento pessoal e interno, prática comum. Republicar o conteúdo é outra história: aí valem os direitos do site de origem.
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/web/make-rss \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://ejemplo.com"}'const res = await fetch("https://api.kit.forhosting.com/web/make-rss", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"url": "https://ejemplo.com"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/make-rss",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"url": "https://ejemplo.com"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/make-rss", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"url":"https://ejemplo.com"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"url":"https://ejemplo.com"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/make-rss", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"url": "https://ejemplo.com"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.make_rss",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Limites
timeout_sec | 30 |
max_crawl_pages | 25 |
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
422 | task_failed | A tarefa falhou do nosso lado. Você não paga nada por ela. |