extract_metadata
Extraiga metadatos completos de páginas, incluyendo título, descripción, etiquetas OpenGraph, datos de Twitter Card e información SEO.
Casos de uso
Análisis SEO
Analice títulos, descripciones y palabras clave de las páginas para optimizarlas
Datos de vista previa para redes sociales
Obtenga datos de OpenGraph y Twitter Card para vistas previas enriquecidas en redes sociales
Categorización de contenido
Use los metadatos para clasificar y organizar el contenido web
Generación de vistas previas de enlaces
Cree vistas previas de enlaces enriquecidas con títulos, imágenes y descripciones
Endpoint
/api/v1/tools/extract_metadataParameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
url | string | Optional | - | Página de la que se extraerán los metadatos. Se requiere `url` o `html`. Example: https://example.com/article |
html | string | Optional | - | HTML sin procesar que se analizará en lugar de descargar. Example: <html>...</html> |
include_social | boolean | Optional | true | Incluye Open Graph, tarjetas de Twitter, el id de app de Facebook y las etiquetas de verificación del sitio. Example: true |
include_seo | boolean | Optional | true | Incluye description, keywords, author, robots, canonical, encabezados y viewport. Example: true |
include_technical | boolean | Optional | true | Incluye generator, favicons, hojas de estilo y scripts. Example: true |
include_structured_data | boolean | Optional | true | Incluye los bloques de datos estructurados JSON-LD encontrados en la página. Example: true |
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
curl -X POST https://crawlforge.dev/api/v1/tools/extract_metadata \
-H "X-API-Key: cf_test_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com/article"}'TypeScript
const response = await fetch('https://crawlforge.dev/api/v1/tools/extract_metadata', {
method: 'POST',
headers: {
'X-API-Key': process.env.CRAWLFORGE_API_KEY!,
'Content-Type': 'application/json',
},
body: JSON.stringify({
url: 'https://example.com/article'
}),
});
const data = await response.json();
if (data.success) {
const { title, description, og, twitter } = data.data;
console.log('Title:', title);
console.log('Description:', description);
console.log('OG Image:', og.image);
console.log('Twitter Card:', twitter.card);
}Ejemplo de respuesta
{ "success": true, "data": { "metadata": { "basic": { "title": "Example Article - Best Practices Guide", "url": "https://example.com/article", "lang": "en", "charset": "utf-8" }, "seo": { "description": "Learn the best practices for web development", "keywords": "web development, best practices, tutorial", "author": "Jane Doe", "robots": "index, follow", "canonical": "https://example.com/article", "headings": { "h1": [ "Best Practices Guide" ], "h2": [ "Getting Started", "Common Pitfalls" ], "h3": [] }, "meta_refresh": null, "viewport": "width=device-width, initial-scale=1" }, "social": { "open_graph": { "title": "Example Article - Best Practices Guide", "image": "https://example.com/og-image.jpg", "type": "article", "site_name": "Example Site" }, "twitter": { "card": "summary_large_image", "site": "@examplesite" }, "facebook_app_id": null, "google_site_verification": null }, "technical": { "generator": "Next.js", "favicons": [ { "rel": "icon", "href": "/favicon.ico", "type": "image/x-icon" } ] }, "structured_data": [] }, "summary": { "has_title": true, "has_description": true, "has_open_graph": true, "has_twitter_cards": true, "has_structured_data": false, "total_headings": 3 }, "extracted_from": "https://example.com/article", "extraction_time": "2026-08-26T14:30:00.000Z" }, "credits_used": 1, "credits_remaining": 999, "processing_time": 195}data.metadata.basicSiempre presente: título, url resuelta, lang del html y charset.data.metadata.seoPresente cuando `include_seo` es true. Incluye la estructura completa de encabezados h1/h2/h3.data.metadata.social.open_graphTodas las propiedades `og:` que declara la página, tal cual. Null cuando la página no tiene ninguna.data.metadata.social.twitterTodas las propiedades `twitter:` que declara la página. Null cuando no hay ninguna.data.metadata.technicalPresente cuando `include_technical` es true: generator, favicons, hojas de estilo y scripts.data.metadata.structured_dataBloques JSON-LD encontrados en la página. Arreglo vacío cuando no hay ninguno.data.summaryBooleanos para una comprobación rápida de completitud sin recorrer todo el objeto metadata.data.extracted_fromLa URL de origen, o la cadena literal 'provided HTML' cuando pasó `html`.data.extraction_timeMarca de tiempo ISO 8601 de la extracció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.