Reporte de paros
Scope requerido: reports.read.
Devuelve los paros individuales de las máquinas con su duración, causa y clasificación.
Es el detalle detrás de los totales de tiempo muerto del reporte de métricas. stopId acepta la gramática de comparación completa, así que se puede obtener directamente un paro específico o un rango de ellos.
Cuerpo de la solicitud
application/json
Definiciones de TypeScript
Usa el tipo request body en TypeScript.
Cuerpo de la respuesta
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/reports/stops" \ -H "Content-Type: application/json" \ -d '{}'{ "totalCount": 100, "totalPages": 10, "currentPage": 1, "stops": [ { "classification": { "component": { "id": "3e8e81cf-7521-4ef9-b6c9-40074aa764c5", "name": "a simple component" }, "createdAt": "2025-11-01T00:00:00", "description": "a simple description", "generalCause": { "id": "d56aece5-a92a-462e-b275-919e15446bba", "name": "a simple general cause" }, "id": 1, "specificCause": { "id": "f89b5866-2d26-45a1-8cfc-8295557594d8", "name": "a simple specific cause" }, "updatedAt": "2025-11-01T00:00:00" }, "company": { "id": 1, "name": "a simple company" }, "machine": { "id": 1, "name": "a simple machine" }, "shift": { "endTime": "2025-11-10T00:00:00", "id": 1, "isActive": true, "name": "morning", "startTime": "2025-11-01T00:00:00" }, "stop": { "createdAt": "2025-11-01T00:00:00", "deletedAt": "2025-11-10T00:00:00", "durationInMinutes": 30, "endTime": "2025-11-10T00:00:00", "id": 1, "isIncludedInAvailability": true, "isIncludedInStops": true, "isManual": true, "isProgrammed": true, "startTime": "2025-11-01T00:00:00", "updatedAt": "2025-11-01T00:00:00" } } ]}Reporte de métricas POST
Devuelve OEE, disponibilidad, calidad y minutos perdidos por máquina y turno. Cada fila trae los indicadores del turno (tiempo disponible, tiempo muerto separado por causa) junto con las métricas de producción derivadas: availability, effectiveness, quality, oee y netOee, además de los minutos perdidos por baja velocidad y por baja calidad. Es un POST que solo lee: basta con el scope reports.read. Es preferible a calcular el OEE a partir de los registros de producción: los límites de turno, la clasificación de paros y los factores de conteo ya están aplicados.
Listar turnos GET
Lista los turnos de máquina que se traslapan con un rango de tiempo, pasados o próximos. Usa el id de cada turno para asignar operadores o registrar unidades defectuosas. Un turno se devuelve cuando alguna parte de él cae entre from y to: termina después de from y empieza antes de to. Así, un turno de noche de 22:00 a 06:00 aparece en un rango que cubra cualquiera de los dos días. to debe ser posterior a from, y el rango puede abarcar como máximo 31 días. La respuesta es la lista completa, sin paginar, ordenada por start y luego por máquina. Cubrir un periodo más largo. Divídelo en rangos consecutivos (el to de uno es el from del siguiente) y agrega match=start, que devuelve solo los turnos que empiezan en el rango (from <= start < to). Así cada turno se devuelve exactamente una vez. Con el valor por defecto, match=overlap, un turno que cruza el límite entre dos rangos lo devuelven ambos, así que elimina duplicados por id antes de actuar sobre los resultados; agregar defectos dos veces los registra dos veces. ` GET /v1/shifts?from=2026-10-01T00:00:00Z&to=2026-11-01T00:00:00Z&match=start GET /v1/shifts?from=2026-11-01T00:00:00Z&to=2026-12-01T00:00:00Z&match=start ` Acota la lista con machineId, repetido para varias máquinas: ` GET /v1/shifts?from=2026-10-12T00:00:00Z&to=2026-10-13T00:00:00Z&machineId=12 ` Los turnos excluidos de las métricas también se listan, con isConsidered: false.