fetch_ url
Obtenga y analice páginas web con manejo automático de redirecciones, control de tiempo de espera y encabezados personalizados. Ideal para recuperar contenido HTML de cualquier URL de acceso público.
Casos de uso
Recuperación de contenido de páginas
Obtenga contenido HTML de cualquier página web para procesarlo o analizarlo después
Obtención de datos de API
Realice solicitudes GET a APIs REST y recupere respuestas JSON
Comprobaciones de estado
Monitoree la disponibilidad de sitios web y los tiempos de respuesta
Descargas simples
Descargue recursos estáticos, documentos o contenido de páginas
Endpoint
/api/v1/tools/fetch_urlParameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
url | string | Required | - | La URL a obtener (debe incluir el protocolo: http:// o https://) Example: https://example.com |
headers | object | Optional | - | Encabezados HTTP personalizados a incluir en la solicitud Example: {"Accept": "text/html", "User-Agent": "MyBot/1.0"} |
timeout | number | Optional | 10000 | Tiempo de espera de la solicitud en milisegundos (1000-30000) Example: 15000 |
follow_redirects | boolean | Optional | true | Si se deben seguir las redirecciones HTTP automáticamente Example: true |
user_agent | string | Optional | - | Encabezado User-Agent personalizado (reemplaza el predeterminado) Example: Mozilla/5.0 (compatible; CrawlBot/1.0) |
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 |
max_inline_chars | number | Optional | 40000 | Tamaño máximo del resultado que se devuelve en línea, en caracteres de su JSON (de 1.000 a 10.000.000). Por encima, la respuesta incluye `preview` (los primeros `max_inline_chars` caracteres del cuerpo), `result_handle`, `total_chars`, `truncated: true` y `expires_at`, y [read_result](/docs/api-reference/tools/read-result) lee el resto por 1 credit por llamada. Los resultados almacenados se conservan 1 hora. Example: 40000 |
Ejemplos de solicitud
cURL
curl -X POST https://crawlforge.dev/api/v1/tools/fetch_url \
-H "X-API-Key: cf_test_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com",
"timeout": 15000,
"follow_redirects": true
}'TypeScript
// npm install crawlforge-sdk
import { CrawlForge } from 'crawlforge-sdk';
const client = new CrawlForge({ apiKey: process.env.CRAWLFORGE_API_KEY });
const result = await client.fetchUrl({
url: 'https://example.com',
timeout: 15000,
headers: {
'Accept': 'text/html',
'Accept-Language': 'en-US',
},
});
// result.data is untyped in crawlforge-sdk 0.1 — its shape is the Response Example below.
const page = result.data as { url: string; status: number; content_length: number };
console.log('Page fetched:', page.url);
console.log('Status:', page.status);
console.log('Content length:', page.content_length);
console.log('Credits used:', result.creditsUsed);
console.log('Credits remaining:', result.creditsRemaining);Python
# pip install crawlforge
from crawlforge import CrawlForge
client = CrawlForge() # reads CRAWLFORGE_API_KEY
result = client.fetch_url(
url='https://example.com',
timeout=15000,
headers={
'Accept': 'text/html',
'Accept-Language': 'en-US',
},
)
# result.data is a plain dict — its shape is the Response Example below.
page = result.data
print(f"Page fetched: {page['url']}")
print(f"Status: {page['status']}")
print(f"Content length: {page['content_length']}")
print(f"Credits used: {result.credits_used}")
print(f"Credits remaining: {result.credits_remaining}")Ejemplo de respuesta
{ "success": true, "data": { "url": "https://example.com", "status": 200, "status_text": "OK", "headers": { "content-type": "text/html; charset=UTF-8", "content-length": "1256", "server": "nginx" }, "content": "Example Domain ......", "content_length": 1256, "content_type": "text/html; charset=UTF-8", "redirected": false, "final_url": "https://example.com", "response_time_ms": 245 }, "credits_used": 1, "credits_remaining": 999, "processing_time": 245}data.urlLa URL original que se solicitódata.statusCódigo de estado HTTP de la respuestadata.contentEl contenido HTML completo de la páginadata.content_lengthTamaño del contenido en bytesdata.final_urlURL final después de seguir las redireccionesdata.response_time_msCuánto tardó el destino en responder y entregar su cuerpo, en milisegundoscredits_usedCredits descontados por esta solicitud (1 por cada obtención)credits_remainingSu saldo restante de creditsManejo de errores
URL no válida (400 Bad Request)
El formato de la URL no es válido. Asegúrese de que incluya el protocolo (http:// o https://)
Error de tiempo de espera (500 Internal Server Error)
La solicitud tardó más que el tiempo de espera especificado. Intente aumentar el parámetro timeout.
Credits insuficientes (402 Payment Required)
Su cuenta no tiene suficientes credits. Compre más credits o mejore su plan.
Límite de tasa excedido (429 Too Many Requests)
Ha excedido el límite de tasa de su plan. Espere un momento o mejore su plan para obtener límites más altos.
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.
Implemente siempre lógica de reintentos con retroceso exponencial en aplicaciones de producción. Consulte nuestra Guía de manejo de errores para conocer las mejores prácticas.
Costo en credits
Plan Free: 1,000 credits de prueba por única vez = 1,000 solicitudes
Plan Hobby: 5,000 credits/mes = 5,000 solicitudes ($19/mo)
Plan Professional: 100,000 credits/mes = 100,000 solicitudes ($99/mo)
Plan Business: 500,000 credits/mes = 500,000 solicitudes ($399/mo)
Herramientas relacionadas
¿Listo para probar fetch_url? Regístrese gratis y obtenga 1,000 credits para empezar a desarrollar.