generate_llms_txt
Rastree un sitio, analice su estructura y emita un archivo llms.txt (y opcionalmente llms-full.txt) conforme al estándar que define cómo deben interactuar los modelos de IA con su contenido. Niveles de cumplimiento desde permisivo hasta estricto.
Casos de uso
Publique documentación lista para IA
Publique llms.txt junto con su documentación para que Claude, ChatGPT y otros rastreadores lean directrices claras.
Publicación de cumplimiento para IA
Use el cumplimiento estricto para establecer reglas de datos de entrenamiento, caché y atribución en un solo lugar.
Generación de políticas para bots
Agregue directrices y restricciones personalizadas para agentes de usuario de IA específicos en su dominio.
Endpoint
/api/v1/tools/generate_llms_txtParameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
url | string | Required | - | La URL del sitio web para la que generar llms.txt Example: https://example.com |
format | string | Optional | both | Formato de salida: "both" | "llms-txt" | "llms-full-txt" Example: both |
complianceLevel | string | Optional | standard | Nivel de cumplimiento para las directrices generadas: "basic" | "standard" | "strict" Example: standard |
analysisOptions | object | Optional | - | Opciones de análisis del sitio web (maxDepth 1-5, maxPages 10-500, respectRobots, detectAPIs, analyzeContent, checkSecurity) Example: {"maxDepth": 3, "maxPages": 100, "detectAPIs": true} |
outputOptions | object | Optional | - | Personalización de la salida (organizationName, contactEmail, customGuidelines, customRestrictions, includeDetailed, includeAnalysis) Example: {"organizationName": "Example Inc.", "contactEmail": "ai@example.com"} |
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. `analysisOptions.respectRobots` es un alias; basta con poner cualquiera de los dos en `false` para desactivar la comprobación. Example: true |
Ejemplos de solicitud
cURL — ambos formatos, cumplimiento estándar
curl -X POST https://crawlforge.dev/api/v1/tools/generate_llms_txt \
-H "X-API-Key: cf_test_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com",
"format": "both",
"complianceLevel": "standard",
"outputOptions": {
"organizationName": "Example Inc.",
"contactEmail": "ai@example.com"
}
}'TypeScript — estricto con directrices personalizadas
const response = await fetch('https://crawlforge.dev/api/v1/tools/generate_llms_txt', {
method: 'POST',
headers: {
'X-API-Key': process.env.CRAWLFORGE_API_KEY!,
'Content-Type': 'application/json',
},
body: JSON.stringify({
url: 'https://docs.example.com',
format: 'both',
complianceLevel: 'strict',
analysisOptions: {
maxDepth: 4,
maxPages: 250,
detectAPIs: true,
analyzeContent: true,
},
outputOptions: {
organizationName: 'Example Inc.',
contactEmail: 'ai@example.com',
customGuidelines: [
'AI crawlers must respect robots.txt',
'Cache responses for up to 24 hours',
],
customRestrictions: [
'No training on user-submitted content',
],
includeAnalysis: true,
},
}),
});
const { data } = await response.json();
await fs.writeFile('public/llms.txt', data.files['llms.txt']);
await fs.writeFile('public/llms-full.txt', data.files['llms-full.txt']);Python
import requests, os
response = requests.post(
'https://crawlforge.dev/api/v1/tools/generate_llms_txt',
headers={
'X-API-Key': os.environ['CRAWLFORGE_API_KEY'],
'Content-Type': 'application/json',
},
json={
'url': 'https://example.com',
'format': 'llms-txt',
'complianceLevel': 'basic',
},
)
data = response.json()['data']
with open('public/llms.txt', 'w') as f:
f.write(data['files']['llms.txt'])Ejemplo de respuesta
{ "success": true, "data": { "url": "https://example.com", "llms_txt": "# Example Inc.\n\n> Tools for building things.\n\n## Docs\n\n- [Quickstart](https://example.com/docs/quickstart): Get started in five minutes\n", "llms_full_txt": "# Example Inc.\n\n## Quickstart\n\nURL: https://example.com/docs/quickstart\n\nGet started in five minutes...", "pages_analyzed": 12, "pages": [ { "url": "https://example.com", "title": "Example Inc." }, { "url": "https://example.com/docs/quickstart", "title": "Quickstart" } ], "compliance": { "robots_txt_found": true, "disallow_count": 3 }, "api_endpoints_detected": [ "https://example.com/api/v1" ], "clamps_applied": [ "maxPages clamped from 100 to 25" ], "generated_at": "2026-08-26T14:30:00.000Z" }, "credits_used": 5, "credits_remaining": 995, "processing_time": 4100}data.llms_txtEl llms.txt generado. Presente salvo que `format` se haya fijado en llms-full-txt.data.llms_full_txtllms.txt con el texto de cada página analizada incluido. Presente solo cuando `format` es both o llms-full-txt.data.pages_analyzedLa página raíz más todas las páginas descargadas con éxito.data.pagesLas páginas que entraron en la salida, cada una con su título.data.compliance.robots_txt_foundSi se recuperó un robots.txt; disallow_count indica cuántas reglas Disallow contenía.data.api_endpoints_detectedHasta 10 URL con aspecto de API detectadas en el HTML descargado. Es una heurística sobre la ruta, no un listado de API verificado.data.clamps_appliedNotas legibles cuando los límites solicitados se redujeron para ajustarse al presupuesto serverless. Vacío cuando no se limitó nada.data.generated_atMarca de tiempo ISO 8601 de la generación.Manejo de errores
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 URL de destino devuelve un 403: las páginas descubiertas durante el análisis que robots.txt no permita se dejan fuera de él y se contabilizan en warnings.