API de acceso de rastreadores de IA
Una petición dice qué rastreadores de IA pueden leer un sitio: GPTBot, OAI-SearchBot, ChatGPT-User, PerplexityBot, ClaudeBot, Google-Extended, Bingbot y Googlebot. De cada uno obtienes lo que dice robots.txt y lo que responde el servidor. Es el resultado de la comprobación gratuita de rastreadores de IA, en JSON. Sin clave, sin cuenta, CORS abierto.
Petición
Una petición GET con un parámetro:
GET https://citedby.eu/api/v1/ai-access?url=example.com
url: Un dominio o una dirección completa, por ejemplo example.com o https://example.com/tienda. Solo se comprueba el sitio: se descartan la ruta, el puerto y www.
Ejemplo
La comprobación de theguardian.com el 24 de octubre de 2026: un sitio público, no cliente de CitedBy, con el resultado tal como lo devolvió la API. Otro día la respuesta puede ser distinta.
curl "https://citedby.eu/api/v1/ai-access?url=theguardian.com"
{"api_version": "1", "site": "theguardian.com", "checked_at": "2026-10-24T17:27:07Z", "robots_txt": {"state": "found", "status": 200, "blocks_all_crawlers": false}, "summary": {"total": 8, "allowed": 6, "blocked": ["PerplexityBot", "ClaudeBot"]},
"crawlers": [
{"id": "GPTBot", "role": "training", "robots_txt": "allowed", "robots_txt_rule": null, "server": "ok", "access": "allowed"},
{"id": "OAI-SearchBot", "role": "search", "robots_txt": "allowed", "robots_txt_rule": null, "server": "ok", "access": "allowed"},
{"id": "ChatGPT-User", "role": "user_fetch", "robots_txt": "allowed", "robots_txt_rule": null, "server": "ok", "access": "allowed"},
{"id": "PerplexityBot", "role": "search", "robots_txt": "disallowed", "robots_txt_rule": "Disallow: /", "server": "blocked", "access": "blocked_by_robots_txt_and_server"},
{"id": "ClaudeBot", "role": "training", "robots_txt": "disallowed", "robots_txt_rule": "Disallow: /", "server": "blocked", "access": "blocked_by_robots_txt_and_server"},
{"id": "Google-Extended", "role": "training", "robots_txt": "allowed", "robots_txt_rule": null, "server": "not_tested", "access": "allowed"},
{"id": "Bingbot", "role": "search", "robots_txt": "allowed", "robots_txt_rule": null, "server": "ok", "access": "allowed"},
{"id": "Googlebot", "role": "search", "robots_txt": "allowed", "robots_txt_rule": null, "server": "ok", "access": "allowed"}
],
"report_url": "https://citedby.eu/tools/ai-crawler-check/theguardian.com?utm_source=api&utm_medium=api&utm_campaign=ai_access_api", "audit_url": "https://citedby.eu/?url=theguardian.com&source=api&utm_source=api&utm_medium=api&utm_campaign=ai_access_api", "attribution": {"text": "AI crawler access by CitedBy", "url": "https://citedby.eu/ai-access-api"}, "docs": "https://citedby.eu/ai-access-api"}Qué contiene la respuesta
Cada campo de abajo está en toda respuesta correcta.
site: El dominio comprobado.checked_at: Cuándo hizo CitedBy la comprobación, en UTC. Un sitio comprobado en las últimas 6 horas devuelve el resultado guardado, así que puede ser anterior a tu petición.robots_txt.state: found, not_found, unreachable o server_error. Un error de servidor en robots.txt obliga al rastreador a suponer que no puede rastrear (RFC 9309), así que todos aparecen como bloqueados.robots_txt.status: El estado HTTP con el que respondió robots.txt.robots_txt.blocks_all_crawlers: true cuando las reglas para todos los rastreadores (*) cierran todo el sitio.summary: Cuántos de los 8 rastreadores pueden leer el sitio (allowed) y los nombres de los que no pueden (blocked).crawlers[].id: El nombre del rastreador.crawlers[].role: training (recoge texto para entrenar modelos), search (puede citar tus páginas en las respuestas) o user_fetch (abre una página cuando una persona lo pide).crawlers[].robots_txt: allowed, disallowed o not_read (no se pudo leer robots.txt).crawlers[].robots_txt_rule: La regla de robots.txt que cierra el sitio a este rastreador, o null.crawlers[].server: ok, blocked (el servidor responde al user-agent de este rastreador con un rechazo o una página de verificación), down (un error) o not_tested. Google-Extended es solo un token de robots.txt, así que nunca se prueba en el servidor.crawlers[].access: El veredicto para este rastreador, uno de los valores de abajo.report_url: La página de resultado completa de la comprobación gratuita de este sitio.audit_url: Dónde auditar el sitio entero.attribution: El texto y el enlace que debes mostrar cuando enseñes el resultado (ver las condiciones).
Los valores de acceso
allowed significa que robots.txt no cierra el sitio al rastreador y que el servidor le respondió. Los demás dicen qué lo impide:
allowed: el rastreador puede leer el sitio.blocked_by_robots_txt: robots.txt cierra el sitio a este rastreador.blocked_by_server: el servidor rechaza el user-agent de este rastreador o le muestra una página de verificación.blocked_by_robots_txt_and_server: las dos cosas.server_error: el servidor respondió a este rastreador con un error.
Bloquear a un rastreador de entrenamiento puede ser una decisión. La API lo marca como bloqueado y no lo presenta como un problema.
Errores
Un fallo es un error, nunca una suposición. El cuerpo es JSON: {"error": {"code", "message"}}.
missing_url: 400: falta el parámetro url.bad_url: 400: no es la dirección de un sitio público (una dirección privada, un nombre no válido, más de 2.048 caracteres).site_unreachable: 422: el sitio no respondió a nuestro rastreador, así que el acceso no se puede juzgar. No se supone nada: no hay luz verde.rate_limited: 429: se superaron los límites de abajo. Retry-After indica cuántos segundos esperar.busy: 503: CitedBy está ejecutando su máximo de comprobaciones. Retry-After es de 60 segundos.unavailable: 502 o 503: el comprobador no respondió. Inténtalo de nuevo en un minuto.
Un sitio lento devuelve 202 con {"status": "pending"}: la comprobación sigue y su resultado se guarda. Vuelve a preguntar pasados los segundos de Retry-After.
Límites
- 30 peticiones por hora por dirección IP.
- Como máximo 12 sitios por hora que no se hayan comprobado ya en las últimas 6 horas. Un sitio comprobado en ese plazo recibe el resultado guardado y no gasta este cupo.
- Sin clave ni registro: los límites son la única barrera. El resultado se guarda 6 horas.
Lo que no devuelve
- Ni nota ni puntuación. La API devuelve lo que muestra la comprobación gratuita para cada rastreador.
- Ni rastreo página por página, ni corrección exacta por página, ni comprobación de llms.txt: eso está en la auditoría.
- Prueba la página de inicio con la cadena user-agent de cada rastreador, desde nuestra propia dirección. Un cortafuegos que verifica los rangos de IP de los proveedores puede tratar de otro modo a los rastreadores reales.
- Un robots.txt que redirige a otro dominio no se sigue: aparece como not_found con el estado de la redirección.
OpenAPI
La especificación está en https://citedby.eu/openapi.json. Cárgala en Postman, Insomnia o un generador de código.
Condiciones de uso
- Uso gratuito, también en tu propio producto, sin clave ni cuenta.
- Si enseñas nuestros resultados a otras personas (una página, un informe, un README, una herramienta), enlaza a CitedBy: https://citedby.eu/es/ai-access-api o el report_url del sitio. El campo attribution trae el texto y el enlace.
- No presentes el resultado como una comprobación propia y no envíes ráfagas: los límites se aplican a cada dirección y podemos cambiarlos o acabar con ellos. No prometemos disponibilidad.
- Contamos las llamadas, como un número por día. La dirección desde la que llamas sirve para los límites y se queda en memoria, no en una base de datos. Más en Privacidad.
La misma comprobación, de otras formas
- La comprobación gratuita en tu navegador
- Servidor MCP para Claude, Cursor y Codex
- Línea de comandos y GitHub Action
- Plugin de WordPress
- Una insignia para tu web
English · Français · Nederlands · Deutsch · Español
¿Necesitas más que el acceso de los rastreadores? Una auditoría de CitedBy rastrea tu sitio, hasta el límite de páginas de tu plan, y te da la corrección exacta. Mira los planes.