Silvia API and developer documentation
How to read Silvia programmatically: a public REST API with no authentication, the OpenAPI specification of the contract, and markdown content negotiation for agents.
Machine-readable resources
- https://getsilvia.com/openapi.json — OpenAPI 3.1 specification of the public API.
- https://getsilvia.com/llms.txt — index for agents, with when to use Silvia and when not to.
- https://getsilvia.com/sitemap.xml — indexable pages.
- https://getsilvia.com/robots.txt — crawling rules.
Public API
Read-only, no authentication and no keys. It returns JSON, allows CORS from any origin and accepts up to 60 requests per minute per IP.
GET /api/v1/status— Service status and discovery URLs.GET /api/v1/plans— Plans, pricing and what each one includes.GET /api/v1/features— Product features.GET /api/v1/faq— Frequently asked questions with their official answer.
curl -s https://getsilvia.com/api/v1/plansErrors
Every /api/* error is JSON with the same shape: a stable code to branch on, a message, a hint about what to change and a link to this page.
{
"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 that need a session
Account data is not public and there is no way to query someone else's account. These endpoints accept Authorization: Bearer <jwt> —the Supabase access token— or the session cookie the web app issues.
GET /api/me/access— Access status of the authenticated person. Requires a session.
Markdown via content negotiation
Public pages return markdown when requested with Accept: text/markdown, and HTML when not. Responses carry Vary: Accept so no CDN mixes the two representations. Appending .md to the URL works too, which is what the Link: rel="alternate" header announces.
curl -s -H "Accept: text/markdown" https://getsilvia.com/en/welcome
curl -s https://getsilvia.com/en/welcome.mdPages that negotiate markdown: /en, /en/welcome, /en/features, /en/about, /en/contact, /en/docs, /en/terms, /en/privacy.
Routes that don't exist
A nonexistent path returns a real 404, not a 200 with the application. Under /api/* the 404 comes as JSON; elsewhere on the site, as HTML or markdown depending on what was asked for.
curl -s -o /dev/null -w "%{http_code}\n" https://getsilvia.com/esto-no-existeContact
Questions about the API, or a use case it doesn't cover: soporte@getsilvia.com.
See also: