{
  "service": "stormglass_io",
  "displayName": "Stormglass",
  "categories": [
    "Location",
    "Data"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "STORMGLASS_API_KEY",
      "description": "Stormglass API key sent in the Authorization header. Copy the API key from the Stormglass dashboard.",
      "extraFields": []
    }
  ],
  "homepageUrl": "https://stormglass.io/",
  "actions": [
    {
      "id": "stormglass_io.get_tide_extremes",
      "service": "stormglass_io",
      "name": "get_tide_extremes",
      "description": "Get Stormglass high and low tide extremes for one coordinate.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "lat": {
            "type": "number",
            "minimum": -90,
            "maximum": 90,
            "description": "Latitude of the requested coordinate in decimal degrees."
          },
          "lng": {
            "type": "number",
            "minimum": -180,
            "maximum": 180,
            "description": "Longitude of the requested coordinate in decimal degrees."
          },
          "start": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "An ISO 8601 timestamp or date string accepted by Stormglass."
              },
              {
                "type": "integer",
                "description": "A UNIX timestamp accepted by Stormglass."
              }
            ],
            "description": "A Stormglass time value in ISO 8601 or UNIX timestamp format."
          },
          "end": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "An ISO 8601 timestamp or date string accepted by Stormglass."
              },
              {
                "type": "integer",
                "description": "A UNIX timestamp accepted by Stormglass."
              }
            ],
            "description": "A Stormglass time value in ISO 8601 or UNIX timestamp format."
          },
          "datum": {
            "type": "string",
            "enum": [
              "MLLW",
              "MSL"
            ],
            "description": "The tide datum used for relative sea-level values."
          }
        },
        "additionalProperties": false,
        "required": [
          "lat",
          "lng"
        ],
        "description": "Input parameters for querying a Stormglass tide point."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "extremes": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "height": {
                  "type": "number",
                  "description": "The relative tide height in meters."
                },
                "time": {
                  "type": "string",
                  "description": "The UTC timestamp of the tide extreme."
                },
                "type": {
                  "type": "string",
                  "enum": [
                    "high",
                    "low"
                  ],
                  "description": "The tide extreme type returned by Stormglass."
                }
              },
              "additionalProperties": false,
              "required": [
                "height",
                "time",
                "type"
              ],
              "description": "One Stormglass tide extreme record."
            },
            "description": "Tide extreme records returned by Stormglass."
          },
          "meta": {
            "type": "object",
            "properties": {
              "station": {
                "type": "object",
                "properties": {
                  "distance": {
                    "type": "number",
                    "description": "The distance from the requested coordinate in kilometers."
                  },
                  "lat": {
                    "type": "number",
                    "description": "The latitude of the selected tide station."
                  },
                  "lng": {
                    "type": "number",
                    "description": "The longitude of the selected tide station."
                  },
                  "name": {
                    "type": "string",
                    "description": "The tide station name."
                  },
                  "source": {
                    "type": "string",
                    "description": "The tide station owner or data source."
                  }
                },
                "additionalProperties": true,
                "description": "The tide station metadata returned by Stormglass."
              },
              "datum": {
                "type": "string",
                "enum": [
                  "MLLW",
                  "MSL"
                ],
                "description": "The tide datum used for relative sea-level values."
              }
            },
            "additionalProperties": true,
            "description": "Metadata returned by a Stormglass tide request."
          }
        },
        "additionalProperties": false,
        "required": [
          "extremes",
          "meta"
        ],
        "description": "Stormglass tide extremes response."
      }
    },
    {
      "id": "stormglass_io.get_tide_sea_level",
      "service": "stormglass_io",
      "name": "get_tide_sea_level",
      "description": "Get Stormglass hourly tide sea-level data for one coordinate.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "lat": {
            "type": "number",
            "minimum": -90,
            "maximum": 90,
            "description": "Latitude of the requested coordinate in decimal degrees."
          },
          "lng": {
            "type": "number",
            "minimum": -180,
            "maximum": 180,
            "description": "Longitude of the requested coordinate in decimal degrees."
          },
          "start": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "An ISO 8601 timestamp or date string accepted by Stormglass."
              },
              {
                "type": "integer",
                "description": "A UNIX timestamp accepted by Stormglass."
              }
            ],
            "description": "A Stormglass time value in ISO 8601 or UNIX timestamp format."
          },
          "end": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "An ISO 8601 timestamp or date string accepted by Stormglass."
              },
              {
                "type": "integer",
                "description": "A UNIX timestamp accepted by Stormglass."
              }
            ],
            "description": "A Stormglass time value in ISO 8601 or UNIX timestamp format."
          },
          "datum": {
            "type": "string",
            "enum": [
              "MLLW",
              "MSL"
            ],
            "description": "The tide datum used for relative sea-level values."
          }
        },
        "additionalProperties": false,
        "required": [
          "lat",
          "lng"
        ],
        "description": "Input parameters for querying a Stormglass tide point."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "seaLevels": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "time": {
                  "type": "string",
                  "description": "The UTC timestamp of the sea-level reading."
                }
              },
              "additionalProperties": true,
              "description": "One Stormglass tide sea-level record."
            },
            "description": "Hourly sea-level entries returned by Stormglass."
          },
          "meta": {
            "type": "object",
            "properties": {
              "station": {
                "type": "object",
                "properties": {
                  "distance": {
                    "type": "number",
                    "description": "The distance from the requested coordinate in kilometers."
                  },
                  "lat": {
                    "type": "number",
                    "description": "The latitude of the selected tide station."
                  },
                  "lng": {
                    "type": "number",
                    "description": "The longitude of the selected tide station."
                  },
                  "name": {
                    "type": "string",
                    "description": "The tide station name."
                  },
                  "source": {
                    "type": "string",
                    "description": "The tide station owner or data source."
                  }
                },
                "additionalProperties": true,
                "description": "The tide station metadata returned by Stormglass."
              },
              "datum": {
                "type": "string",
                "enum": [
                  "MLLW",
                  "MSL"
                ],
                "description": "The tide datum used for relative sea-level values."
              }
            },
            "additionalProperties": true,
            "description": "Metadata returned by a Stormglass tide request."
          }
        },
        "additionalProperties": false,
        "required": [
          "seaLevels",
          "meta"
        ],
        "description": "Stormglass tide sea-level response."
      }
    },
    {
      "id": "stormglass_io.get_weather_point",
      "service": "stormglass_io",
      "name": "get_weather_point",
      "description": "Get Stormglass forecast weather data for one coordinate.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "lat": {
            "type": "number",
            "minimum": -90,
            "maximum": 90,
            "description": "Latitude of the requested coordinate in decimal degrees."
          },
          "lng": {
            "type": "number",
            "minimum": -180,
            "maximum": 180,
            "description": "Longitude of the requested coordinate in decimal degrees."
          },
          "params": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "airTemperature",
                "airTemperature80m",
                "airTemperature100m",
                "airTemperature1000hpa",
                "airTemperature800hpa",
                "airTemperature500hpa",
                "airTemperature200hpa",
                "pressure",
                "cloudCover",
                "currentDirection",
                "currentSpeed",
                "dewPointTemperature",
                "gust",
                "humidity",
                "iceCover",
                "precipitation",
                "rain",
                "snow",
                "graupel",
                "snowAlbedo",
                "snowDepth",
                "seaIceThickness",
                "seaLevel",
                "swellDirection",
                "swellHeight",
                "swellPeriod",
                "secondarySwellPeriod",
                "secondarySwellDirection",
                "secondarySwellHeight",
                "visibility",
                "waterTemperature",
                "surfaceTemperature",
                "waveDirection",
                "waveHeight",
                "wavePeriod",
                "windWaveDirection",
                "windWaveHeight",
                "windWavePeriod",
                "windDirection",
                "windDirection20m",
                "windDirection30m",
                "windDirection40m",
                "windDirection50m",
                "windDirection80m",
                "windDirection100m",
                "windDirection1000hpa",
                "windDirection800hpa",
                "windDirection500hpa",
                "windDirection200hpa",
                "windSpeed",
                "windSpeed20m",
                "windSpeed30m",
                "windSpeed40m",
                "windSpeed50m",
                "windSpeed80m",
                "windSpeed100m",
                "windSpeed1000hpa",
                "windSpeed800hpa",
                "windSpeed500hpa",
                "windSpeed200hpa"
              ],
              "description": "One Stormglass weather parameter to request."
            },
            "description": "Weather parameters to request from Stormglass.",
            "minItems": 1
          },
          "start": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "An ISO 8601 timestamp or date string accepted by Stormglass."
              },
              {
                "type": "integer",
                "description": "A UNIX timestamp accepted by Stormglass."
              }
            ],
            "description": "A Stormglass time value in ISO 8601 or UNIX timestamp format."
          },
          "end": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "An ISO 8601 timestamp or date string accepted by Stormglass."
              },
              {
                "type": "integer",
                "description": "A UNIX timestamp accepted by Stormglass."
              }
            ],
            "description": "A Stormglass time value in ISO 8601 or UNIX timestamp format."
          },
          "source": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "sg",
                "noaa",
                "dwd",
                "icon",
                "meteo",
                "smhi"
              ],
              "description": "One Stormglass weather source identifier."
            },
            "description": "Weather sources to request from Stormglass.",
            "minItems": 1
          }
        },
        "additionalProperties": false,
        "required": [
          "lat",
          "lng",
          "params"
        ],
        "description": "Input parameters for querying a Stormglass weather point."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "hours": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "time": {
                  "type": "string",
                  "description": "The UTC timestamp for this weather hour."
                }
              },
              "additionalProperties": true,
              "description": "One Stormglass weather hour entry."
            },
            "description": "Hourly weather entries returned by Stormglass."
          },
          "meta": {
            "type": "object",
            "properties": {
              "dailyQuota": {
                "type": "integer",
                "description": "The daily request quota assigned to the API key."
              },
              "requestCount": {
                "type": "integer",
                "description": "The number of requests used so far today."
              },
              "lat": {
                "type": "number",
                "description": "The latitude resolved by Stormglass."
              },
              "lng": {
                "type": "number",
                "description": "The longitude resolved by Stormglass."
              }
            },
            "additionalProperties": true,
            "description": "Metadata returned by a Stormglass weather request."
          }
        },
        "additionalProperties": false,
        "required": [
          "hours",
          "meta"
        ],
        "description": "Stormglass weather point response."
      }
    }
  ]
}
