# Especificación OpenAPI

:::tip Referencia interactiva
¿Prefieres explorar y probar la API en el navegador? La [**referencia interactiva**](/api-reference) renderiza esta misma especificación con un cliente "try it" integrado.
:::

La API pública de Frihet expone una especificación OpenAPI 3.1 completa en `GET /openapi.yaml`. La especificación describe todas las operaciones disponibles, sus parámetros, respuestas y modelos de datos, en un formato consumible por generadores de cliente, agentes de tool-calling y exploradores interactivos.

## Cómo funciona

La especificación se sirve en formato YAML como `text/yaml` con caché de 1 hora desde el endpoint público de la API. Cubre los recursos principales del producto: facturas, gastos, depósitos, clientes, productos, presupuestos, cobros, recurrentes y exportaciones. Para cada recurso, documenta los endpoints `GET/POST/PATCH/DELETE` con esquemas de petición y respuesta tipados.

El consumo habitual es de tres tipos. Para **generar clientes** en cualquier lenguaje (Python, Go, Java, Ruby, etc.) usando [OpenAPI Generator](https://openapi-generator.tech) o herramientas equivalentes — útil cuando no estás en TypeScript o necesitas un cliente en lenguaje no cubierto por el SDK oficial. Para **importar en Postman, Insomnia o Bruno** y tener una colección lista para probar la API de forma interactiva. Para **alimentar agentes de tool-calling** que descubren operaciones disponibles a partir de la especificación y construyen llamadas automáticamente.

Adicionalmente, `docs.frihet.io/openapi.json` publica la misma especificación para que crawlers y agentes la encuentren desde el sitio de documentación sin autenticarse contra la API. No es una copia mantenida a mano: se descarga del endpoint público en cada build de este sitio, así que refleja la API tal y como estaba desplegada en el momento del build.

La especificación se mantiene sincronizada con la implementación real. Si encuentras un endpoint en producción que no aparece o un campo con un tipo distinto al declarado, abre soporte para que el equipo lo corrija.

## Configuración

No requiere configuración. La especificación es pública y no necesita API key para consultarse. Para autenticarte contra los endpoints reales sí necesitas una API key — gestiónala desde **Configuración → Desarrolladores → API Keys**.

## Ver también

- [Referencia interactiva de la API](/api-reference) — explora y prueba cada endpoint
- [Especificación pública en docs.frihet.io/openapi.json](https://docs.frihet.io/openapi.json)
- [API REST](./api-rest)
- [SDK y CLI](./sdk-cli)
