Saltar al contenido
Herramienta básica1 credit

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

POST/api/v1/tools/fetch_url
Auth Required
1 req/s en el plan Free
1 credit

Parameters

NameTypeRequiredDefaultDescription
url
stringRequired-
La URL a obtener (debe incluir el protocolo: http:// o https://)
Example: https://example.com
headers
objectOptional-
Encabezados HTTP personalizados a incluir en la solicitud
Example: {"Accept": "text/html", "User-Agent": "MyBot/1.0"}
timeout
numberOptional10000
Tiempo de espera de la solicitud en milisegundos (1000-30000)
Example: 15000
follow_redirects
booleanOptionaltrue
Si se deben seguir las redirecciones HTTP automáticamente
Example: true
user_agent
stringOptional-
Encabezado User-Agent personalizado (reemplaza el predeterminado)
Example: Mozilla/5.0 (compatible; CrawlBot/1.0)
respect_robots
booleanOptionaltrue
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
numberOptional40000
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

terminalBash
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

fetchUrl.tsTypescript
// 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

fetch_url.pyPython
# 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

200 OK245ms
{
"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
}
Field Descriptions
data.urlLa URL original que se solicitó
data.statusCódigo de estado HTTP de la respuesta
data.contentEl contenido HTML completo de la página
data.content_lengthTamaño del contenido en bytes
data.final_urlURL final después de seguir las redirecciones
data.response_time_msCuánto tardó el destino en responder y entregar su cuerpo, en milisegundos
credits_usedCredits descontados por esta solicitud (1 por cada obtención)
credits_remainingSu saldo restante de credits

Manejo 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.

Costo en credits

1 credit
1 credit por solicitud
Cada solicitud exitosa de fetch_url cuesta 1 credit, independientemente del tamaño de la página o del tiempo de respuesta.

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