---
title: External measurement validation
slug: how-tos/8v89-creating-a-v
createdAt: 2025-09-04T14:00:59.709Z
---

If measurements need to conform to a certain internally used format, a validation server can be used to enforce this.

## Configuring a validation endpoint

External validation settings can found under `Configuration > External Validation`. Here you can:

- Enable or disable external validation
- Configure the severity level
- Configure one or more validation endpoints

![](https://api.archbee.com/api/optimize/SMPo4IS9FkillUAMsur2c/-V0mV8Jq2KJfI1N-ifaGr_image.png)

## Implementing a validation server

A validation server is a web server that implements at least one endpoint conforming to the validation endpoint protocol:

1. It should accept a POST request with a payload containing a list of measurements. An example:

:::CodeblockTabs{indent="1"}
```json
[
  {
    "UUID": "dad3f495-22b1-11ec-864a-81d3f45e479b",
    "Name": "Tank1.Temperature",
    "Description": "",
    "Datatype": "boolean",
    "Database": "historian",
    "Collector": "OPC-UA Staging",
    "Tags": {},
    "Status": "Active",
    "Settings": {
      "NodeID": "ns=1;s=Boolean_22",
      "CollectionType": "polled",
      "CollectionOffset": 0,
      "CollectionInterval": 5000
    }
  },
  {
    "UUID": "c54b4e3c-6f02-11ec-864a-81d3f45e479b",
    "Name": "Site1.Tank2.Temperature",
    "Description": "",
    "Datatype": "number",
    "Database": "historian",
    "Collector": "MODBUS",
    "Tags": {},
    "Status": "Active",
    "Settings": {
      "RegType": "Input Register",
      "ByteOrder": "Default",
      "CollectionType": "monitored",
      "ModbusDataType": "int32",
      "CollectionOffset": 0,
      "CollectionInterval": 2000,
      "Address": 1
    }
  }
]
```
:::

2. It should respond to this request with a JSON list containing a response for each of the received measurements in the following format:

   ```json
   [
     {
       "UUID": "dad3f495-22b1-11ec-864a-81d3f45e479b",
       "Valid": false,
       "Error": "Should include site prefix"
     },
     {
       "UUID": "c54b4e3c-6f02-11ec-864a-81d3f45e479b",
       "Valid": true,
       "Error": null
     }
   ]
   ```

The endpoint can perform any internal business logic required to ensure the validation settings are correct. This can for example be used to enforce a specific measurement name format.
