Felo APIs
Web Fetch API
Extrae el contenido de páginas web como HTML, texto o Markdown con opciones de selector y readability.
/v2/web/extractAutenticación
Bearer API key
Tipo de contenido
application/json
Notas sobre límites
Pueden aplicarse límites específicos del endpoint.
La Web Fetch API extrae contenido de una URL de destino y devuelve el resultado en un formato más fácil de procesar para agentes, sistemas RAG y flujos de trabajo de contenido. Puede devolver HTML, texto sin formato o Markdown, y admite selectores, opciones de legibilidad, control de caché, agentes de usuario personalizados y cookies de solicitud.
Endpoint
POST https://openapi.felo.ai/v2/web/extractAutenticación
Envía tu clave de API en el encabezado Authorization:
Authorization: Bearer YOUR_API_KEYConsulta la guía de autenticación para obtener detalles sobre la creación y gestión de claves de API.
Uso con agentes de IA
Instala el paquete completo felo-ai cuando quieras que un agente extraiga páginas web junto con todas las demás Felo Skills disponibles. El instalador descubre dinámicamente todos los directorios del paquete que contengan SKILL.md, por lo que nunca depende de una lista fija. Instala todas las Skills descubiertas en Codex ~/.codex/skills, Claude Code ~/.claude/skills, OpenClaw ~/.agents/skills o Hermes Agent ~/.hermes/skills. Usa la guía de configuración manual de agentes de IA para los pasos de instalación segura y de clave de API de cada plataforma.
Solicitud
Encabezados
| Encabezado | Obligatorio | Descripción |
|---|---|---|
Authorization | Sí | Tu clave de API con el formato Bearer YOUR_API_KEY |
Content-Type | Sí | Debe ser application/json |
Parámetros del cuerpo
| Parámetro | Tipo | Obligatorio | Predeterminado | Descripción |
|---|---|---|---|---|
url | string | Sí | - | La URL de la página web que se va a extraer. |
crawl_mode | string | No | fast | Modo de extracción. Usa fast para una obtención más rápida o fine para un rastreo más preciso que puede manejar páginas más complejas. |
output_format | string | No | html | Formato de salida. Valores admitidos: html, text, markdown. |
with_readability | boolean o string | No | - | Activa el procesamiento de legibilidad para centrarse en el contenido principal y reducir el ruido de la página. |
with_links_summary | boolean | No | - | Incluye un resumen de enlaces cuando el extractor downstream lo admita. |
with_images_summary | boolean | No | - | Incluye un resumen de imágenes cuando se admita. |
with_images_readability | boolean | No | - | Aplica el tratamiento de legibilidad a la extracción de imágenes cuando se admita. |
with_images | boolean | No | - | Incluye información de imágenes en el resultado extraído. |
with_links | boolean | No | - | Incluye información de enlaces en el resultado extraído. |
ignore_empty_text_image | boolean | No | - | Ignora las imágenes que no contienen texto útil cuando se admita. |
target_selector | string | No | - | Selector CSS del elemento de destino que se va a extraer, por ejemplo article.main-content. |
wait_for_selector | string | No | - | Espera hasta que aparezca un selector CSS antes de extraer. Útil para páginas renderizadas dinámicamente. |
set_cookies | array | No | - | Cookies que se enviarán con la solicitud de extracción. |
user_agent | string | No | - | Cadena de User-Agent personalizada para la solicitud de extracción. |
timeout | integer | No | - | Tiempo de espera de la solicitud en milisegundos. |
with_cache | boolean | No | true | Indica si el extractor downstream puede usar la caché. |
with_stypes | boolean | No | false | Incluye metadatos de tipo de estilo cuando se admita. |
Respuesta
Respuesta correcta
La respuesta usa un diseño de paso directo transparente. Los campos exactos dentro de data pueden variar según output_format y otras opciones de extracción.
{
"status": "ok",
"message": null,
"data": {
"content": "# Example Article\n\nExtracted article content..."
}
}Campos de la respuesta
| Campo | Tipo | Descripción |
|---|---|---|
status | string | Estado de la respuesta. Normalmente ok en una solicitud correcta. |
message | string o null | Mensaje adicional. Normalmente null en las solicitudes correctas. |
data | object | Contenido extraído y metadatos devueltos por el servicio de extracción downstream. |
data.content | string u object | Contenido extraído. La forma depende de output_format y de las opciones seleccionadas. |
Respuestas de error
| Estado HTTP | Código de error | Descripción | Acción sugerida |
|---|---|---|---|
| 400 | WEB_EXTRACT_FAILED | Falló la validación de la solicitud, la URL no es válida o el extractor downstream devolvió un error del lado del cliente. | Comprueba url, los selectores y los parámetros de la solicitud. |
| 401 | UNAUTHORIZED | Falta la clave de API, no es válida o está revocada. | Verifica tu clave de API y el encabezado de autorización. |
| 500 | WEB_EXTRACT_FAILED | Error interno del servicio. | Reintenta la solicitud. Contacta con soporte si el problema persiste. |
Ejemplos
Extracción 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"
}'Extraer Markdown con legibilidad
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
}'Extraer un selector CSS concreto
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 contenido 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 a un agente el contexto de una página web antes de responder a una pregunta.
- Extraer el texto de un artículo para ingerirlo en RAG o crear una base de conocimiento.
- Convertir páginas web a Markdown para archivarlas o para flujos de documentación.
- Obtener contenido concreto de una página mediante selectores CSS.
- Reducir el ruido de la página con el procesamiento de legibilidad antes del análisis de IA downstream.
Notas
- La API gestiona una URL por solicitud.
datase pasa directamente desde el servicio de extracción downstream, por lo que pueden aparecer campos adicionales con el tiempo.- El modo
finepuede ser más lento quefast, pero puede resultar útil cuando la página necesita un comportamiento de renderizado más completo. - Algunas páginas pueden bloquear la extracción, requerir cookies o necesitar un
user_agentpersonalizado.