# Get hours board
URL: https://docs.fluenta.io/docs/reference/board/get-hours-board
Operation: `getHoursBoard`
Required permission: `read`

`GET /v1/external/organizations/{organizationId}/modules/{moduleId}/days/{day}/board`

One módulo’s «Tablero de producción» for a day, hour by hour: goal, units typed and tapped, running totals, «eficiencia» and where each referencia stands.

Answers one «módulo»’s «Tablero de producción» of «Reportes por módulo» for one plant day, hour by hour: each hour’s goal, the units typed and the units tapped, the running totals and the «eficiencia», and where each «referencia» of the day stands.

`moduleId` comes from `listModules` or `getFloor`; one that is unknown or belongs to another organization answers 404 `MODULE_NOT_FOUND`. `day` is a plant day, `YYYY-MM-DD` on the organization’s own clock (`getSettings.today` is today).

Plan: the organization needs «Reportes por módulo» (`getPlan.features.moduleReports`); without it the answer is 403 `PLAN_LIMIT`.

### Authorization

- `apiToken` — Bearer token. An API token created in Configuración › Tokens de API, or a connected app’s access token

Send it as `Authorization: Bearer <your API token>`.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `moduleId` | path | integer | yes | The «módulo» (a production line): the `id` of one from `listModules`. Unknown or of another organization: 404 `MODULE_NOT_FOUND`. |
| `day` | path | string (date) | yes | The plant day, `YYYY-MM-DD` in the organization’s clock. |
| `organizationId` | path | integer | yes | The organization, from `getMe` or `listOrganizations`. |

### Responses

| Status | Description |
| --- | --- |
| `200` | `ExternalHoursBoardDto` |
| `401` | Missing, malformed, unknown, expired or revoked credential: `INVALID_API_TOKEN`. |
| `402` | The organization is blocked: `ORG_BLOCKED`. |
| `403` | The credential lacks the «Permiso» (`INSUFFICIENT_SCOPE`), a connected app reads an organization without «Conectar con IA» (`PLAN_LIMIT`, `feature: aiConnector`), or the organization’s plan lacks «Reportes por módulo» (`PLAN_LIMIT`, `feature: moduleReports`), whatever the credential. |
| `404` | The organization does not exist or is out of the credential’s reach: `ORGANIZATION_NOT_FOUND`. One body for both. |
| `429` | The credential is over its rate limit: `RATE_LIMITED`. Per credential, in fixed windows of 60 seconds: 60 requests in one organization on Light and 120 on Pro; 20 on the heavy reads (the range figures, the whole floor, the month and the pauses); 300 across every organization; 60 on the routes that name no organization. Wait `Retry-After` seconds; a refused request counts against nothing. |

### Example

```bash
curl -X GET 'https://api.fluenta.io/v1/external/organizations/{organizationId}/modules/{moduleId}/days/{day}/board' \
  -H 'Authorization: Bearer <your API token>'
```