Métricas
Indicadores agregados de volumen, tiempos y flujo de los avalúos.
Datos agregados para tableros e informes. Requieren metrics:read.
/v1/metricasmetrics:readIndicadores agregados del sistema
/v1/metricas/peritosmetrics:readActividad de todos los peritos, paginada
/v1/metricas/flujometrics:readEstado de cada avalúo dentro del proceso
Indicadores
/v1/metricasmetrics:readIndicadores agregados del sistema
Volumen, tiempos promedio (en segundos; null si no hay datos en el rango), embudo del flujo, series temporales, reglas más incumplidas, documentos normativos más citados y actividad por perito y por controlador.
- Las series traen todos los buckets del rango, con ceros en los periodos sin actividad. Cada bucket empieza a la medianoche de la Ciudad de México (
America/Mexico_City), expresada en UTC (p. ej.2026-09-27T06:00:00.000Z). - Los dictámenes cuentan los emitidos en el rango, vigentes o ya cerrados;
volumen.dictamenes_vigentesda los que siguen vigentes. - Los tiempos de evaluación sólo consideran evaluaciones completadas.
- Límites:
reglastop 15,normativastop 10,por_peritoypor_controladortop 25.
| Campo | Tipo | Descripción |
|---|---|---|
?desde | fecha ISO 8601 | En la query. Inicio del rango (ISO 8601). Por defecto: 90 días antes de hasta. |
?hasta | fecha ISO 8601 | En la query. Fin del rango (ISO 8601). Por defecto: ahora. |
?granularidad | dia | semana | mes | En la query. Tamaño de cada bucket de series. (por defecto "dia") |
curl "$API_URL/v1/metricas" \
-H "x-api-key: $API_KEY"200 — Indicadores del rango.
{
"rango": {
"desde": "2026-06-16T00:00:00.000Z",
"hasta": "2026-09-14T00:00:00.000Z",
"granularidad": "semana"
},
"volumen": {
"avaluos_creados": 42,
"evaluaciones_ejecutadas": 51,
"certificados_emitidos": 30,
"reprocesos": 6,
"dictamenes_emitidos": 25,
"dictamenes_vigentes": 21,
"tasa_aprobacion_ia_pct": 71.4,
"tasa_sin_criticos_ia_pct": 38.1,
"tasa_aprobacion_control_pct": 88
},
"tiempos": {
"procesamiento_documento_seg": 94,
"evaluacion_ia_seg": 310,
"evaluacion_ia_p50_seg": 240,
"evaluacion_ia_p90_seg": 620,
"evaluaciones_lentas": 1,
"correccion_perito_seg": 86400,
"verificacion_a_dictamen_seg": 1800,
"certificado_a_dictamen_seg": null,
"job_latency_ms": 1200
},
"flujo": {
"pendiente_validacion": 5,
"en_correccion": 6,
"validado": 8,
"aprobado_revision_interna": 22,
"rechazado_control": 3,
"error": 1
},
"series": [
{
"bucket": "2026-06-15T06:00:00.000Z",
"creados": 3,
"aprobados": 2,
"correccion": 1,
"certificados": 2,
"dictamenes": 1
}
],
"reglas": [
{
"codigo_regla": "MER-005",
"titulo": "Diferencia > 20% vs unitario de mercado web",
"severidad": "tecnico",
"seccion_avaluo": "Enfoque Mercado",
"total": 12,
"justificados": 4,
"pendientes": 8,
"avaluos_afectados": 11
}
],
"normativas": [
{
"documento": "Metodología SHF",
"institucion": "SHF",
"veces": 9
}
],
"por_perito": [
{
"perito_id": "usr_7",
"avaluos": 10,
"aprobados": 7,
"correccion": 2,
"reprocesos": 1,
"criticos": 3,
"ultimo_avaluo_at": "2026-09-01T18:00:00.000Z"
}
],
"por_controlador": [
{
"controlador_id": "ctl_2",
"controlador_nombre": "Luis R.",
"dictamenes": 12,
"dictamenes_vigentes": 10,
"aprobados": 11,
"rechazados": 1,
"verificaciones": 14,
"verificaciones_fallidas": 0,
"tiempo_medio_seg": 2400
}
]
}| HTTP | Cuándo ocurre |
|---|---|
400 | desde o hasta no son fechas ISO 8601, granularidad no es dia, semana o mes, o se envió un parámetro no permitido. |
401 | API Key ausente, inválida, revocada o expirada. |
403 | La API Key es válida pero le faltan permisos: Faltan scopes: <scope>. |
429 | Se superó el límite de peticiones (rate limit). |
Actividad de los peritos
/v1/metricas/peritosmetrics:readActividad de todos los peritos, paginada
Todos los peritos con avalúos creados en el rango (el por_perito del resumen es sólo un top 25). Los peritos sin avalúos en el rango no aparecen: el API no tiene tabla de personas, la app los completa contra sus usuarios.
| Campo | Tipo | Descripción |
|---|---|---|
?desde | string | En la query. ISO 8601. Por defecto: hace 90 días. |
?hasta | string | En la query. ISO 8601. Por defecto: ahora. |
?perito_id | string | En la query. Uno o varios peritos (metadata.perito_id): lista separada por comas o parámetro repetido. Máximo 100. |
?orden | avaluos | aprobados | correccion | reprocesos | criticos | ultimo_avaluo_at | En la query. (por defecto "avaluos") |
?direccion | asc | desc | En la query. (por defecto "desc") |
?page | integer | En la query. Página a devolver (desde 1). (mín. 1) (por defecto 1) |
?page_size | integer | En la query. Elementos por página. (mín. 1) (máx. 100) (por defecto 20) |
curl "$API_URL/v1/metricas/peritos?desde=2026-06-01&hasta=2026-06-30&perito_id=usr_7%2Cusr_9" \
-H "x-api-key: $API_KEY"200 — Página de actividad por perito.
{
"data": [
{
"perito_id": "usr_7",
"avaluos": 10,
"aprobados": 7,
"correccion": 2,
"reprocesos": 1,
"criticos": 3,
"ultimo_avaluo_at": "2026-09-01T18:00:00.000Z"
}
],
"page": 1,
"page_size": 20,
"total": 1,
"total_pages": 1
}| HTTP | Cuándo ocurre |
|---|---|
400 | orden o direccion fuera de lista, más de 100 perito_id, desde o hasta no son fechas ISO 8601, page es menor que 1, page_size está fuera de 1–100 o se envió un parámetro no permitido. |
401 | API Key ausente, inválida, revocada o expirada. |
403 | La API Key es válida pero le faltan permisos: Faltan scopes: <scope>. |
429 | Se superó el límite de peticiones (rate limit). |
Avalúos por etapa del flujo
/v1/metricas/flujometrics:readEstado de cada avalúo dentro del proceso
Tabla paginada y filtrable del flujo global, ordenada por defecto por última actualización (más reciente primero): pendiente de validación, en corrección, validado, aprobado para revisión interna, rechazado por control o error.
| Campo | Tipo | Descripción |
|---|---|---|
?etapa | pendiente_validacion | en_correccion | validado | aprobado_revision_interna | rechazado_control | error | En la query. Sólo los avalúos en esa etapa del flujo. Un valor desconocido responde 400. |
?desde | string | En la query. Creados a partir de esta fecha, ISO 8601 (2026-06-24 o 2026-06-24T18:30:00Z). |
?hasta | string | En la query. Creados hasta esta fecha, ISO 8601 (2026-06-24 o 2026-06-24T18:30:00Z). |
?estado | pending | processing | requires_correction | approved | error | En la query. Estado del avalúo. Se combina con etapa en AND; una combinación imposible devuelve cero filas. |
?perito_id | string | En la query. Uno o varios peritos (metadata.perito_id): lista separada por comas o parámetro repetido. Máximo 100. |
?institucion | string | En la query. Código de la institución (GET /v1/instituciones). |
?tipo_inmueble | string | En la query. Código del tipo de inmueble (GET /v1/tipos-inmueble). |
?orden | updated_at | created_at | folio | En la query. Columna de orden; el desempate es estable por id. (por defecto "updated_at") |
?direccion | asc | desc | En la query. (por defecto "desc") |
?search | string | En la query. Filtra por folio: coincidencias que lo contengan, sin distinguir mayúsculas. |
?page | integer | En la query. Página a devolver (desde 1). (mín. 1) (por defecto 1) |
?page_size | integer | En la query. Elementos por página. (mín. 1) (máx. 100) (por defecto 20) |
curl "$API_URL/v1/metricas/flujo?desde=2026-06-01&hasta=2026-06-30&perito_id=usr_7%2Cusr_9&institucion=BBVA_MEXICO&tipo_inmueble=CASA_HABITACION&search=000123" \
-H "x-api-key: $API_KEY"200 — Página del flujo global.
{
"data": [
{
"folio": "26091000123",
"estado": "approved",
"etapa": "validado",
"perito_id": "usr_7",
"institucion": "BBVA",
"tipo_inmueble": "CASA_HABITACION",
"documento_version": 2,
"certificado_emitido_at": "2026-09-01T18:00:00.000Z",
"dictamen": null,
"dictamen_at": null,
"controlador_nombre": null,
"created_at": "2026-08-30T15:00:00.000Z",
"updated_at": "2026-09-01T18:00:00.000Z"
}
],
"page": 1,
"page_size": 20,
"total": 57,
"total_pages": 3
}| HTTP | Cuándo ocurre |
|---|---|
400 | etapa, estado, orden o direccion fuera de lista, desde o hasta no son fechas ISO 8601, page es menor que 1, page_size está fuera de 1–100 o se envió un parámetro no permitido. |
401 | API Key ausente, inválida, revocada o expirada. |
403 | La API Key es válida pero le faltan permisos: Faltan scopes: <scope>. |
429 | Se superó el límite de peticiones (rate limit). |