# API de Turnova

> Tomá reservas desde el sitio de tu negocio con el mismo catálogo, la misma agenda y la misma seña que la página de reservas de Turnova.

La API externa permite que un negocio que usa Turnova muestre sus servicios y horarios libres en su propio sitio y tome reservas que entran directo a su agenda. Detrás está el mismo motor que la página de reservas de Turnova: mismos precios, mismas reglas de horario, misma seña por Mercado Pago y los mismos mails de confirmación.

> La API está incluida en el plan **Enterprise**. Las claves se crean en el panel del negocio, en Configuración > API para tu sitio.

## Qué podés hacer

| Endpoint | Para qué |
| --- | --- |
| [`GET /api/v1/catalogo`](https://turnovapp.com/docs/referencia/leer-catalogo.md) | Servicios, opciones, extras, sedes y profesionales visibles. |
| [`GET /api/v1/disponibilidad`](https://turnovapp.com/docs/referencia/consultar-disponibilidad.md) | Horarios libres de un servicio, por día y por profesional. |
| [`POST /api/v1/reservas`](https://turnovapp.com/docs/referencia/crear-reserva.md) | Crear una reserva de uno a ocho turnos, con seña si el negocio la cobra. |
| [`GET /api/v1/reservas/{compraId}`](https://turnovapp.com/docs/referencia/leer-reserva.md) | Estado de una reserva y de su seña (desde tu servidor). |

## Cómo es una llamada

Todas las rutas cuelgan de `https://turnovapp.com/api/v1`. El negocio sale de la clave: no hay identificador del negocio en la URL. Toda respuesta es JSON con la misma forma, tanto si salió bien como si no.

curl:

```bash
curl "https://turnovapp.com/api/v1/catalogo" \
  -H "Authorization: Bearer $TURNOVA_CLAVE_SECRETA"
```

JavaScript:

```js
const res = await fetch("https://turnovapp.com/api/v1/catalogo", {
  headers: { Authorization: "Bearer tnv_pk_TU_CLAVE_PUBLICA" },
});
const r = await res.json();
if (r.ok) console.log(r.datos.servicios);
else console.error(r.error.codigo, r.error.mensaje);
```

## Por dónde seguir

- [Primeros pasos](https://turnovapp.com/docs/primeros-pasos.md): crear la clave y hacer la primera llamada.
- [Reservar un turno de punta a punta](https://turnovapp.com/docs/guias/reservar-un-turno.md): catálogo, horarios, reserva, seña y vuelta del pago.
- [Autenticación](https://turnovapp.com/docs/autenticacion.md), [Errores](https://turnovapp.com/docs/errores.md), [Idempotencia](https://turnovapp.com/docs/idempotencia.md) y [Límites](https://turnovapp.com/docs/limites.md): las reglas comunes a todos los endpoints.
- [Guía para agentes de IA](https://turnovapp.com/docs/agentes-ia.md): cómo usar esta documentación desde un asistente, con [llms.txt](https://turnovapp.com/docs/llms.txt).
