Represents one value of a measurement, recorded at a point in time, for example an oven temperature read every five minutes. In the Excel templates, readings are registered on the Readings sheet.
A reading names what it is about, its subject, for example a machine or a production record of the domain model. Optionally, it also names the sensor that took the reading.
Readings are a shared entity. They work the same way in every manufacturing domain model.
The Reading object
{
"subject": "MC-01",
"measurement": "oven-temp",
"sensor": "MC-01-T1",
"value": 182.4,
"at": "2026-09-10T08:00:00+02:00"
}
Fields
| Field | Type | Description | Example |
|---|---|---|---|
subject |
string | Business code of the record the reading is about. | "MC-01" |
measurement |
string | Business code of the measurement. | "oven-temp" |
sensor |
string or null | Business code of the machine or sensor that took the reading. | "MC-01-T1" |
value |
number, boolean, or string | The value. Its type depends on the measurement's kind of value. | 182.4 |
at |
string | When the value was read, as an ISO 8601 timestamp with a UTC offset. | "2026-09-10T08:00:00+02:00" |
A reading is identified by subject, measurement, sensor, and at together. sensor is part of the key when it is given.
Subject
subject is the business code of a record of the domain model, for example a machine or a production record. Which kinds of records a reading can be about depends on the domain model.
- An unknown code is refused.
- A code that matches records of more than one kind is refused as ambiguous. Use codes that are unique across these kinds.
Measurement and value
-
measurementmust be a code registered in What you measure, or another code the domain model accepts for readings. A setpoint is refused: setpoint values are submitted as settings. - Codes the domain model records itself are refused.
-
valuemust match the measurement's kind of value:
| Kind of value | value |
|---|---|
| Continuous, Ordinal | A number. |
| Boolean |
true or false. |
| Categorical | The code of the category. |
A value of the wrong type is refused. A number outside the measurement's plausible range is kept, but marked as suspect.
Sensor
sensor is optional. When given, it must be the business code of a machine, for example a sensor registered as a machine.
API resource
| Resource | Base path |
|---|---|
Reading |
/manufacturing/v1/readings |
For the operations shared by all shared entities, see Shared entities API.
API methods
Create a reading
POST /manufacturing/v1/readings/insert
Records a new reading and returns its Pulse identifier.
Request
POST /manufacturing/v1/readings/insert
Content-Type: application/json
{
"subject": "MC-01",
"measurement": "oven-temp",
"sensor": "MC-01-T1",
"value": 182.4,
"at": "2026-09-10T08:00:00+02:00"
}
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
subject |
string | yes | Business code of the record the reading is about. |
measurement |
string | yes | Business code of the measurement. |
sensor |
string or null | no | Business code of the machine or sensor that took the reading. |
value |
number, boolean, or string | yes | The value. |
at |
string | yes | When the value was read. |
Update a reading
PUT /manufacturing/v1/readings/update
Changes the value of an existing reading. The reading is identified by subject, measurement, sensor, and at, and must already exist.
Request
PUT /manufacturing/v1/readings/update
Content-Type: application/json
{
"subject": "MC-01",
"measurement": "oven-temp",
"sensor": "MC-01-T1",
"value": 182.6,
"at": "2026-09-10T08:00:00+02:00"
}
Parameters
The parameters are the same as for creating a reading.
Patch a reading
PATCH /manufacturing/v1/readings/patch
Partially updates an existing reading.
The reading is identified by subject, measurement, sensor, and at in the properties object.
Request
PATCH /manufacturing/v1/readings/patch
Content-Type: application/json
{
"properties": {
"subject": "MC-01",
"measurement": "oven-temp",
"sensor": "MC-01-T1",
"at": "2026-09-10T08:00:00+02:00",
"value": 182.6
}
}
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
properties |
object | yes | Fields included in the partial update. |
properties.subject |
string | yes | Subject of the reading to update. |
properties.measurement |
string | yes | Measurement of the reading to update. |
properties.at |
string | yes | Time of the reading to update. |
properties.sensor |
string or null | no | Sensor of the reading to update, if it has one. |
properties.value |
number, boolean, or string | no | New value. |
Retrieve a reading
GET /manufacturing/v1/readings/select
Returns the reading identified by its key. If there is no such reading, the response is empty.
Request
GET /manufacturing/v1/readings/select?subject=MC-01&measurement=oven-temp&sensor=MC-01-T1&at=2026-09-10T08:00:00%2B02:00
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
subject |
string | yes | Subject of the reading. |
measurement |
string | yes | Measurement of the reading. |
at |
string | yes | Time of the reading. |
sensor |
string | no | Sensor of the reading, if it has one. |
Example response
{
"subject": "MC-01",
"measurement": "oven-temp",
"sensor": "MC-01-T1",
"value": 182.4,
"at": "2026-09-10T08:00:00+02:00"
}
List readings
GET /manufacturing/v1/readings/query
Returns readings matching the supplied filters.
Request
GET /manufacturing/v1/readings/query?subjects=MC-01&measurements=oven-temp&from=2026-09-10T00:00:00%2B02:00&to=2026-09-11T00:00:00%2B02:00
Query parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
subjects |
string or array of strings | no | Limits results to readings about the specified records. |
measurements |
string or array of strings | no | Limits results to the specified measurements. |
sensors |
string or array of strings | no | Limits results to readings taken by the specified sensors. |
from |
string | no | Limits results to readings at or after this time. |
to |
string | no | Limits results to readings up to this time. |
Example response
[
{
"subject": "MC-01",
"measurement": "oven-temp",
"sensor": "MC-01-T1",
"value": 182.4,
"at": "2026-09-10T08:00:00+02:00"
}
]
Delete a reading
DELETE /manufacturing/v1/readings/delete
Deletes the reading identified by its key. If there is no such reading, nothing happens.
Request
DELETE /manufacturing/v1/readings/delete?subject=MC-01&measurement=oven-temp&sensor=MC-01-T1&at=2026-09-10T08:00:00%2B02:00
Parameters
The parameters are the same as for retrieving a reading.