API y documentación para desarrolladores de Silvia
Cómo leer Silvia de forma programática: una API REST pública sin autenticación, la especificación OpenAPI del contrato y la negociación de markdown para agentes.
Recursos legibles por máquina
- https://getsilvia.com/openapi.json — especificación OpenAPI 3.1 de la API pública.
- https://getsilvia.com/llms.txt — índice para agentes, con cuándo usar Silvia y cuándo no.
- https://getsilvia.com/sitemap.xml — páginas indexables.
- https://getsilvia.com/robots.txt — reglas de rastreo.
API pública
Sólo lectura, sin autenticación y sin claves. Responde JSON, permite CORS desde cualquier origen y acepta hasta 60 solicitudes por minuto por IP.
GET /api/v1/status— Estado del servicio y URLs de descubrimiento.GET /api/v1/plans— Planes, precios y qué incluye cada uno.GET /api/v1/features— Funciones del producto.GET /api/v1/faq— Preguntas frecuentes con su respuesta oficial.
curl -s https://getsilvia.com/api/v1/plansErrores
Todo error de /api/* es JSON con la misma forma: un código estable para ramificar, un mensaje, una pista de qué cambiar y el link a esta página.
{
"error": {
"code": "not_found",
"message": "No existe el endpoint GET /api/nope.",
"hint": "Consultá la especificación OpenAPI en https://www.getsilvia.com/openapi.json para la lista completa de endpoints.",
"docs": "https://www.getsilvia.com/docs",
"status": 404
}
}Endpoints con sesión
Los datos de una cuenta no son públicos y no hay forma de consultar la cuenta de un tercero. Estos endpoints aceptan Authorization: Bearer <jwt> —el access token de Supabase— o la cookie de sesión que emite la web.
GET /api/me/access— Estado de acceso de la persona autenticada. Requiere sesión.
Markdown por negociación de contenido
Las páginas públicas devuelven markdown cuando se piden con Accept: text/markdown, y HTML cuando no. Las respuestas llevan Vary: Accept para que ningún CDN mezcle las dos representaciones. También sirve agregar .md al final de la URL, que es lo que anuncia el header Link: rel="alternate".
curl -s -H "Accept: text/markdown" https://getsilvia.com/welcome
curl -s https://getsilvia.com/welcome.mdPáginas que negocian markdown: /, /welcome, /funciones, /nosotros, /contacto, /docs, /terminos, /privacidad.
Rutas que no existen
Un path inexistente responde 404 de verdad, no un 200 con la aplicación. Bajo /api/* el 404 viene en JSON; en el resto del sitio, en HTML o en markdown según lo que se haya pedido.
curl -s -o /dev/null -w "%{http_code}\n" https://getsilvia.com/esto-no-existeContacto
Dudas sobre la API o un caso de uso que no cubre: soporte@getsilvia.com.
Ver también: