Weather Object Metadata

These API endpoints are provided to understand which models, variables, and categories of data are currently available.

get
Get Weather Models

https://api.sofarocean.com/marine-weather/v1/models
Returns a list of all available forecast models that you are authorized to access.
Request
Response
Request
Headers
token
required
string
A valid API token.
Response
200: OK
Model data successfully retrieved.
{
"models": [
{
"modelID": "SofarOperationalWaveModel",
"description": "This is the output of Sofar's assimilated operational wave forecast model.",
"dataCategories": [
"surfaceWaves"
],
"outputTimes": {
"frequencyHours": 1,
"offset": 0
},
"variables": [
{
"variableID": "SofarOperationalWaveModel-significantWaveHeight",
"variableName": "significantWaveHeight",
"defaultPhysicalUnit": "m",
"dataCategory": "surfaceWaves",
"rasterTiles": {
"available": true,
"dataRange": [ 0, 15 ]
}
},
{
"variableID": "SofarOperationalWaveModel-meanDirection",
"variableName": "meanDirection",
"defaultPhysicalUnit": "degree",
"dataCategory": "surfaceWaves",
"rasterTiles": {
"available": false
}
},
{
"variableID": "SofarOperationalWaveModel-meanDirectionalSpread",
"variableName": "meanDirectionalSpread",
"defaultPhysicalUnit": "m",
"dataCategory": "surfaceWaves",
"rasterTiles": {
"available": false
}
},
{
"variableID": "SofarOperationalWaveModel-meanPeriod",
"variableName": "meanPeriod",
"defaultPhysicalUnit": "s",
"dataCategory": "surfaceWaves",
"rasterTiles": {
"available": true,
"dataRange": [ 0.5, 15 ]
}
},
{
"variableID": "SofarOperationalWaveModel-peakFrequency",
"variableName": "peakFrequency",
"defaultPhysicalUnit": "hz",
"dataCategory": "surfaceWaves",
"rasterTiles": {
"available": false
}
},
{
"variableID": "SofarOperationalWaveModel-peakDirection",
"variableName": "peakDirection",
"defaultPhysicalUnit": "degree",
"dataCategory": "surfaceWaves",
"rasterTiles": {
"available": false
}
},
{
"variableID": "SofarOperationalWaveModel-significantWaveHeightWindWaves",
"variableName": "significantWaveHeightWindWaves",
"defaultPhysicalUnit": "m",
"dataCategory": "surfaceWaves",
"rasterTiles": {
"available": true,
"dataRange": [ 0, 15 ]
}
},
{
"variableID": "SofarOperationalWaveModel-meanDirectionWindWaves",
"variableName": "meanDirectionWindWaves",
"defaultPhysicalUnit": "degree",
"dataCategory": "surfaceWaves",
"rasterTiles": {
"available": false
}
},
{
"variableID": "SofarOperationalWaveModel-meanDirectionalSpreadWindWaves",
"variableName": "meanDirectionalSpreadWindWaves",
"defaultPhysicalUnit": "m",
"dataCategory": "surfaceWaves",
"rasterTiles": {
"available": false
}
},
{
"variableID": "SofarOperationalWaveModel-peakPeriodWindWaves",
"variableName": "peakPeriodWindWaves",
"defaultPhysicalUnit": "s",
"dataCategory": "surfaceWaves",
"rasterTiles": {
"available": true,
"dataRange": [ 0.75, 20 ]
}
},
{
"variableID": "SofarOperationalWaveModel-significantWaveHeightFirstSwell",
"variableName": "significantWaveHeightFirstSwell",
"defaultPhysicalUnit": "m",
"dataCategory": "surfaceWaves",
"rasterTiles": {
"available": true,
"dataRange": [ 0, 15 ]
}
},
{
"variableID": "SofarOperationalWaveModel-meanDirectionFirstSwell",
"variableName": "meanDirectionFirstSwell",
"defaultPhysicalUnit": "degree",
"dataCategory": "surfaceWaves",
"rasterTiles": {
"available": false
}
},
{
"variableID": "SofarOperationalWaveModel-meanDirectionalSpreadFirstSwell",
"variableName": "meanDirectionalSpreadFirstSwell",
"defaultPhysicalUnit": "m",
"dataCategory": "surfaceWaves",
"rasterTiles": {
"available": false
}
},
{
"variableID": "SofarOperationalWaveModel-peakPeriodFirstSwell",
"variableName": "peakPeriodFirstSwell",
"defaultPhysicalUnit": "s",
"dataCategory": "surfaceWaves",
"rasterTiles": {
"available": true,
"dataRange": [ 1, 25 ]
}
},
{
"variableID": "SofarOperationalWaveModel-significantWaveHeightSecondSwell",
"variableName": "significantWaveHeightSecondSwell",
"defaultPhysicalUnit": "m",
"dataCategory": "surfaceWaves",
"rasterTiles": {
"available": true,
"dataRange": [ 0, 15 ]
}
},
{
"variableID": "SofarOperationalWaveModel-meanDirectionSecondSwell",
"variableName": "meanDirectionSecondSwell",
"defaultPhysicalUnit": "degree",
"dataCategory": "surfaceWaves",
"rasterTiles": {
"available": false
}
},
{
"variableID": "SofarOperationalWaveModel-meanDirectionalSpreadSecondSwell",
"variableName": "meanDirectionalSpreadSecondSwell",
"defaultPhysicalUnit": "m",
"dataCategory": "surfaceWaves",
"rasterTiles": {
"available": false
}
},
{
"variableID": "SofarOperationalWaveModel-peakPeriodSecondSwell",
"variableName": "peakPeriodSecondSwell",
"defaultPhysicalUnit": "s",
"dataCategory": "surfaceWaves",
"rasterTiles": {
"available": true,
"dataRange": [ 1, 25 ]
}
},
{
"variableID": "SofarOperationalWaveModel-significantWaveHeightThirdSwell",
"variableName": "significantWaveHeightThirdSwell",
"defaultPhysicalUnit": "m",
"dataCategory": "surfaceWaves",
"rasterTiles": {
"available": true,
"dataRange": [ 0, 15 ]
}
},
{
"variableID": "SofarOperationalWaveModel-meanDirectionThirdSwell",
"variableName": "meanDirectionThirdSwell",
"defaultPhysicalUnit": "degree",
"dataCategory": "surfaceWaves",
"rasterTiles": {
"available": false
}
},
{
"variableID": "SofarOperationalWaveModel-meanDirectionalSpreadThirdSwell",
"variableName": "meanDirectionalSpreadThirdSwell",
"defaultPhysicalUnit": "m",
"dataCategory": "surfaceWaves",
"rasterTiles": {
"available": false
}
},
{
"variableID": "SofarOperationalWaveModel-peakPeriodThirdSwell",
"variableName": "peakPeriodThirdSwell",
"defaultPhysicalUnit": "s",
"dataCategory": "surfaceWaves",
"rasterTiles": {
"available": true,
"dataRange": [ 1, 25 ]
}
}
]
},
{
"modelID": "HYCOM",
"description": "This is the unaltered output from the HYCOM consortium's HYCOM circulation model.",
"dataCategories": [
"circulation"
],
"outputTimes": {
"frequencyHours": 3,
"offset": 0
},
"variables": [
{
"variableID": "HYCOM-seaSurfaceTemperature",
"variableName": "seaSurfaceTemperature",
"defaultPhysicalUnit": "Celsius degree",
"dataCategory": "circulation",
"rasterTiles": {
"available": true,
"dataRange": [ -3, 35 ]
}
},
{
"variableID": "HYCOM-surfaceCurrentVelocityEastward",
"variableName": "surfaceCurrentVelocityEastward",
"defaultPhysicalUnit": "m/s",
"dataCategory": "circulation",
"rasterTiles": {
"available": false
}
},
{
"variableID": "HYCOM-surfaceCurrentVelocityNorthward",
"variableName": "surfaceCurrentVelocityNorthward",
"defaultPhysicalUnit": "m/s",
"dataCategory": "circulation",
"rasterTiles": {
"available": false
}
},
{
"variableID": "HYCOM-magnitudeWaterVelocity",
"variableName": "magnitudeWaterVelocity",
"defaultPhysicalUnit": "m/s",
"dataCategory": "circulation",
"rasterTiles": {
"available": true,
"dataRange": [ 0, 2 ]
}
},
{
"variableID": "HYCOM-directionWaterVelocity",
"variableName": "directionWaterVelocity",
"defaultPhysicalUnit": "degree",
"dataCategory": "circulation",
"rasterTiles": {
"available": false
}
}
]
},
{
"modelID": "GFS",
"description": "This is the unaltered output from NOAA's Global Forecast System.",
"dataCategories": [
"atmospheric"
],
"outputTimes": {
"frequencyHours": 1,
"offset": 0
},
"variables": [
{
"variableID": "GFS-windVelocity10MeterEastward",
"variableName": "windVelocity10MeterEastward",
"defaultPhysicalUnit": "m/s",
"dataCategory": "atmospheric",
"rasterTiles": {
"available": false
}
},
{
"variableID": "GFS-windVelocity10MeterNorthward",
"variableName": "windVelocity10MeterNorthward",
"defaultPhysicalUnit": "m/s",
"dataCategory": "atmospheric",
"rasterTiles": {
"available": false
}
},
{
"variableID": "GFS-magnitude10MeterWind",
"variableName": "magnitude10MeterWind",
"defaultPhysicalUnit": "m/s",
"dataCategory": "atmospheric",
"rasterTiles": {
"available": true,
"dataRange": [ 0, 40 ]
}
},
{
"variableID": "GFS-direction10MeterWind",
"variableName": "direction10MeterWind",
"defaultPhysicalUnit": "degree",
"dataCategory": "atmospheric",
"rasterTiles": {
"available": false
}
}
]
},
{
"modelID": "NOAAOperationalWaveModel",
"description": "This is the unaltered output from NOAA's operational global Wavewatch III Model.",
"dataCategories": [
"surfaceWaves"
],
"outputTimes": {
"frequencyHours": 1,
"offset": 0
},
"variables": [
{
"variableID": "NOAAOperationalWaveModel-significantWaveHeight",
"variableName": "significantWaveHeight",
"defaultPhysicalUnit": "m",
"dataCategory": "surfaceWaves",
"rasterTiles": {
"available": true,
"dataRange": [ 0, 15 ]
}
},
{
"variableID": "NOAAOperationalWaveModel-primaryWaveDirection",
"variableName": "primaryWaveDirection",
"defaultPhysicalUnit": "degree",
"dataCategory": "surfaceWaves",
"rasterTiles": {
"available": false
}
},
{
"variableID": "NOAAOperationalWaveModel-peakPeriod",
"variableName": "peakPeriod",
"defaultPhysicalUnit": "s",
"dataCategory": "surfaceWaves",
"rasterTiles": {
"available": true,
"dataRange": [ 0.75, 20 ]
}
},
{
"variableID": "NOAAOperationalWaveModel-significantWaveHeightWindWaves",
"variableName": "significantWaveHeightWindWaves",
"defaultPhysicalUnit": "m",
"dataCategory": "surfaceWaves",
"rasterTiles": {
"available": true,
"dataRange": [ 0, 15 ]
}
},
{
"variableID": "NOAAOperationalWaveModel-meanPeriodWindWaves",
"variableName": "meanPeriodWindWaves",
"defaultPhysicalUnit": "s",
"dataCategory": "surfaceWaves",
"rasterTiles": {
"available": true,
"dataRange": [ 0.75, 20 ]
}
},
{
"variableID": "NOAAOperationalWaveModel-meanDirectionWindWaves",
"variableName": "meanDirectionWindWaves",
"defaultPhysicalUnit": "degree",
"dataCategory": "surfaceWaves",
"rasterTiles": {
"available": false
}
}
]
}
]
}
403: Forbidden
A valid API token was not provided or you do not have access to weather data.
{ "message": "Invalid API token"}

get
Get Weather Model Metadata

https://api.sofarocean.com/marine-weather/v1/models/:model_id
Returns metadata about a single weather model, including a list of variables and data categories that the model outputs.
Request
Response
Request
Path Parameters
model_id
required
string
The ID of the model for which you want to retrieve metadata.
Query Parameters
token
required
string
A valid API token
Response
200: OK
{
"modelID": "SofarOperationalWaveModel",
"description": "This is the output of Sofar's assimilated operational wave forecast model.",
"dataCategories": [
"surfaceWaves"
],
"outputTimes": {
"frequencyHours": 1,
"offset": 0
},
"variables": [
{
"variableID": "SofarOperationalWaveModel-significantWaveHeight",
"variableName": "significantWaveHeight",
"defaultPhysicalUnit": "m",
"dataCategory": "surfaceWaves",
"rasterTiles": {
"available": true,
"dataRange": [ 0, 15 ]
}
},
{
"variableID": "SofarOperationalWaveModel-meanDirection",
"variableName": "meanDirection",
"defaultPhysicalUnit": "degree",
"dataCategory": "surfaceWaves",
"rasterTiles": {
"available": false
}
},
{
"variableID": "SofarOperationalWaveModel-meanDirectionalSpread",
"variableName": "meanDirectionalSpread",
"defaultPhysicalUnit": "m",
"dataCategory": "surfaceWaves",
"rasterTiles": {
"available": false
}
},
{
"variableID": "SofarOperationalWaveModel-meanPeriod",
"variableName": "meanPeriod",
"defaultPhysicalUnit": "s",
"dataCategory": "surfaceWaves",
"rasterTiles": {
"available": true,
"dataRange": [ 0.5, 15 ]
}
},
{
"variableID": "SofarOperationalWaveModel-peakFrequency",
"variableName": "peakFrequency",
"defaultPhysicalUnit": "hz",
"dataCategory": "surfaceWaves",
"rasterTiles": {
"available": false
}
},
{
"variableID": "SofarOperationalWaveModel-peakDirection",
"variableName": "peakDirection",
"defaultPhysicalUnit": "degree",
"dataCategory": "surfaceWaves",
"rasterTiles": {
"available": false
}
},
{
"variableID": "SofarOperationalWaveModel-significantWaveHeightWindWaves",
"variableName": "significantWaveHeightWindWaves",
"defaultPhysicalUnit": "m",
"dataCategory": "surfaceWaves",
"rasterTiles": {
"available": true,
"dataRange": [ 0, 15 ]
}
},
{
"variableID": "SofarOperationalWaveModel-meanDirectionWindWaves",
"variableName": "meanDirectionWindWaves",
"defaultPhysicalUnit": "degree",
"dataCategory": "surfaceWaves",
"rasterTiles": {
"available": false
}
},
{
"variableID": "SofarOperationalWaveModel-meanDirectionalSpreadWindWaves",
"variableName": "meanDirectionalSpreadWindWaves",
"defaultPhysicalUnit": "m",
"dataCategory": "surfaceWaves",
"rasterTiles": {
"available": false
}
},
{
"variableID": "SofarOperationalWaveModel-peakPeriodWindWaves",
"variableName": "peakPeriodWindWaves",
"defaultPhysicalUnit": "s",
"dataCategory": "surfaceWaves",
"rasterTiles": {
"available": true,
"dataRange": [ 0.75, 20 ]
}
},
{
"variableID": "SofarOperationalWaveModel-significantWaveHeightFirstSwell",
"variableName": "significantWaveHeightFirstSwell",
"defaultPhysicalUnit": "m",
"dataCategory": "surfaceWaves",
"rasterTiles": {
"available": true,
"dataRange": [ 0, 15 ]
}
},
{
"variableID": "SofarOperationalWaveModel-meanDirectionFirstSwell",
"variableName": "meanDirectionFirstSwell",
"defaultPhysicalUnit": "degree",
"dataCategory": "surfaceWaves",
"rasterTiles": {
"available": false
}
},
{
"variableID": "SofarOperationalWaveModel-meanDirectionalSpreadFirstSwell",
"variableName": "meanDirectionalSpreadFirstSwell",
"defaultPhysicalUnit": "m",
"dataCategory": "surfaceWaves",
"rasterTiles": {
"available": false
}
},
{
"variableID": "SofarOperationalWaveModel-peakPeriodFirstSwell",
"variableName": "peakPeriodFirstSwell",
"defaultPhysicalUnit": "s",
"dataCategory": "surfaceWaves",
"rasterTiles": {
"available": true,
"dataRange": [ 1, 25 ]
}
},
{
"variableID": "SofarOperationalWaveModel-significantWaveHeightSecondSwell",
"variableName": "significantWaveHeightSecondSwell",
"defaultPhysicalUnit": "m",
"dataCategory": "surfaceWaves",
"rasterTiles": {
"available": true,
"dataRange": [ 0, 15 ]
}
},
{
"variableID": "SofarOperationalWaveModel-meanDirectionSecondSwell",
"variableName": "meanDirectionSecondSwell",
"defaultPhysicalUnit": "degree",
"dataCategory": "surfaceWaves",
"rasterTiles": {
"available": false
}
},
{
"variableID": "SofarOperationalWaveModel-meanDirectionalSpreadSecondSwell",
"variableName": "meanDirectionalSpreadSecondSwell",
"defaultPhysicalUnit": "m",
"dataCategory": "surfaceWaves",
"rasterTiles": {
"available": false
}
},
{
"variableID": "SofarOperationalWaveModel-peakPeriodSecondSwell",
"variableName": "peakPeriodSecondSwell",
"defaultPhysicalUnit": "s",
"dataCategory": "surfaceWaves",
"rasterTiles": {
"available": true,
"dataRange": [ 1, 25 ]
}
},
{
"variableID": "SofarOperationalWaveModel-significantWaveHeightThirdSwell",
"variableName": "significantWaveHeightThirdSwell",
"defaultPhysicalUnit": "m",
"dataCategory": "surfaceWaves",
"rasterTiles": {
"available": true,
"dataRange": [ 0, 15 ]
}
},
{
"variableID": "SofarOperationalWaveModel-meanDirectionThirdSwell",
"variableName": "meanDirectionThirdSwell",
"defaultPhysicalUnit": "degree",
"dataCategory": "surfaceWaves",
"rasterTiles": {
"available": false
}
},
{
"variableID": "SofarOperationalWaveModel-meanDirectionalSpreadThirdSwell",
"variableName": "meanDirectionalSpreadThirdSwell",
"defaultPhysicalUnit": "m",
"dataCategory": "surfaceWaves",
"rasterTiles": {
"available": false
}
},
{
"variableID": "SofarOperationalWaveModel-peakPeriodThirdSwell",
"variableName": "peakPeriodThirdSwell",
"defaultPhysicalUnit": "s",
"dataCategory": "surfaceWaves",
"rasterTiles": {
"available": true,
"dataRange": [ 1, 25 ]
}
}
]
}
403: Forbidden
{ "message": "Invalid API token" }
404: Not Found
The requested model does not exist.
{ "message": "Model 'bad-model' does not exist" }

get
Get Weather Model Data Availability by Time

https://api.sofarocean.com/marine-weather/v1/models/:model_id/outputTimes
Returns timestamps for which data is available for a single weather model. Some models are available hourly, and some at other intervals. This endpoint can be called with three different input options: - without query parameters. This returns timestamps when data is available for the next 72 hours. - with start and end query parameters. This returns timestamps within those two input times. - with a closest parameter. This returns the nearest time -- before or after the closest input -- when data is available.
Request
Response
Request
Path Parameters
model_id
required
string
The ID of the model for which you want to retrieve data.
Query Parameters
token
required
string
A valid API token.
start
optional
string
The beginning of the requested time frame. Must be a valid ISO 8601 timestamp.
end
optional
string
The end of the requested time frame. Must be a valid ISO 8601 timestamp and greater or equal to start. Required if start provided.
closest
optional
string
Can be used to find the nearest timestamp when data is available for the model. Must be a valid ISO 8601 timestamp.
Response
200: OK
The response was successfully returned.
{
"modelID": "SofarOperationalWaveModel",
"outputTimes": [
"2020-05-29T00:00:00Z",
"2020-05-29T01:00:00Z",
"2020-05-29T02:00:00Z",
"2020-05-29T03:00:00Z",
"2020-05-29T04:00:00Z",
"2020-05-29T05:00:00Z",
"2020-05-29T06:00:00Z",
"2020-05-29T07:00:00Z",
"2020-05-29T08:00:00Z",
"2020-05-29T09:00:00Z",
"2020-05-29T10:00:00Z",
"2020-05-29T11:00:00Z",
"2020-05-29T12:00:00Z",
"2020-05-29T13:00:00Z",
"2020-05-29T14:00:00Z",
"2020-05-29T15:00:00Z",
"2020-05-29T16:00:00Z",
"2020-05-29T17:00:00Z",
"2020-05-29T18:00:00Z",
"2020-05-29T19:00:00Z",
"2020-05-29T20:00:00Z",
"2020-05-29T21:00:00Z",
"2020-05-29T22:00:00Z",
"2020-05-29T23:00:00Z",
"2020-05-30T00:00:00Z",
"2020-05-30T01:00:00Z",
"2020-05-30T02:00:00Z",
"2020-05-30T03:00:00Z",
"2020-05-30T04:00:00Z",
"2020-05-30T05:00:00Z",
"2020-05-30T06:00:00Z",
"2020-05-30T07:00:00Z",
"2020-05-30T08:00:00Z",
"2020-05-30T09:00:00Z",
"2020-05-30T10:00:00Z",
"2020-05-30T11:00:00Z",
"2020-05-30T12:00:00Z",
"2020-05-30T13:00:00Z",
"2020-05-30T14:00:00Z",
"2020-05-30T15:00:00Z",
"2020-05-30T16:00:00Z",
"2020-05-30T17:00:00Z",
"2020-05-30T18:00:00Z",
"2020-05-30T19:00:00Z",
"2020-05-30T20:00:00Z",
"2020-05-30T21:00:00Z",
"2020-05-30T22:00:00Z",
"2020-05-30T23:00:00Z",
"2020-05-31T00:00:00Z",
"2020-05-31T01:00:00Z",
"2020-05-31T02:00:00Z",
"2020-05-31T03:00:00Z",
"2020-05-31T04:00:00Z",
"2020-05-31T05:00:00Z",
"2020-05-31T06:00:00Z",
"2020-05-31T07:00:00Z",
"2020-05-31T08:00:00Z",
"2020-05-31T09:00:00Z",
"2020-05-31T10:00:00Z",
"2020-05-31T11:00:00Z",
"2020-05-31T12:00:00Z",
"2020-05-31T13:00:00Z",
"2020-05-31T14:00:00Z",
"2020-05-31T15:00:00Z",
"2020-05-31T16:00:00Z",
"2020-05-31T17:00:00Z",
"2020-05-31T18:00:00Z",
"2020-05-31T19:00:00Z",
"2020-05-31T20:00:00Z",
"2020-05-31T21:00:00Z",
"2020-05-31T22:00:00Z",
"2020-05-31T23:00:00Z"
]
}
400: Bad Request
The request parameters were invalid.
{
"message": "\"closest\" must be in ISO 8601 date format"
}
404: Not Found
The model with the specified ID does not exist.
{
"message": "Model 'not-a-real-model' does not exist"
}
422: Unprocessable Entity
Used when the start time is greater than the end time.
{
"message": "\"start\" must be earlier than \"end\""
}

