# Para agentes de IA

> Cómo usan los agentes de IA la documentación de Blogenia: versión Markdown de cada página, llms.txt, llms-full.txt y la especificación OpenAPI.

Versión web: https://blogelia.com/docs/agentes-ia

Esta documentación está pensada también para modelos y agentes. Cada página existe en HTML y en Markdown limpio, sin menús ni scripts.

## Markdown de cada página

Añade `.md` al nombre de la página, bajo `/docs/`:

- `https://blogelia.com/docs/introduccion.md` (la portada, que en HTML está en `/docs`)
- `https://blogelia.com/docs/autenticacion.md`
- `https://blogelia.com/docs/webhooks.md`

Las respuestas llevan `Content-Type: text/markdown; charset=utf-8`. Cada página HTML enlaza su versión Markdown con `<link rel="alternate" type="text/markdown">`.

## llms.txt y llms-full.txt

| Fichero | Contenido |
| --- | --- |
| [/llms.txt](https://blogelia.com/llms.txt) | Índice en formato [llmstxt.org](https://llmstxt.org): título, resumen y enlace a la versión Markdown de cada página. |
| [/llms-full.txt](https://blogelia.com/llms-full.txt) | Toda la documentación en un solo documento, para cargarla de una vez. |

## Especificación OpenAPI

Las rutas que aceptan clave están descritas en OpenAPI: [https://api.blogelia.com/docs-json](https://api.blogelia.com/docs-json). La interfaz para personas está en [https://api.blogelia.com/docs](https://api.blogelia.com/docs).

## Resumen para un agente

- URL base: `https://api.blogelia.com/v1`. Solo lectura, JSON.
- Autenticación: `Authorization: Bearer pk_live_…`. La clave la crea una persona en el panel; un agente no puede crearla.
- Rutas de contenido (`content:read`): `GET /blogs/{blogId}`, `GET /blogs/{blogId}/articles`, `GET /articles/{id}` (con `?format=markdown` devuelve el artículo en Markdown).
- Rutas de analítica (`stats:read`): `GET /account/stats`, `GET /blogs/{blogId}/stats`, `GET /blogs/{blogId}/stats/articles`, `GET /articles/{id}/stats`.
- Rutas de cuenta (`account:read`): `GET /account`, `GET /account/credits/ledger`, `GET /blogs/{blogId}/articles/all`, `GET /blogs/{blogId}/articles/summary`, `GET /blogs/{blogId}/generations`, `GET /blogs/{blogId}/autopilot`, `GET /blogs/{blogId}/publications`, `GET /webhooks/deliveries`.
- Permisos: cada clave lleva los suyos desde su creación y no cambian; sin el permiso, `403` `insufficient_scope`. Las rutas de `stats:read` y `account:read` no admiten CORS.
- Límite: 60 peticiones por minuto (Starter) o 300 (Pro) por clave; ante `429`, espera `Retry-After` segundos.
- Errores: `{ statusCode, error, message, requestId }` y a veces `code`.

> **Aviso:** No pegues claves de API en prompts, repositorios ni páginas públicas.
