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.
/v2/web/extractAutenticaçã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/extractAutenticação
Envie sua chave de API no cabeçalho Authorization:
Authorization: Bearer YOUR_API_KEYConsulte 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çalho | Obrigatório | Descrição |
|---|---|---|
Authorization | Sim | Sua chave de API no formato Bearer YOUR_API_KEY |
Content-Type | Sim | Deve ser application/json |
Parâmetros do corpo
| Parâmetro | Tipo | Obrigatório | Padrão | Descrição |
|---|---|---|---|---|
url | string | Sim | - | A URL da página web a ser extraída. |
crawl_mode | string | Não | fast | Modo 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_format | string | Não | html | Formato de saída. Valores aceitos: html, text, markdown. |
with_readability | boolean ou string | Não | - | Ativa o processamento de legibilidade para focar no conteúdo principal e reduzir o ruído da página. |
with_links_summary | boolean | Não | - | Inclui um resumo de links quando o extrator downstream oferece suporte. |
with_images_summary | boolean | Não | - | Inclui um resumo de imagens quando houver suporte. |
with_images_readability | boolean | Não | - | Aplica o tratamento de legibilidade à extração de imagens quando houver suporte. |
with_images | boolean | Não | - | Inclui informações de imagens no resultado extraído. |
with_links | boolean | Não | - | Inclui informações de links no resultado extraído. |
ignore_empty_text_image | boolean | Não | - | Ignora imagens que não contêm texto útil quando houver suporte. |
target_selector | string | Não | - | Seletor CSS do elemento de destino a extrair, como article.main-content. |
wait_for_selector | string | Não | - | Espera até que um seletor CSS apareça antes da extração. Útil para páginas renderizadas dinamicamente. |
set_cookies | array | Não | - | Cookies a serem enviados com a requisição de extração. |
user_agent | string | Não | - | String de User-Agent personalizada para a requisição de extração. |
timeout | integer | Não | - | Tempo limite da requisição em milissegundos. |
with_cache | boolean | Não | true | Se o extrator downstream pode usar cache. |
with_stypes | boolean | Não | false | Inclui 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
| Campo | Tipo | Descrição |
|---|---|---|
status | string | Status da resposta. Normalmente ok para uma requisição bem-sucedida. |
message | string ou null | Mensagem adicional. Normalmente null para requisições bem-sucedidas. |
data | object | Conteúdo extraído e metadados retornados pelo serviço de extração downstream. |
data.content | string ou object | Conteúdo extraído. O formato depende de output_format e das opções selecionadas. |
Respostas de erro
| Status HTTP | Código de erro | Descrição | Ação sugerida |
|---|---|---|---|
| 400 | WEB_EXTRACT_FAILED | A 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. |
| 401 | UNAUTHORIZED | A chave de API está faltando, é inválida ou foi revogada. | Verifique sua chave de API e o cabeçalho de autorização. |
| 500 | WEB_EXTRACT_FAILED | Erro 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
finepode ser mais lento que ofast, 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_agentpersonalizado.