(GET) Sensor Configuration History | Sofar API

For the complete documentation index, see llms.txt. This page is also available as Markdown.

GET https://api.sofarocean.com/api/sensor-configuration-history?spotterId=:spotterId&startDate=:startDate&endDate=:endDate

Returns Smart Mooring sensor configurations for a specified Spotter between startDate and endDate.

This endpoint will only return sensor configuration history from June 2025 or later.

Query Parameters

Name Type Description
spotterId string The identifier of the device you wish to retrieve information from.
startDate string ISO 8601-formatted timestamp indicating the start date for data inclusion. e.g., 2021-01-01T07:00:00Z
endDate string ISO 8601-formatted timestamp indicating the end date for data inclusion. e.g., 2021-01-02T07:00:00Z

Response Description

To learn more about the sensors and the measured data please review our Sensor Payload support document.

Each element of the data array represents a complete configuration of all sensors attached to the Smart Mooring at one time.

timestamp is an ISO8061-formatted string representing the time the configuration was reported by the Spotter, and it was in effect for all data samples collected until the following sensor configuration entry. If a sensor configuration was in use prior to the startTime query parameter passed in, the first entry will have the timestamp of the first sensor datum at or after startTime, not the earliest time the configuration was used.

configuration_checksum is a checksum unique to a given mooring configuration. If the Smart Mooring sensors are changed, but then later returned to an earlier configuration, the configuration_checksum will be the same, assuming the sensors are in the same positions and have the same setting configured. The configuration_checksum returned with sensor data samples from /sensor-data can be cross-referenced with this field to determine the sensor configuration with which the sample was collected.

The sensor_configurations array contains details of the configuration of each sensor:

Examples

Example Request

curl "https://api.sofarocean.com/api/sensor-configuration-history?spotterId=SPOT-0222&startDate=2025-12-01T07:00:00Z&endDate=2025-12-02T07:00:00Z" -H 'token: YOUR_API_TOKEN'

Example Response

{
  "status": "success",
  "data": [
    {
      "configuration_checksum": "0xb6929687",
      "sensor_configurations": [
        {
          "configuration": {
            "sampleDurationMs": 60000,
            "sampleIntervalMs": 300000,
            "samplesPerReport": 1,
            "subsampleEnabled": 0,
            "softReadingPeriodMs": 500,
            "subsampleDurationMs": 60000,
            "subsampleIntervalMs": 300000,
            "ticksSamplingEnabled": 0,
            "transmitAggregations": 1,
            "alignmentInterval5Min": 1,
            "currentReadingPeriodMs": 60000,
            "rbrCodaReadingPeriodMs": 500,
            "turbidityReadingPeriodMs": 1000,
            "bridgePowerControllerEnabled": 1
          },
          "data_types": [],
          "position": 0,
          "sensor_type": {
            "display_name": "Spotter",
            "name": "sofar_bridge"
          },
          "firmware_sha": "1e97d2c4",
          "configuration_crc": "0x7678be55",
          "bristlemouth_node_id": "0x6b721cca35d6e6be"
        },
        {
          "configuration": {
            "sample_count": 6,
            "sample_interval": 0,
            "subsample_count": 9,
            "subsample_interval": 6
          },
          "data_types": [
            {
              "data_type_name": "sofar_temperature_12bits",
              "unit_type": "temperature",
              "units": "°C"
            }
          ],
          "position": 1,
          "sensor_type": {
            "display_name": "Sofar Temperature",
            "name": "sofar_tsys01"
          },
          "firmware_sha": "1e97d2c4",
          "configuration_crc": "0x5db49e4e",
          "bristlemouth_node_id": "0x9397191e2e5bab8c"
        },
        {
          "configuration": {},
          "data_types": [
            {
              "data_type_name": "rbrcoda3_meanpressure_21bits",
              "unit_type": "pressure",
              "units": "μbar"
            },
            {
              "data_type_name": "rbrcoda3_stdevpressure_15bits",
              "unit_type": "pressure",
              "units": "μbar"
            }
          ],
          "position": 2,
          "sensor_type": {
            "display_name": "RBRcoda3.D",
            "name": "rbrcoda3_depth"
          },
          "firmware_sha": "1e97d2c4",
          "configuration_crc": "0x08beb883",
          "bristlemouth_node_id": "0x6b721cca35d6e6be"
        }
      ],
      "timestamp": "2025-12-01T08:00:00.000Z"
    },
    {
      "configuration_checksum": "0xb6929687",
      "sensor_configurations": [
        {
          "configuration": {
            "sampleDurationMs": 60000,
            "sampleIntervalMs": 600000,
            "samplesPerReport": 2,
            "subsampleEnabled": 0,
            "softReadingPeriodMs": 500,
            "subsampleDurationMs": 60000,
            "subsampleIntervalMs": 300000,
            "ticksSamplingEnabled": 0,
            "transmitAggregations": 1,
            "alignmentInterval5Min": 1,
            "currentReadingPeriodMs": 60000,
            "rbrCodaReadingPeriodMs": 500,
            "turbidityReadingPeriodMs": 1000,
            "bridgePowerControllerEnabled": 1
          },
          "data_types": [],
          "position": 0,
          "sensor_type": {
            "display_name": "Spotter",
            "name": "sofar_bridge"
          },
          "firmware_sha": "1e97d2c4",
          "configuration_crc": "0x7678be55",
          "bristlemouth_node_id": "0x6b721cca35d6e6be"
        },
        {
          "configuration": {
            "sample_count": 6,
            "sample_interval": 0,
            "subsample_count": 9,
            "subsample_interval": 6
          },
          "data_types": [
            {
              "data_type_name": "sofar_temperature_12bits",
              "unit_type": "temperature",
              "units": "°C"
            }
          ],
          "position": 1,
          "sensor_type": {
            "display_name": "Sofar Temperature",
            "name": "sofar_tsys01"
          },
          "firmware_sha": "1e97d2c4",
          "configuration_crc": "0x5db49e4e",
          "bristlemouth_node_id": "0x9397191e2e5bab8c"
        },
        {
          "configuration": {
            "type_id": 2
          },
          "data_types": [
            {
              "data_type_name": "rbrcoda3_meanpressure_21bits",
              "unit_type": "pressure",
              "units": "μbar"
            },
            {
              "data_type_name": "rbrcoda3_stdevpressure_15bits",
              "unit_type": "pressure",
              "units": "μbar"
            },
            {
              "data_type_name": "rbrcoda3_meantemperature_20bits",
              "unit_type": "temperature",
              "units": "°C"
            }
          ],
          "position": 2,
          "sensor_type": {
            "display_name": "RBRcoda3 T.D",
            "name": "rbrcoda3_module1"
          },
          "firmware_sha": "1e97d2c4",
          "configuration_crc": "0xeb8308ba",
          "bristlemouth_node_id": "0xca35d6e66b721cbe"
        }
      ],
      "timestamp": "2025-12-01T08:00:00.000Z"
    }
  ]
}