POST Forwarding of Data

When one of your Spotters generates new data, A POST request will be made to all of your delivery endpoints.

Incoming spotter data can optionally be forwarded as POST requests to custom delivery endpoints. The new data will be included in the JSON body of the request.

To configure and manage your delivery endpoints, go to your Spotter dashboard at spotter.sofarocean.com/api

The content of the JSON will depend on the operating mode and configuration of the Spotter. See below for example request bodies.

Example Waves Mode Data
Example Track Mode Data
Example Smart Mooring Data
Example Waves Mode Data
  • frequencyData only available in Waves: Spectrum mode

  • partitionData only available in Waves: Partition mode

{
"data": {
"spotterId": "SPOT-0018",
"spotterName": "Mavericks 2",
"payloadType": "waves",
"batteryVoltage": 4.07,
"batteryPower": -0.41,
"solarVoltage": 0.0,
"humidity": 32.8,
"waves": [
{
"significantWaveHeight": 1.14,
"peakPeriod": 9.3,
"meanPeriod": 8.3,
"peakDirection": 302.3,
"peakDirectionalSpread": 42.11,
"meanDirection": 286.2,
"meanDirectionalSpread": 56.16,
"timestamp": "2017-11-08T07:06:57.000Z",
"latitude": 34.30115,
"longitude": -120.6133
},
{
"significantWaveHeight": 1.14,
"peakPeriod": 10.24,
"meanPeriod": 8.44,
"peakDirection": 312.28,
"peakDirectionalSpread": 37.07,
"meanDirection": 284.18,
"meanDirectionalSpread": 57.4,
"timestamp": "2017-11-08T07:36:57.000Z",
"latitude": 34.29883,
"longitude": -120.61127
}
],
"track": [
{
"timestamp": "2017-11-08T07:06:57.000Z",
"latitude": 34.30115,
"longitude": -120.6133
},
{
"timestamp": "2017-11-08T07:36:57.000Z",
"latitude": 34.2988333,
"longitude": -120.6112667
}
],
"frequencyData": [
{
"frequency": [0.02930,0.03906,0.04883,...],
"df": [0.00977, 0.00977, 0.00977,...],
"a1": [-0.097752, -0.095797, -0.054741,...],
"b1": [-0.054741, 0.021505, 0.073314,...],
"a2": [0.120235, 0.115347, -0.018573,...],
"b2": [0.414467, 0.180841, 0.184751,...],
"varianceDensity": [0.7111054247697032, 0.6186233367451381, 0.6411207778915046,...],
"direction": [335.6588548979852, 338.1985905136482, 269.8174396209903,...],
"directionalSpread": [79.181787169671, 74.12281945451112, 67.45630665882223,...],
"timestamp": "2017-10-12T13:28:40.000Z",
"latitude": 35.19229,
"longitude": -120.86748
}
],
"partitionData": [
{
"partitions": [
{
"startFrequency": 0.025,
"endFrequency": 0.078125,
"significantWaveHeight": 0.69,
"meanPeriod": 15.38,
"meanDirection": 240.014,
"meanDirectionalSpread": 29.828
},
{
"startFrequency": 0.078125,
"endFrequency": 0.8,
"significantWaveHeight": 0.97,
"meanPeriod": 8.58,
"meanDirection": 251.647,
"meanDirectionalSpread": 29.645
}
],
"location": {
"latitude": 35.19229,
"longitude": -120.86748,
"timestamp": "2017-10-12T13:28:40.000Z"
}
}
],
"wind": [
{
'speed': 1, // in m/s
'direction': 171, // in degrees
'location': {
'latitude': 37.8973,
'longitude': -122.6868833,
'timestamp': '2019-08-09T20:14:54.000Z'
},
'seasurfaceId': 1 // 1: glassy, 2: choppy, 3: rough
}
],
"surfaceTemp": [
{
"degrees": 14.44,
"location": {
"latitude": 37.7733,
"longitude": -122.3861833,
"timestamp": "2019-11-05T19:34:31.000Z"
}
}
],
...
}
}
Example Track Mode Data
  • The track property represents locations history for a Spotter, ordered by timestamp values.

