# 403 Forbidden al scrapear con proxy: causas y qué hacer

> Por qué un sitio responde 403 Forbidden a un scraper tras proxy, cómo distinguir un bloqueo de un error, y qué hacer sin evadir las reglas del sitio.

- URL: https://crawlrelay.com/es/docs/errors/403-forbidden/
- Última actualización: 2026-10-13
- Publisher: CrawlRelay (https://crawlrelay.com)

Código de estado HTTP (4xx, error del cliente): el mensaje exacto en cada herramienta, las causas probables en orden y la solución que funciona.

**Respuesta rápida — ¿Qué significa 403 Forbidden con un proxy?**

**Un 403 Forbidden** significa que el servidor entendió tu solicitud y se niega a atenderla. Al scrapear con proxies residenciales CrawlRelay, un 403 casi siempre proviene del sitio destino o su firewall, no del proxy. Investiga la causa antes de enviar más tráfico: país equivocado, header faltante, página con login o sitio que no autoriza acceso automatizado.

## 403 Forbidden en pocas palabras

| Atributo | Valor |
| --- | --- |
| Error | 403 Forbidden |
| Tipo | Código de estado HTTP (4xx, error del cliente) |
| Enviado por | Usualmente el sitio o su firewall; a veces el proxy por destino bloqueado |
| Definido en | RFC 9110, section 15.5.4 |
| ¿Reintentar? | Una vez, tras una pausa y con IP nueva; repetir 403 indica que pares |
| Primera comprobación | Abre la misma URL en un navegador normal desde el mismo país |

## ¿Qué significa 403 Forbidden?

RFC 9110 define 403 como una negativa: el servidor entendió la solicitud pero no la cumplirá. A diferencia del 401, nuevas credenciales no ayudan. Un sitio puede explicar la causa en el cuerpo de la respuesta, pero muchos firewalls devuelven una página corta genérica.

Para un scraper, un 403 es una señal de política. El sitio decidió que esa solicitud, desde esa IP, con esos headers y a esa velocidad, no debe obtener la página. Algunos de esos factores los puedes corregir. Otros son el sitio diciéndote que no.

## ¿Cómo se ve a 403 en Python, curl, Node.js y navegadores?

El mismo fallo se muestra de forma diferente en cada herramienta. Estos son los mensajes que debes buscar en tus registros:

- **Python requests:** `r.status_code == 403`, a menudo con un cuerpo HTML de un proveedor de firewall
- **Scrapy:** `Ignoring response <403 https://...>: HTTP status code is not handled or not allowed`
- **curl:** `HTTP/2 403` en salida verbose
- **Playwright, Puppeteer:** la navegación funciona pero `response.status()` devuelve 403 y la página muestra mensaje de acceso denegado

## ¿Qué causa a 403?

Lo más probable al principio:

- **Geografía.** El contenido no se ofrece en el país de la IP de salida, o el sitio solo sirve una región.
- **Reputación IP.** El sitio bloquea rangos asociados con tráfico automatizado. Los rangos de centros de datos son bloqueados más que los residenciales.
- **Huella de la solicitud.** Headers faltantes o inconsistentes, como falta de `Accept-Language`, o User-Agent de navegador enviada por cliente HTTP simple.
- **Velocidad.** Muchas solicitudes rápidas desde una sesión, el firewall escala de 429 a 403.
- **Reglas de acceso.** La página necesita login, cuenta paga o está excluida para crawlers en robots.txt o términos de uso.
- **Política del proxy.** Algunos destinos son bloqueados por el proxy. En CrawlRelay cubre categorías de la Política de Uso Aceptable.

## ¿Cómo diagnostico a 403 paso a paso?

1. Carga la URL en un navegador normal desde el mismo país. Si falla también, la página no es pública para esa ubicación.
2. Compara los headers que envía tu scraper con los que envía el navegador.
3. Revisa el robots.txt y términos del destino para reglas sobre acceso automatizado.
4. Observa el patrón temporal: 403 que empiezan tras N solicitudes indican velocidad, no IP.

*Prueba la URL que falla con curl (puerto HTTP, modo detallado)*

```bash
# Use the URL that fails; with https://api.ipify.org instead, you test the gateway alone.
# "HTTP/1.1 200 Connection established" first, then the site's own status: the site answered.
curl -v -x http://USERNAME:PASSWORD@gw.crawlrelay.com:7777 https://TARGET_URL

# Same test through the SOCKS5 port, with DNS resolved at the exit
curl -v --socks5-hostname gw.crawlrelay.com:7778 --proxy-user USERNAME:PASSWORD https://TARGET_URL
```

## ¿Cómo soluciono a 403?

- **Elige el país correcto** con el parámetro `country-` para ver la edición del sitio que ven los locales.
- **Envía headers honestos y completos.** Identifica tu crawler en el User-Agent con URL de contacto, y envía `Accept` y `Accept-Language`.
- **Reduce la velocidad.** Baja concurrencia por host y pon retrasos. Mira [cómo manejar 403, 429 y CAPTCHAs](https://crawlrelay.com/es/guides/403-429-captcha/).
- **Respeta una negativa.** Si un sitio bloquea acceso automático a propósito, busca una API oficial, licencia de datos o dataset público. Cambiar IPs para saltar un bloqueo deliberado viola nuestra [Política de Uso Aceptable](https://crawlrelay.com/es/acceptable-use/).

## ¿Debo reintentar después de a 403?

Reintenta un 403 solo una vez, tras pausa y con IP nueva. Un reintento distingue una dirección señalada de una regla site-wide. Si el segundo intento también da 403, deja de enviar solicitudes a ese patrón y revisa tu configuración. Atacar un 403 gasta ancho de banda y convierte un bloqueo suave en uno duro.

## ¿Cómo se aplica 403 Forbidden a CrawlRelay?

En CrawlRelay, una conexión nueva sin ID de sesión suele salir por IP residencial distinta, así un reintento suele probar dirección fresca. Mantén el mismo país al reintentar: cambiar país cambia el contenido que comparas. Solicitudes a sitios bancarios, gubernamentales o de pagos son rechazadas por la puerta bajo el AUP.

Gateway: `gw.crawlrelay.com`, puerto 7777 (HTTP, HTTPS a través de CONNECT) y puerto 7778 (SOCKS5). Formato de usuario: `USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}`. Relacionado: [429 Too Many Requests](https://crawlrelay.com/es/docs/errors/429-too-many-requests/) · [401 vs 407](https://crawlrelay.com/es/docs/errors/401-unauthorized/) · [Manejo de 403, 429 y CAPTCHAs](https://crawlrelay.com/es/guides/403-429-captcha/).

## 403 Forbidden: preguntas que hacen los desarrolladores

### ¿Significa 403 que mi IP proxy está baneada?

No necesariamente. Un 403 puede deberse a país incorrecto, encabezados faltantes, tasa de solicitudes o una página que no es pública. Prueba la misma URL desde un navegador en el mismo país y compara. Si una IP nueva obtiene la página y la antigua no, la IP antigua fue marcada. Si todas las IP reciben 403, las reglas del sitio son la causa.

### ¿El proxy residencial eliminará errores 403?

No como regla. Un exit residencial en el país o ciudad correcta corrige un 403 por ubicación errónea, porque el sitio entonces sirve su edición local. Si un sitio filtra rangos de hosting o niega crawlers para evitar tráfico automatizado, una IP residencial no garantiza acceso. Los 403 por encabezados, tasa o muros de login necesitan correcciones en tu código.

### ¿Es legal seguir scrapeando tras un 403?

Un 403 es una señal clara de que el sitio rechaza la solicitud. Avanzar más allá de barreras técnicas deliberadas puede crear riesgo legal en varios países, por ejemplo bajo leyes anti-elusión o de uso indebido de computadoras. Esto no es asesoría legal. Lee nuestro resumen sobre [la ley de web scraping en 2026](https://crawlrelay.com/es/guides/is-web-scraping-legal/) y consulta un abogado para tu caso.

## Otros errores de proxy en esta referencia

- [401 Unauthorized vs 407](https://crawlrelay.com/es/docs/errors/401-unauthorized/)
- [403 Forbidden](https://crawlrelay.com/es/docs/errors/403-forbidden/)
- [407 Proxy Authentication Required](https://crawlrelay.com/es/docs/errors/407-proxy-authentication-required/)
- [429 Too Many Requests](https://crawlrelay.com/es/docs/errors/429-too-many-requests/)
- [502 Bad Gateway](https://crawlrelay.com/es/docs/errors/502-bad-gateway/)
- [503 Service Unavailable](https://crawlrelay.com/es/docs/errors/503-service-unavailable/)
- [504 Gateway Timeout](https://crawlrelay.com/es/docs/errors/504-gateway-timeout/)
- [Cannot connect to proxy (ProxyError)](https://crawlrelay.com/es/docs/errors/cannot-connect-to-proxy/)
- [Connection reset by peer (ECONNRESET)](https://crawlrelay.com/es/docs/errors/connection-reset/)
- [ERR_PROXY_CONNECTION_FAILED](https://crawlrelay.com/es/docs/errors/err-proxy-connection-failed/)
- [ERR_TUNNEL_CONNECTION_FAILED](https://crawlrelay.com/es/docs/errors/err-tunnel-connection-failed/)
- [Read timed out (ReadTimeout)](https://crawlrelay.com/es/docs/errors/read-timeout/)
- [SOCKS5 proxy errors](https://crawlrelay.com/es/docs/errors/socks5-proxy-errors/)
- [SSL: CERTIFICATE_VERIFY_FAILED](https://crawlrelay.com/es/docs/errors/ssl-certificate-verify-failed/)
- [SSL: WRONG_VERSION_NUMBER](https://crawlrelay.com/es/docs/errors/ssl-wrong-version-number/)

**Proxies residenciales con documentación que cubre los casos de fallo** CrawlRelay proxies residenciales de 0,50 US$/GB, tráfico que nunca expira. [Ver precios](https://crawlrelay.com/es/pricing/) · [Inicio rápido](https://crawlrelay.com/es/docs/)

---

CrawlRelay: CrawlRelay es un servicio de proxies residenciales rotativos y proxies móviles 4G/5G para desarrolladores, ideal para scrapers y pipelines de datos de IA: tráfico prepago sin vencimiento desde 0,50 US$/GB, pagado con criptomonedas, sin subir documentos de identidad. Sin KYC — sin ID, sin selfie, sin documentos. Paga con criptomonedas.
