# Render
> La API que usan las integraciones para pedir a Jazui la página de un bot.
Página original: https://docs.jazui.com/api/render/es
Normalmente no la llamas tú: lo hace tu integración. Conocerla sirve para depurar, para construir una integración propia o para comprobar qué recibe un bot de una página concreta. **Cada llamada cuenta como una petición servida del plan**, y si la página no estaba en caché, también como un render.
## Petición
`GET https://api.jazui.com/Render`
| Parámetro o cabecera | Obligatorio | Descripción |
|---|---|---|
| `url` | Sí* | Dirección completa de la página, codificada. *Si no la puedes poner en la query, envíala en la cabecera `X-Jazui-Url`. |
| `botAgent` | No | Agente de usuario del bot. Si falta, se usa el `User-Agent` de la petición. |
| `Authorization` | Sí | `Bearer` con el token de la cuenta o del sitio. |
| `X-Jazui-Client-IP` | No | IP del bot. Si llega una lista separada por comas, se usa la primera. Sirve para las métricas y para verificar a los buscadores. |
| `If-None-Match` | No | El `ETag` que tiene el bot, para recibir `304` si no ha cambiado. |
```bash
curl -i "https://api.jazui.com/Render?url=https%3A%2F%2Fmisitio.com%2Fprecios&botAgent=integration-test" \
-H "Authorization: Bearer $JAZUI_TOKEN" \
-H "X-Jazui-Client-IP: 66.249.66.1"
```
## Respuesta
El HTML de la página con su **código real**: `200`, `404` si tu página es un 404, o la redirección (`301`, `302`…) con su `Location` y sin cuerpo.
`Respuesta correcta`:
```http
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
X-Jazui: true
X-Jazui-Cache: HIT
ETag: "4812-638976215370000000"
Last-Modified: Mon, 02 Nov 2026 18:22:17 GMT
Precios | Mi sitio…
```
## Otros códigos
| Código | Cabecera | Motivo |
|---|---|---|
| `400` | — | Falta `url`, no es válida, o una regla excluye esa dirección del render. |
| `401` | — | Sin token o token no vigente. |
| `403` | — | Token de otro sitio, o el sitio no está verificado. |
| `403` | `X-Jazui-Blocked: ai-bot` | Bloqueaste a ese bot de IA en los ajustes del sitio. |
| `403` | `X-Jazui-Blocked: rule` | Una regla bloquea a ese bot. |
| `429` | `X-Jazui-Limit: plan` | El plan gratuito ha gastado sus renders o peticiones del mes. |
| `429` | `X-Jazui-Limit: renders` | No quedan renders este mes para una página nueva, o falta la insignia obligatoria pasado el margen. |
| `429` | `X-Jazui-Limit: pages` | Se ha llegado al máximo de páginas en caché. |
| `429` | — | Más de 120 peticiones por minuto. |
| `502` | `Retry-After: 30` | Tu web respondió con un error de servidor al renderizar. |
| `503` | `Retry-After: 30` | El render no terminó a tiempo. |
## Peticiones condicionales
Cada página tiene un `ETag`. Si envías el que tienes en `If-None-Match` y la página no ha cambiado, recibes `304 Not Modified` sin cuerpo (también con `X-Jazui: true`). Así los bots que guardan las páginas no las descargan de nuevo.
```bash
curl -i "https://api.jazui.com/Render?url=https%3A%2F%2Fmisitio.com%2F&botAgent=integration-test" \
-H "Authorization: Bearer $JAZUI_TOKEN" \
-H 'If-None-Match: "4812-638976215370000000"'
# HTTP/1.1 304 Not Modified (sin cuerpo)
```
## Avisar de un bot desconocido
Las integraciones de código avisan con `POST /Render/Seen` cuando ven un agente de usuario con pinta de bot que no está en la lista. Responde siempre `204`; se cuenta una vez al día por agente, con un máximo de 500 distintos al día por cuenta. Si haces tu propia integración, puedes usarlo igual.
```bash
curl -X POST https://api.jazui.com/Render/Seen \
-H "Authorization: Bearer $JAZUI_TOKEN" \
-H "Content-Type: application/json" \
-d '{"userAgent":"NuevoBot/1.0 (+https://nuevobot.ai)","url":"https://misitio.com/"}'
# 204 No Content
```
## Tu propia integración
Si tu plataforma no está en la lista, puedes hacer una siguiendo el contrato de [Integraciones](https://docs.jazui.com/llms/es/integrations.txt): decide si es un bot con la lista de `/v2/bots`, llama a `/Render` con un tiempo máximo de espera (20 s), entrega la respuesta solo si lleva `X-Jazui` o es un `403` con `X-Jazui-Blocked`, y en cualquier otro caso sirve tu web. No reenvíes las cookies ni otras cabeceras del bot.