Render

La API que usan las integraciones para pedir a Jazui la página de un bot.

Markdown

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 cabeceraObligatorioDescripción
urlSí*Dirección completa de la página, codificada. *Si no la puedes poner en la query, envíala en la cabecera X-Jazui-Url.
botAgentNoAgente de usuario del bot. Si falta, se usa el User-Agent de la petición.
AuthorizationSíBearer con el token de la cuenta o del sitio.
X-Jazui-Client-IPNoIP 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-MatchNoEl ETag que tiene el bot, para recibir 304 si no ha cambiado.
Terminal
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/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

<!DOCTYPE html><html lang="es"><head><title>Precios | Mi sitio</title>…

Otros códigos

CódigoCabeceraMotivo
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.
403X-Jazui-Blocked: ai-botBloqueaste a ese bot de IA en los ajustes del sitio.
403X-Jazui-Blocked: ruleUna regla bloquea a ese bot.
429X-Jazui-Limit: planEl plan gratuito ha gastado sus renders o peticiones del mes.
429X-Jazui-Limit: rendersNo quedan renders este mes para una página nueva, o falta la insignia obligatoria pasado el margen.
429X-Jazui-Limit: pagesSe ha llegado al máximo de páginas en caché.
429—Más de 120 peticiones por minuto.
502Retry-After: 30Tu web respondió con un error de servidor al renderizar.
503Retry-After: 30El 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.

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

Terminal
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: 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.