# SlopIA, *desde tu código*

La misma nota que en la web, en JSON: para tu terminal, tu asistente de IA o cada cambio que subes a GitHub.

## La clave

Leer resultados, reglas, dominios publicados y el ranking no necesita clave. Para analizar, sí: entra en [tu panel](/panel) con el correo con el que vigilas o publicaste una web y crea una en «Claves de la API». Cada clave hace 50 análisis al día. Va en la cabecera `Authorization`:

```
curl -X POST https://slopia.zetit.cloud/api/v1/analisis \
  -H "Authorization: Bearer slp_tu_clave" \
  -H "Content-Type: application/json" \
  -d '{"url": "zetit.es"}'
```

La respuesta trae la nota, la letra, el veredicto, los tres fallos que más restan con su arreglo, las 19 señales, lo que midió Chromium y los enlaces al resultado, al informe y al encargo para tu IA. Si la web se analizó en las últimas 24 horas, devuelve ese resultado; con `"forzar": true`, analiza de nuevo.

## Rutas

| ruta | qué devuelve | clave |
| --- | --- | --- |
| `POST /api/v1/analisis` | analiza una web: `{"url": "…", "forzar": false}` | sí |
| `GET /api/v1/analisis/{id}` | un resultado por su id (el de `/r/{id}`) | no |
| `GET /api/v1/analisis/{id}/prompt` | el encargo para arreglarlo con tu IA | no |
| `GET /api/v1/reglas` | las 19 señales con umbral, peso y arreglo | no |
| `GET /api/v1/dominios/{dominio}` | nota e historial de una web del directorio | no |
| `GET /api/v1/ranking` | cifras del ranking anónimo | no |
| `POST /api/v1/listados` | publica una web en el directorio a nombre de su cliente: `{"dominio": "…", "email": "…"}` | de socio |
| `DELETE /api/v1/listados/{dominio}` | la retira del directorio (solo lo que publicó esa clave) | de socio |

La especificación completa está en [`/api/v1/openapi.json`](/api/v1/openapi.json) (OpenAPI 3). Los errores llegan como `{"error": "código", "mensaje": "…"}`: `401 sin_clave`, `429 cupo_agotado`, `422 no_se_pudo_analizar` (robots.txt que no lo permite, web caída…).

## En la terminal

Sin instalar nada, con Node 18 o más reciente:

```
export SLOPIA_CLAVE=slp_tu_clave
npx slopia zetit.es
npx slopia zetit.es --json        # el JSON de la API
npx slopia zetit.es --minimo 7    # sale con error si la nota baja de 7
```

## En tu asistente de IA (MCP)

SlopIA es también un servidor MCP en `https://slopia.zetit.cloud/mcp`. Con Claude Code:

```
claude mcp add --transport http slopia https://slopia.zetit.cloud/mcp \
  --header "Authorization: Bearer slp_tu_clave"
```

Y en cualquier cliente que admita servidores MCP por HTTP, la misma dirección y la misma cabecera. Herramientas: `analizar_web`, `ver_resultado`, `encargo_para_arreglar`, `reglas` y `nota_de_dominio`. Sin clave funcionan todas menos analizar.

## En cada pull request (GitHub Action)

Analiza la web de vista previa de cada cambio, comenta la nota en el pull request y lo para si baja del mínimo que pongas:

```
- uses: Zet-IT/slopia-action@v1
  with:
    url: ${{ steps.deploy.outputs.preview_url }}
    clave: ${{ secrets.SLOPIA_CLAVE }}
    minimo: 7
```

## Límites y uso justo

- 50 análisis al día por clave y hasta cinco claves por correo.
- Las claves de socio, como la de [Zet-IT Cloud](https://cloud.zetit.es), publican en el directorio sin verificación porque la plataforma ya sabe qué webs aloja; al cliente le llega un aviso con cómo retirarla.
- SlopIA respeta el robots.txt de cada web: si no deja pasar a SlopIA, no la analiza.
- Los resultados son privados: solo los ve quien tiene su id. La API no lista análisis ajenos.

[Crear mi clave](/panel)

---

Versión en Markdown de https://slopia.zetit.cloud/api
