Felo API PlatformFelo API Platform

Felo APIs

Web Fetch API

Extraia o conteúdo de páginas web como HTML, texto ou Markdown com opções de selector e readability.

POST/v2/web/extract

Autenticação

Bearer API key

Tipo de conteúdo

application/json

Notas de limite

Podem se aplicar limites específicos do endpoint.

A Web Fetch API extrai conteúdo de uma URL de destino e retorna o resultado em um formato mais fácil de processar por agentes, sistemas RAG e fluxos de conteúdo. Ela pode retornar HTML, texto simples ou Markdown, e oferece suporte a seletores, opções de legibilidade, controle de cache, user agents personalizados e cookies de requisição.

Endpoint

POST https://openapi.felo.ai/v2/web/extract

Autenticação

Envie sua chave de API no cabeçalho Authorization:

Authorization: Bearer YOUR_API_KEY

Consulte o guia de autenticação para detalhes sobre como criar e gerenciar chaves de API.

Uso com agentes de IA

Instale o pacote completo felo-ai quando quiser que um agente extraia páginas web e use todos os demais Felo Skills disponíveis. O instalador descobre dinamicamente todos os diretórios de pacote que contêm SKILL.md, então nunca depende de uma lista fixa. Instale todos os Skills descobertos em ~/.codex/skills para o Codex, ~/.claude/skills para o Claude Code, ~/.agents/skills para o OpenClaw ou ~/.hermes/skills para o Hermes Agent. Use o guia de configuração manual de agentes de IA para ver os passos de instalação segura e de chave de API de cada plataforma.

Requisição

Cabeçalhos

CabeçalhoObrigatórioDescrição
AuthorizationSimSua chave de API no formato Bearer YOUR_API_KEY
Content-TypeSimDeve ser application/json

Parâmetros do corpo

ParâmetroTipoObrigatórioPadrãoDescrição
urlstringSim-A URL da página web a ser extraída.
crawl_modestringNãofastModo de extração. Use fast para uma busca mais rápida ou fine para um rastreamento mais preciso, que pode lidar com páginas mais ricas.
output_formatstringNãohtmlFormato de saída. Valores aceitos: html, text, markdown.
with_readabilityboolean ou stringNão-Ativa o processamento de legibilidade para focar no conteúdo principal e reduzir o ruído da página.
with_links_summarybooleanNão-Inclui um resumo de links quando o extrator downstream oferece suporte.
with_images_summarybooleanNão-Inclui um resumo de imagens quando houver suporte.
with_images_readabilitybooleanNão-Aplica o tratamento de legibilidade à extração de imagens quando houver suporte.
with_imagesbooleanNão-Inclui informações de imagens no resultado extraído.
with_linksbooleanNão-Inclui informações de links no resultado extraído.
ignore_empty_text_imagebooleanNão-Ignora imagens que não contêm texto útil quando houver suporte.
target_selectorstringNão-Seletor CSS do elemento de destino a extrair, como article.main-content.
wait_for_selectorstringNão-Espera até que um seletor CSS apareça antes da extração. Útil para páginas renderizadas dinamicamente.
set_cookiesarrayNão-Cookies a serem enviados com a requisição de extração.
user_agentstringNão-String de User-Agent personalizada para a requisição de extração.
timeoutintegerNão-Tempo limite da requisição em milissegundos.
with_cachebooleanNãotrueSe o extrator downstream pode usar cache.
with_stypesbooleanNãofalseInclui metadados de tipo de estilo quando houver suporte.

Resposta

Resposta de sucesso

A resposta usa um design transparente de repasse. Os campos exatos dentro de data podem variar conforme output_format e outras opções de extração.

{
  "status": "ok",
  "message": null,
  "data": {
    "content": "# Example Article\n\nExtracted article content..."
  }
}

Campos da resposta

CampoTipoDescrição
statusstringStatus da resposta. Normalmente ok para uma requisição bem-sucedida.
messagestring ou nullMensagem adicional. Normalmente null para requisições bem-sucedidas.
dataobjectConteúdo extraído e metadados retornados pelo serviço de extração downstream.
data.contentstring ou objectConteúdo extraído. O formato depende de output_format e das opções selecionadas.

Respostas de erro

Status HTTPCódigo de erroDescriçãoAção sugerida
400WEB_EXTRACT_FAILEDA validação da requisição falhou, a URL é inválida ou o extrator downstream retornou um erro do lado do cliente.Verifique url, os seletores e os parâmetros da requisição.
401UNAUTHORIZEDA chave de API está faltando, é inválida ou foi revogada.Verifique sua chave de API e o cabeçalho de autorização.
500WEB_EXTRACT_FAILEDErro interno do serviço.Tente novamente. Fale com o suporte se o problema persistir.

Exemplos

Extração básica

curl -X POST https://openapi.felo.ai/v2/web/extract \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com"
  }'

Extrair Markdown com legibilidade

curl -X POST https://openapi.felo.ai/v2/web/extract \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com/article",
    "output_format": "markdown",
    "with_readability": true
  }'

Extrair um seletor CSS específico

curl -X POST https://openapi.felo.ai/v2/web/extract \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com/article",
    "target_selector": "article.main-content",
    "output_format": "text"
  }'

Esperar por conteúdo dinâmico

curl -X POST https://openapi.felo.ai/v2/web/extract \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com/app",
    "crawl_mode": "fine",
    "wait_for_selector": "#loaded-content",
    "output_format": "markdown",
    "timeout": 30000
  }'

Casos de uso

  • Dar contexto de uma página web a um agente antes de responder a uma pergunta.
  • Extrair o texto de artigos para ingestão em RAG ou criação de bases de conhecimento.
  • Converter páginas web em Markdown para fluxos de arquivamento ou documentação.
  • Obter conteúdo direcionado de uma página usando seletores CSS.
  • Reduzir o ruído da página com processamento de legibilidade antes de uma análise de IA downstream.

Observações

  • A API processa uma URL por requisição.
  • data é repassado pelo serviço de extração downstream, então campos adicionais podem aparecer com o tempo.
  • O modo fine pode ser mais lento que o fast, mas pode ser útil quando a página precisa de um comportamento de renderização mais rico.
  • Algumas páginas podem bloquear a extração, exigir cookies ou precisar de um user_agent personalizado.