Referencia · Panel
Uso diario por credencial
GET /api/configuracion/api-externa/uso
Ver en MarkdownGET/api/configuracion/api-externa/uso
Pedidos por día (hora de Argentina) y credencial: lecturas, escrituras, reservas creadas y rechazos por límite. Por defecto, los últimos 30 días; hasta 92.
Autenticación: sesión del panel de Turnova (dueña o administradora). No se llama con una clave de la API.
Parámetros
| Nombre | En | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
desde | query | string (date) | No | |
hasta | query | string (date) | No | Por defecto, hoy. |
Ejemplo
// Desde el panel de Turnova, con la sesión iniciada (cookie).
const res = await fetch("/api/configuracion/api-externa/uso?desde=2030-01-01", {
method: "GET",
});
const r = await res.json();Respuestas
| HTTP | Qué significa |
|---|---|
| 200 | Uso |
| 400 | Datos inválidos: mirá error.campos (ENTRADA_INVALIDA, IDEMPOTENCY_KEY_FALTANTE…). |
| 401 | Clave faltante, inválida o revocada. |
| 403 | Origen no permitido, permiso faltante, clave secreta desde un navegador o plan sin la API (PLAN_SIN_API). |
| 404 | No existe o no es de este negocio. |
Respuesta 200
{
"version": 1,
"ok": true,
"progreso": {
"principal": "CONSULTADO"
},
"requiereRevision": false,
"datos": {
"desde": "2030-01-01",
"hasta": "2030-01-31",
"total": 25000,
"porCredencial": [
{
"credencialId": "cmh4k1z7q0000",
"nombre": "Masaje descontracturante",
"prefijo": "tnv_pk_ab12cd34",
"tipo": "PUBLICA",
"revocadaEn": null,
"lecturas": 340,
"escrituras": 12,
"reservasCreadas": 9,
"limitados": 0
}
],
"dias": [
{
"dia": "2030-01-10",
"lecturas": 340,
"escrituras": 12,
"reservasCreadas": 9,
"limitados": 0
}
]
}
}| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
datos.desde | string (date) | No | |
datos.hasta | string (date) | No | |
datos.total | object | No | |
datos.total.lecturas | integer | No | |
datos.total.escrituras | integer | No | |
datos.total.reservasCreadas | integer | No | |
datos.total.limitados | integer | No | Pedidos rechazados con 429. |
datos.porCredencial | array de object | No | |
datos.porCredencial[].credencialId | string | No | |
datos.porCredencial[].nombre | string | No | |
datos.porCredencial[].prefijo | string | No | |
datos.porCredencial[].tipo | PUBLICA, SECRETA | No | |
datos.porCredencial[].revocadaEn | string (date-time) o null | No | |
datos.porCredencial[].lecturas | integer | No | |
datos.porCredencial[].escrituras | integer | No | |
datos.porCredencial[].reservasCreadas | integer | No | |
datos.porCredencial[].limitados | integer | No | Pedidos rechazados con 429. |
datos.dias | array de object | No | |
datos.dias[].dia | string (date) | No | |
datos.dias[].lecturas | integer | No | |
datos.dias[].escrituras | integer | No | |
datos.dias[].reservasCreadas | integer | No | |
datos.dias[].limitados | integer | No | Pedidos rechazados con 429. |
Los errores siguen el formato común: ver Errores.