Skip to main content

Submit a measure reading

POST 

/partners/v1/measures/submit-reading

StarterPremiumUltimate
✔️✔️✔️

⚠️ Activation required — this endpoint requires the PARTNERS_API_MEASURE_READING feature to be enabled on your network. To activate it, contact product@mobility-work.com.

Submits a single measure reading (counter value) for an equipment.

Designed for industrial integrations where a Manufacturing Execution System (MES), an IoT gateway, or any external application feeds counter values (operating hours, kilometres, cycles, etc.) into Mobility Work CMMS to drive predictive maintenance, threshold-based plan scheduling, and equipment health monitoring.

Identifying the measure and the equipment

  • measureCode is the business code of the counter as defined in the network (e.g. HOURS_ENGINE_1), not the internal technical id.
  • equipmentExternalReference is the item code of the equipment. Internal UUIDs are not supported here — only external references known by the calling system.
  • Both lookups are scoped to the network identified by the API key — a measureCode or item code that exists in another network is treated as not found.

readAt — accepted formats

readAt is optional. When omitted or set to null, the server's current time is used.

The following formats are accepted:

FormatExample
ISO 8601 with explicit offset2024-01-15T14:30:00+01:00
ISO 8601 with UTC abbreviation Z2024-01-15T14:30:00Z
ISO 8601 with microseconds2024-01-15T14:30:00.123456+01:00
Unix timestamp as JSON integer1745488800
Unix timestamp as JSON string"1745488800"
Unix timestamp as JSON float (sub-second precision)1745488800.123

Microseconds are truncated to the second on storage — sub-second precision is not relevant for counter readings.

Calendar-invalid dates are rejected: 2026-02-30T... returns 400 instead of being silently rolled to the next valid day. The readAt Unix timestamps minimum length is 10 digits (i.e. ≥ 1000000000, 2001-09-09).

value — accepted formats

The value is always sent as a string. Its content is interpreted according to the type of the targeted measure:

  • NUMBER measures: the value must be numeric. Decimals (12345.67), negative values (-100) and scientific notation (1e5) are all accepted at the API level — your business rules should determine whether they are meaningful.
  • GENERIC (text) measures: any string is accepted, no numeric check is applied.

Maximum length: 100 characters.

Idempotency

There is no idempotency mechanism: each accepted call records a new measurement with a fresh measurementId. A retry on a network timeout will create a duplicate reading — make sure your client handles this if it can automatically retry failed calls.

Request

Responses

The measurement has been recorded.