Backen

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/plans

Errors

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.md

Pages 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-existe

Contact

Questions about the API, or a use case it doesn't cover: soporte@getsilvia.com.

See also:

  • Contact
  • About Silvia