get
Get Data Categories

https://api.sofarocean.com/marine-weather/v1/data-categories
Retrieve a list of all available categories of data and the model and variable IDs that provide data for each.
Request
Response
Request
Query Parameters
token
required
string
A valid API token.
Response
200: OK
{
"dataCategories": [
{
"dataCategoryID": "surfaceWaves",
"providedBy": [
{
"modelID": "SofarOperationalWaveModel",
"variableIDs": [
"SofarOperationalWaveModel-significantWaveHeight",
"SofarOperationalWaveModel-meanDirection",
"SofarOperationalWaveModel-meanPeriod"
]
},
{
"modelID": "NOAAOperationalWaveModel",
"variableIDs": [
"NOAAOperationalWaveModel-significantWaveHeight",
"NOAAOperationalWaveModel-peakPeriod",
"NOAAOperationalWaveModel-primaryWaveDirection"
]
}
]
},
{
"dataCategoryID": "circulation",
"providedBy": [
{
"modelID": "HYCOM",
"variableIDs": [
"HYCOM-seaSurfaceTemperature",
"HYCOM-surfaceCurrentVelocityEastward",
"HYCOM-surfaceCurrentVelocityNorthward"
]
}
]
}
]
}
403: Forbidden
A valid API token was not provided or you do not have access to weather data.
{ "message": "Invalid API token"}

get
Get Data Category Metadata

https://api.sofarocean.com/marine-weather/v1/data-categories/:category_id
Retrieve the model and variable IDs that provide data for the specified data category.
Request
Response
Request
Path Parameters
category_id
optional
string
The ID of the data category for which you want to retrieve metadata.
Query Parameters
token
required
string
A valid API token.
Response
200: OK
Category metadata successfully retrieved.
{
"dataCategoryID": "surfaceWaves",
"providedBy": [
{
"modelID": "SofarOperationalWaveModel",
"variableIDs": [
"SofarOperationalWaveModel-significantWaveHeight",
"SofarOperationalWaveModel-meanDirection",
"SofarOperationalWaveModel-meanPeriod"
]
},
{
"modelID": "NOAAOperationalWaveModel",
"variableIDs": [
"NOAAOperationalWaveModel-significantWaveHeight",
"NOAAOperationalWaveModel-peakPeriod",
"NOAAOperationalWaveModel-primaryWaveDirection"
]
}
]
}
403: Forbidden
A valid API token was not provided or you do not have access to the Sofar Weather API.
{ "message": "Invalid API token" }
404: Not Found
The requested data category does not exist.
{ "message": "Data category 'gravityWaves' does not exist" }