{
"data": {
"spotterId": "SPOT-0018",
"spotterName": "Mavericks 2",
"payloadType": "track",
"batteryVoltage": 4.13,
"batteryPower": -0.03,
"solarVoltage": 7,
"humidity": 9.6,
"waves": [],
"track": [
{
timestamp: "2017-09-27T22:41:27.000Z",
latitude: 34.777083,
longitude: -120.7396172
},
{
timestamp: "2017-09-27T22:44:27.000Z",
latitude: 34.7769077,
longitude: -120.7390585
},
{
timestamp: "2017-09-27T22:47:27.000Z",
latitude: 34.776726,
longitude: -120.7385352
},
{
timestamp: "2017-09-27T22:50:27.000Z",
latitude: 34.7765415,
longitude: -120.7380058
},
{
timestamp: "2017-09-27T22:53:27.000Z",
latitude: 34.7763545,
longitude: -120.7375838
}
],
"frequencyData": [],
"partitionData": [],
"wind": [],
}
}
Example Smart Mooring Data
  • The sensorPosition property represents the physical position of a sensor in the Smart Mooring relative to Spotter. Sensor position 1 is closest to Spotter.

  • The data_type_name property represents the type of information being sent by a sensor, as ingested by the API.

  • Timestamps within this data format, while ordered, are not necessarily unique. Two or more sensors may send different values with identical timestamps (e.g. a temperature sensor and a pressure sensor which both emit data on the same time interval).

{
"data": {
"spotterId": "SPOT-0018",
"spotterName": "Mavericks 2",
"payloadType": "sensorData",
"batteryVoltage": 4.13,
"batteryPower": -0.03,
"solarVoltage": 7,
"humidity": 9.6,
"sensorData": [
{
"latitude": 37.7733833,
"longitude": -122.38715,
"timestamp": "2020-12-01T23:46:43.000Z",
"sensorPosition": 2,
"units": "μbar",
"value": 1020490,
"unit_type": "pressure",
"data_type_name": "rbrcoda3_meanpressure_21bits"
},
{
"latitude": 37.7733833,
"longitude": -122.38715,
"timestamp": "2020-12-01T23:46:43.000Z",
"sensorPosition": 2,
"units": "μbar",
"value": 100,
"unit_type": "pressure",
"data_type_name": "rbrcoda3_stdevpressure_15bits"
},
{
"latitude": 37.7733833,
"longitude": -122.38715,
"timestamp": "2020-12-01T23:46:43.000Z",
"sensorPosition": 2,
"units": "°C",
"value": 13.426700000000004,
"unit_type": "temperature",
"data_type_name": "rbrcoda3_meantemperature_20bits"
},
{
"latitude": 37.7733833,
"longitude": -122.38715,
"timestamp": "2020-12-02T00:01:43.000Z",
"sensorPosition": 2,
"units": "μbar",
"value": 1020390,
"unit_type": "pressure",
"data_type_name": "rbrcoda3_meanpressure_21bits"
},
{
"latitude": 37.7733833,
"longitude": -122.38715,
"timestamp": "2020-12-02T00:01:43.000Z",
"sensorPosition": 2,
"units": "μbar",
"value": 50,
"unit_type": "pressure",
"data_type_name": "rbrcoda3_stdevpressure_15bits"
},
{
"latitude": 37.7733833,
"longitude": -122.38715,
"timestamp": "2020-12-02T00:01:43.000Z",
"sensorPosition": 2,
"units": "°C",
"value": 15.081299999999999,
"unit_type": "temperature",
"data_type_name": "rbrcoda3_meantemperature_20bits"
}
]
}
}