FluentaAPI

Organizations and resources

How calls chain together, from your user to your organizations and from an organization to its modules, stations and operators.

Here you will see which resources the API has, which call each id comes from, and how to work with an account that belongs to several organizations.

The path

user (your token)
└── organizations
    ├── modules (módulos)
    │   └── stations (puestos)
    └── operators (operarios)

A token is personal: it acts as your user and reaches every organization you belong to. There is no default organization: every route names its own in the path, as organizationId.

Where each id comes from

ResourceWhat it isIts id comes fromIt is used as
OrganizationA plant, a workshop (taller) or a brand's accountGET /me → organizations[].id, GET /organizations → items[].idorganizationId in the path
Module (módulo)A production lineGET …/modules → [].id, GET …/floor → modules[].idmoduleId in the path or as a filter
Station (puesto)A numbered station of a moduleGET …/modules/{moduleId}/stations → [].id, GET …/stations → items[].id, GET …/floor → modules[].stations[].idstationId in the path, operationId as a filter
Operator (operario)The person who registers their own output at a stationGET …/operators → [].id, a station's operator.id fieldoperatorId in the path or as a filter

A station's id has two names. In the path it is stationId. In the report filters it is operationId, and in their rows it comes as operation.id. It is the same number.

Each operator carries in station the station they are seated at, or null when they are at none. Each station carries in operator the seated operator, or null when it is empty.

A chained example

# 1. Your organizations → organizationId
curl https://api.fluenta.io/v1/external/organizations \
  -H "Authorization: Bearer $FLUENTA_TOKEN"

# 2. The modules of organization 42 → moduleId
curl https://api.fluenta.io/v1/external/organizations/42/modules \
  -H "Authorization: Bearer $FLUENTA_TOKEN"

# 3. The stations of module 7 → stationId
curl https://api.fluenta.io/v1/external/organizations/42/modules/7/stations \
  -H "Authorization: Bearer $FLUENTA_TOKEN"

# 4. Station 311, as the board reads it now
curl https://api.fluenta.io/v1/external/organizations/42/stations/311 \
  -H "Authorization: Bearer $FLUENTA_TOKEN"

# 5. That station's efficiency over a range: the same id, as operationId
curl "https://api.fluenta.io/v1/external/organizations/42/analytics/efficiency?from=2026-11-03&to=2026-11-07&operationId=311" \
  -H "Authorization: Bearer $FLUENTA_TOKEN"

Steps 1 to 4 answer on every plan. Step 5 follows the plan: see Plans.

GET …/floor answers the modules with their stations in one call. Use it when you need the whole plant, not to read one station: it counts against a lower rate limit.

Accounts with several organizations

A person can belong to several organizations: a brand and its workshops (talleres), or someone who works for two plants. The same token reaches all of them.

  • GET /me carries the first 50, by name, and the total in organizationsTotal.
  • GET /organizations pages them 50 at a time with page and searches them by name with search.
  • Each organization answers according to its own plan. connectorEnabled says whether that organization answers your credential.
  • Each organization has its own rate limit, and there is one more for the token across all of them: see Rate limits.
  • Each organization has its own clock. The days and hours in its answers are in its time zone: timezone and today in GET /organizations/{organizationId}.
  • Your role and your permissions in one organization are in GET /organizations/{organizationId}/access.

To walk a brand and its workshops, list the organizations and repeat the same calls with each organizationId.

What is not yours answers 404

An organization you do not belong to answers the same as one that does not exist:

{
  "statusCode": 404,
  "code": "ORGANIZATION_NOT_FOUND",
  "message": "Organización no encontrada"
}

It never answers 403. The same holds inside an organization: a module, a station or an operator of another organization answers 404 with MODULE_NOT_FOUND, OPERATION_NOT_FOUND or OPERATOR_NOT_FOUND, the same as an id that does not exist.

Always use ids that came from an API answer. Do not build them or guess them. Errors has the rest of the codes.

On this page