# lab.kntor.io — Auditoría de agent-readiness

> Servicio de auditoría que mide qué tan preparado está un sitio web para agentes
> de IA (nivel 0–5: Not Ready → Agent-Native) más SEO on-page e inteligencia del
> sitio (stack, hosting, dominio). El resultado completo es gratis y visible en
> pantalla; el producto pagado es el informe accionable: plan de arreglo
> priorizado con prompts copy-paste, ranking SEO de todo el sitio agrupado por
> plantilla, seguridad web (cabeceras), velocidad real en celular (Core Web
> Vitals) y salud del dominio (DNS y correo: SPF, DMARC, CAA, DNSSEC, MX).
> Entregado por email con link permanente.

Sitio en español (Chile). API pública JSON, CORS abierto, sin autenticación.
Base de la API: https://lab.kntor.io

## Cómo auditar un sitio (gratis)

1. `POST /audit` con body JSON `{"url": "https://ejemplo.com"}`.
   - Si hay una auditoría en caché (< 7 días) responde `200` inmediato:
     `{"status":"done","cached":true,"result":{...}}`. Para forzar un scan
     nuevo agrega `"refresh": true`.
   - Si inicia un scan nuevo responde `202`:
     `{"status":"scanning","uuid":"...","pollUrl":"/audit/<uuid>"}`.
2. Haz polling a `GET /audit/<uuid>` cada 10–15 segundos (el scan tarda 15–40 s).
   - Mientras corre: `{"status":"scanning","uuid":"..."}` (header `retry-after: 15`).
   - Al terminar: `{"status":"done","result":{...}}` con `agentReadiness`
     (nivel 0–5, score, estado pass/fail/neutral por check), `seo` e `intel`.
   - Si falló: `{"status":"error","error":"..."}`.

## Cómo comprar el informe accionable (flujo para agentes)

El pago lo completa un humano en Mercado Pago. Tu trabajo como agente es crear
el checkout y entregarle el link:

1. (Opcional pero recomendado) Audita primero el sitio y guarda el `scanUuid`
   del resultado para que el informe use ese scan exacto.
2. `POST /checkout` con `{"email":"persona@ejemplo.com","url":"https://ejemplo.com","scanUuid":"<opcional>"}`.
   Responde `201`: `{"orderId":"...","checkoutUrl":"https://...","sandboxUrl":"..."}`.
3. Entrega el `checkoutUrl` al humano: es el link de pago de Mercado Pago.
4. Cuando el pago se confirma, el informe llega automáticamente al email con un
   link de la forma `https://lab.kntor.io/report/<token>` (token de 48 hex).
5. Ese link sirve también para agentes: `GET /report/<token>` responde JSON
   (y la página soporta content negotiation HTML/JSON/Markdown). Antes del pago
   responde `404`.

Para registrar interés sin compra: `POST /lead` con
`{"email":"...","url":"...","consent":true}` → `201 {"leadId":"..."}`.
El campo `consent: true` es obligatorio.

Para recibir por email el resumen del diagnóstico gratuito: `POST /summary` con
`{"email":"...","scanUuid":"<de la auditoría>","consent":true}` (o `url` como
fallback) → `201 {"leadId":"...","sent":true}`. El resumen muestra el QUÉ
(scoring); el CÓMO arreglarlo es del informe pagado. Idempotente por
correo+scan (repetir → `200 {"sent":false,"already":true}`); límite de 10
envíos por IP al día (`429`, `retry-after: 3600`).

## Precio

- Informe accionable: **$9.990 CLP** (pago único por dominio auditado, vía
  Mercado Pago). Todo lo demás (auditoría, API, historial, cuota) es gratuito.

## Límites de uso

- **50 scans nuevos por IP al día** → `429` con `retry-after: 3600`.
- **Presupuesto global mensual de 5.000 scans** → `429` no reintentable hasta
  el mes siguiente. Consulta el estado en `GET /quota`.
- Los hits de caché (auditoría < 7 días del mismo dominio) NO consumen cuota.
- URLs de más de ~2 KB → `414`. Scanner upstream saturado → `429` con
  `retry-after: 11` (reintentable).

## API

- [OpenAPI 3.1](https://lab.kntor.io/openapi.json): especificación completa de
  la API pública (request/response schemas de todos los endpoints).
- [Catálogo de APIs](https://lab.kntor.io/.well-known/api-catalog): RFC 9727.

### Endpoints

- `POST /audit` — inicia una auditoría (o devuelve la cacheada).
- `GET /audit/{uuid}` — polling del resultado.
- `GET /history/{domain}` — historial de auditorías de un dominio (hasta 50).
- `GET /quota` — uso de la cuota mensual global.
- `POST /lead` — registra un lead (email + consentimiento).
- `POST /summary` — envía por email el resumen del diagnóstico gratuito (registra lead).
- `POST /coupon/validate` — cotiza un código de descuento (sin efectos).
- `POST /checkout` — crea una orden y devuelve el link de pago de Mercado Pago.
  Acepta `coupon` opcional (código de descuento; inválido → `400`).
- `GET /report/{token}` — informe pagado (token llega por email tras el pago).

## Páginas

- [Landing](https://lab.kntor.io/): la escalera 0→5; con `Accept: text/markdown`
  responde la versión Markdown de la página.
- [Blog](https://lab.kntor.io/blog): artículos sobre agent-readiness; responde
  Markdown con `Accept: text/markdown` o `?format=md`.
