A temperature reading is not a temperature change
Converting a temperature reading and converting a change in temperature need different arithmetic. Measurement keeps the two types separate.
A room at 68 degrees Fahrenheit is at 20 degrees Celsius. If that room warms by 18 degrees Fahrenheit, it warms by 10 degrees Celsius. You can't run both numbers through the same conversion formula.
Fahrenheit and Celsius have different zero points as well as different degree sizes. Converting a reading from Fahrenheit to Celsius means subtracting 32, then dividing by 1.8. A temperature change only needs the division. Subtracting 32 from a change would introduce a zero point that has nothing to do with the amount of warming.
The Measurement API distinguishes a temperature from a temperature difference in the input unit. This request converts the room's reading:
GET /measure/68%20degF?to=degC
The response includes this excerpt:
{
"measure": "68 degF",
"valid": true,
"type": "temperature",
"amount": "20",
"unit": "°C"
}
degF and degC are accepted spellings for the degree symbols. The response uses the canonical unit code, so the result is °C even though the request used degC. Without to, a temperature normalizes to kelvin. The same 68 degF input would return "amount": "293.15" and "unit": "K".
For the change in the room's temperature, the request is different:
GET /measure/18%20delta_F?to=delta_C
That returns "type": "temperature_delta", "amount": "10", and "unit": "delta_C". Both examples return amount as a decimal string, not a JSON number. Keep the returned unit with it when storing or displaying the result.
The distinction also controls which conversions are allowed. A temperature reading cannot convert to a temperature difference, just as it cannot convert to a length. An incompatible to unit returns HTTP 400. If the input itself is below absolute zero, the response instead has valid: false.
This matters when a form asks for a tolerance, a rise, or a drop. Label that input as a temperature difference and send a delta_ unit. A field for the actual temperature needs the reading's unit. The number alone doesn't tell the converter which question your form asked.