# info.summary
Lectura de las guías gratuitas del Lab (Claude Code, MCP, automatización, web, marketing) y sus repositorios.

# info.description
API de solo lectura, sin autenticación, pensada para agentes y herramientas. Cada guía existe en tres formatos: HTML (/lab/{slug}), markdown (/lab/{slug}.md) y JSON (esta API). Los errores siempre son JSON con `code`, `message` y `hint`. Límite: 60 peticiones por minuto por IP, anunciado en cada respuesta con las cabeceras RateLimit-Limit, RateLimit-Remaining, RateLimit-Reset y RateLimit-Policy; al excederlo, 429 en JSON con Retry-After. Versionado: esta es la v1 (cabecera X-API-Version); un cambio rompiente se publicará como /api/v2 y la v1 anunciará su retiro con las cabeceras Deprecation y Sunset (RFC 8594) al menos 6 meses antes. Las respuestas se cachean 5 minutos.

# info.x-versioning-policy.deprecation
Deprecation + Sunset headers, 6 months notice

# info.x-when-to-use
Usa esta API cuando necesites instrucciones paso a paso en español sobre Claude Code, MCP, automatización con IA, landings en Next.js, Meta Ads o cobros en línea, o el repositorio que acompaña a una guía. No es documentación oficial de ningún proveedor.

# paths./api/lab/guias.get.description
Devuelve las guías más recientes primero. Acepta filtros por texto, nivel y categoría.

# paths./api/lab/guias.get.parameters[].description
Texto a buscar (sin acentos, varias palabras = todas deben aparecer).

# paths./api/lab/guias.get.responses.429.description
Demasiadas peticiones (60/min por IP); respeta Retry-After

# paths./api/lab/guias/{slug}.get.description
Todo el contenido de una guía: intro, datos clave, secciones con bloques tipados, FAQ, fuentes y relacionadas.

# paths./api/lab/guias/{slug}.get.responses.429.description
Demasiadas peticiones (60/min por IP); respeta Retry-After

# paths./api/lab/buscar.get.description
Atajo de listarGuias con q obligatorio (mínimo 2 caracteres).

# paths./api/lab/repos.get.description
Los repos MIT que acompañan a las guías, con las guías donde aparecen.

# components.schemas.Error.properties.error.properties.hint.description
Cómo resolverlo o qué endpoint usar en su lugar.

# components.schemas.GuiaResumen.properties.numero.description
Número de catálogo, tres dígitos (001…).

# components.schemas.Bloque.description
Un bloque de contenido. Los campos presentes dependen de `tipo`.