FluentaAPI
Analytics

Get station day report

getStationDayReportPermission read

One puesto’s «reporte por operación» for a day: hour by hour, each referencia’s units, meta, efficiency and price, the hour’s «Facturación» and its pausas; by «Subproceso» with «El operario escoge la referencia» on.

GET/v1/external/organizations/{organizationId}/stations/{stationId}/days/{day}/report

What it is: one «puesto»’s «reporte por operación» for one plant day, the report the dashboard opens from a «puesto»’s «Ver reporte». hours holds one entry per clock hour the «puesto» had a «marca» or a «pausa», in order; each totals the hour and lists, in rows, one row per «referencia» worked in it (who marked it last, its units, its «meta», its price per unit) and, in pauseSpans, the «pausas» that started in it.

How it is computed: the hour’s goal is the «puesto»’s «meta» for that hour as it stood then, its efficiency is units × 100 ÷ goal, and its billedAmount is the sum of each row’s units × unitPrice, each rounded to 2 decimals. With the plant’s switch «El operario escoge la referencia» on, every row also says its «Subproceso» (step, stepName) and every hour carries steps: the hour by «referencia» and «Subproceso», its units then being complete units only and its goal the sum of each step’s expected units. With the switch off those keys are absent.

efficiency is «Eficiencia»: units made × 100 ÷ the «meta» of the same span, a percentage with 2 decimals (100 = exactly the goal, it can pass 100; never a 0–1 ratio), null where the goal is 0. Every «puesto» counts towards it, a «puesto de salida» or not.

Money is «Facturación»: the units of the «puestos de salida» × the price per unit each was billed at, in the plant’s currency (currency, ISO 4217: EUR for a plant in España, COP for every other), in whole currency units with up to 2 decimals, never cents. Whether a money figure reads null or 0 where nothing was priced is stated on each field. unitPrice is null on a «puesto» that is not «de salida», and its hours bill 0.

Days and hours are the plant’s own: a plant day is a calendar day YYYY-MM-DD in the organization’s timezone (getOrganization timezone), never UTC, and an hour is the clock hour 0–23 that starts at it in that zone. The day is the path’s day, required.

Naming: a «puesto» (a numbered station of a «módulo») is a station in paths and an operation in ids, filters and codes. A path’s stationId is the same number as the operationId of answers and of filters and as the id listStations returns, and one that is not this organization’s answers 404 OPERATION_NOT_FOUND.

Plan: needs the plan feature reports («Reportes»), the one its dashboard screen is gated by. Pro, a trial of Pro, an «exenta» organization and a Light of plan version 1 (getPlan planVersion) answer it; a Light of plan version 2 does not: 403 PLAN_LIMIT with feature: "reports". getPlan features lists what the organization’s plan has.

See also: getStationEvents for the same «puesto» and day read from the «marcas» log (pace, connectivity); getEfficiency or getBilling with operationId for this «puesto» over a range.

Authorization

apiToken
AuthorizationBearer <token>

An API token created in Configuración › Tokens de API, or a connected app’s access token

In: header

Path Parameters

stationId*integer

The «puesto»: the id of a station from listStations. The same number is called operationId in answers and in filters; unknown or of another organization: 404 OPERATION_NOT_FOUND.

day*string

The plant day to read, YYYY-MM-DD on the organization’s own clock (its timezone, never UTC). Required here: it is part of the path. Not a real calendar day: 400 INVALID_DAY.

Formatdate
organizationId*integer

The organization, from getMe or listOrganizations.

Response Body

application/json

application/json

curl -X GET "https://api.fluenta.io/v1/external/organizations/0/stations/0/days/2026-11-10/report" \  -H "Authorization: Bearer fluenta_live_XXXX"
{  "day": "string",  "operationId": 0,  "currency": "string",  "hours": [    {      "hour": 0,      "units": 0,      "goal": 0,      "efficiency": 0,      "billedAmount": 0,      "secondsPerUnit": 0,      "pausedMinutes": 0,      "pauses": 0,      "rows": [        {          "operationId": 0,          "operationName": "string",          "operatorId": 0,          "operatorName": "string",          "referenceId": 0,          "referenceName": "string",          "units": 0,          "goal": 0,          "efficiency": 0,          "isBilling": true,          "unitPrice": 0,          "secondsPerUnit": 0,          "step": 0,          "stepName": "string"        }      ],      "steps": [        {          "referenceId": 0,          "referenceName": "string",          "step": 0,          "name": "string",          "units": 0,          "goal": 0,          "efficiency": 0,          "counts": true        }      ],      "pauseSpans": [        {          "pauseId": "0cd3c330-3f92-4dc6-9dd9-8dc613a915e2",          "startMinute": 0,          "endMinute": 0,          "durationMinutes": 0,          "operatorId": 0,          "operatorName": "string",          "endedBy": "operator",          "endedByName": "string"        }      ]    }  ]}