summarize_content
Resumen extractivo: las oraciones se toman del original, nunca se reescriben. La herramienta divide el texto en oraciones, descarta los fragmentos de menos de 20 caracteres y devuelve los primeros con la forma que solicite. No se llama a ningún modelo, así que la misma página se resume siempre igual, y nada puede inventarse.
Casos de uso
Vistas previas de feeds
Genere un adelanto de una línea para cada elemento de un feed de enlaces con summary_type: brief.
Correos de resumen
Convierta una lista de artículos en viñetas listas para pegar en un boletín.
Triaje antes de leer
Decida si una página larga merece una extracción completa mirando sus primeras oraciones.
Fragmentos de resultados de búsqueda
Adjunte a las páginas indexadas un fragmento coherente y citable, tomado literalmente del original.
Contexto citable
Como las oraciones se copian en lugar de parafrasearse, la salida se puede citar directamente y con referencia.
Resúmenes previos económicos
Reduzca una página antes de enviarla a un modelo de lenguaje, para que el modelo pague menos tokens.
Endpoint
/api/v1/tools/summarize_contentParameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
url | string | Optional | - | Página que se descargará y resumirá. Primero se eliminan scripts, estilos, nav, header y footer. Indique `url` o `content`. Example: https://example.com/blog/crawl-budgets |
content | string | Optional | - | Texto para resumir directamente, sin descarga. Solo surte efecto cuando se omite `url`: si envía ambos, gana la página descargada. Example: Search engines allocate a finite number of requests... |
max_sentences | number | Optional | 5 | Cuántas oraciones conservar, de 1 a 20. Se ignora cuando `summary_type` es `brief`, que siempre devuelve una. Example: 3 |
summary_type | string | Optional | extractive | `extractive` une las oraciones en una sola cadena de párrafo. `key_points` las devuelve como un array de cadenas, una por oración. `brief` devuelve solo la primera oración, como cadena. Example: key_points |
include_metadata | boolean | Optional | false | Añade el título, la descripción, el autor y la fecha de publicación de la página como objeto `metadata`. Solo tiene efecto junto con `url`: no hay metadatos que leer cuando pasa `content`. Example: true |
timeout | number | Optional | 10000 | Tiempo de espera de la descarga en milisegundos, entre 1000 y 30000. Solo se aplica cuando se usa `url`. Example: 10000 |
respect_robots | boolean | Optional | true | Respeta el robots.txt del sitio de destino. Con el valor `true`, una ruta que robots.txt no permita a `CrawlForge` se rechaza con un 403 antes de descargar nada y no se cobran credits. Póngalo en `false` solo para destinos con los que tenga su propio acuerdo: la respuesta incluye entonces una entrada `warnings` y la anulación queda registrada en su API key. Example: true |
Ejemplos de solicitud
curl -X POST https://crawlforge.dev/api/v1/tools/summarize_content \
-H "X-API-Key: cf_test_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/blog/crawl-budgets",
"max_sentences": 3,
"summary_type": "extractive",
"include_metadata": true
}'Ejemplo de respuesta
{ "success": true, "data": { "summary": "Search engines allocate a finite number of requests to each site, and that allowance is what people mean by crawl budget. Large sites hit the ceiling long before small ones do, usually through duplicate URLs rather than genuine pages. Faceted navigation is the classic offender, generating thousands of near-identical addresses from a single catalogue.", "summary_type": "extractive", "original_length": 613, "summary_length": 352, "compression_ratio": 0.57, "sentences_used": 3, "total_sentences": 5, "metadata": { "title": "Why crawl budgets matter — Acme Blog", "description": "How search engines ration requests, and what to do about it.", "author": "Dana Reyes", "publish_date": "2026-08-14T09:30:00Z" } }, "credits_used": 4, "credits_remaining": 996, "processing_time": 540}data.summaryUna cadena para `extractive` y `brief`, y un array de cadenas para `key_points`. Tipe su cliente en consecuenciadata.original_lengthCaracteres del texto de origen tras eliminar el HTML, no el tamaño bruto de la páginadata.compression_ratio`summary_length / original_length`, redondeado a dos decimales. Cuanto más bajo, más compacto es el resumendata.sentences_usedOraciones realmente devueltas: menor que `max_sentences` en una página cortadata.total_sentencesOraciones encontradas en el original, contando solo las de más de 20 caracteres. Compárelo con `sentences_used` para ver cuánto quedó fueradata.metadataSolo aparece cuando `include_metadata` es true y se indicó una `url`. Cada campo queda indefinido si la página no lo declaracredits_used4 credits fijos por llamada, sea cual sea la longitud del textoManejo de errores
Ni url ni content (400 Bad Request)
VALIDATION_ERROR. Debe estar presente al menos uno de los dos. El mismo estado cubre una url mal formada, un max_sentences fuera de 1-20, un summary_type desconocido o un timeout fuera de 1000-30000.
Página demasiado grande (413 Payload Too Large)
RESPONSE_TOO_LARGE. La página descargada superó el límite de lectura de 25MB y se rechazó en lugar de almacenarse en memoria.
El destino agotó el tiempo de espera (504 Gateway Timeout)
FETCH_TIMEOUT. La página dejó de responder mientras enviaba su cuerpo. Aumente timeout, hasta 30000 ms.
Fallo en la descarga (502 Bad Gateway)
FETCH_FAILED. No se pudo leer el cuerpo de la respuesta: conexión reiniciada, o un cuerpo que no es texto decodificable.
El resumen falló (500 Internal Server Error)
TOOL_ERROR. Una llamada fallida no se cobra; los credits solo se descuentan después de generar el resumen.
Bloqueado por robots.txt (403 Forbidden)
El robots.txt del sitio de destino no permite esta ruta a CrawlForge. Establezca respect_robots: false para anularlo si tiene su propio acuerdo con el destino: la anulación queda registrada en su API key. La anulación no alcanza a un host incluido en la lista de exclusión permanente de CrawlForge, que se rechaza sea cual sea el valor de respect_robots. Solo la forma con url pasa por la comprobación: resumir el content que usted proporciona no descarga nada, así que no puede rechazarse aquí.
No content to summarize con brief, y un resultado vacío con los demás tipos, en lugar de un error. Compruebe total_sentences antes de usar el resumen.Costo en credits
max_sentences que solicite. Las llamadas fallidas no se cobran.Qué incluye:
Descarga de la página y eliminación de elementos repetitivos cuando pasa una url
División en oraciones con filtrado de fragmentos cortos
Salida en párrafo, lista de viñetas o una sola línea
Estadísticas de longitud y compresión
Metadatos opcionales de la página (título, descripción, autor, fecha)
Recomendaciones por plan:
Plan Free: 1,000 credits de prueba por única vez = 250 resúmenes
Plan Hobby: 5,000 credits = 1,250 resúmenes ($19/mo)
Plan Professional: 50,000 credits = 12,500 resúmenes ($99/mo)