{
  "service": "weatherbit",
  "displayName": "Weatherbit",
  "categories": [
    "Location",
    "Data"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "WEATHERBIT_API_KEY",
      "description": "Weatherbit API key sent as the key query parameter. Sign up or log in at https://www.weatherbit.io/account/create, then use the API key shown in the account dashboard.",
      "extraFields": []
    }
  ],
  "homepageUrl": "https://www.weatherbit.io",
  "actions": [
    {
      "id": "weatherbit.get_current_weather",
      "service": "weatherbit",
      "name": "get_current_weather",
      "description": "Get current weather observations from Weatherbit for a location.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "latitude": {
            "type": "number",
            "minimum": -90,
            "maximum": 90,
            "description": "Latitude in decimal degrees."
          },
          "longitude": {
            "type": "number",
            "minimum": -180,
            "maximum": 180,
            "description": "Longitude in decimal degrees."
          },
          "city": {
            "type": "string",
            "minLength": 1,
            "description": "City name accepted by Weatherbit."
          },
          "state": {
            "type": "string",
            "minLength": 1,
            "description": "State or province name used with a city query."
          },
          "country": {
            "type": "string",
            "minLength": 1,
            "description": "Country code used with a city or postal code query, such as US."
          },
          "postal_code": {
            "type": "string",
            "minLength": 1,
            "description": "Postal or ZIP code accepted by Weatherbit."
          },
          "city_id": {
            "type": "integer",
            "minimum": 1,
            "description": "Weatherbit city identifier."
          },
          "language": {
            "type": "string",
            "minLength": 1,
            "description": "Language code used by Weatherbit to localize text fields."
          },
          "units": {
            "type": "string",
            "enum": [
              "M",
              "S",
              "I"
            ],
            "description": "Units system for Weatherbit measurements."
          },
          "include": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "minutely",
                "alerts",
                "lightning"
              ],
              "description": "One additional Weatherbit current weather section."
            },
            "description": "Additional current weather response sections to include.",
            "minItems": 1,
            "maxItems": 3
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for reading current weather from Weatherbit.",
        "anyOf": [
          {
            "type": "object",
            "required": [
              "latitude",
              "longitude"
            ],
            "additionalProperties": true,
            "description": "Provide latitude and longitude."
          },
          {
            "type": "object",
            "required": [
              "city"
            ],
            "additionalProperties": true,
            "description": "Provide a city."
          },
          {
            "type": "object",
            "required": [
              "postal_code"
            ],
            "additionalProperties": true,
            "description": "Provide a postal code."
          },
          {
            "type": "object",
            "required": [
              "city_id"
            ],
            "additionalProperties": true,
            "description": "Provide a Weatherbit city ID."
          }
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "observations": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "datetime": {
                  "type": "string",
                  "description": "Weatherbit date or timestamp for the record."
                }
              },
              "additionalProperties": true,
              "description": "One Weatherbit weather record."
            },
            "description": "Current weather observations returned by Weatherbit."
          },
          "count": {
            "type": "integer",
            "description": "Number of current weather observations in the response."
          }
        },
        "additionalProperties": false,
        "required": [
          "observations",
          "count"
        ],
        "description": "Current weather response returned by Weatherbit."
      }
    },
    {
      "id": "weatherbit.get_daily_forecast",
      "service": "weatherbit",
      "name": "get_daily_forecast",
      "description": "Get daily weather forecasts from Weatherbit for a location.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "latitude": {
            "type": "number",
            "minimum": -90,
            "maximum": 90,
            "description": "Latitude in decimal degrees."
          },
          "longitude": {
            "type": "number",
            "minimum": -180,
            "maximum": 180,
            "description": "Longitude in decimal degrees."
          },
          "city": {
            "type": "string",
            "minLength": 1,
            "description": "City name accepted by Weatherbit."
          },
          "state": {
            "type": "string",
            "minLength": 1,
            "description": "State or province name used with a city query."
          },
          "country": {
            "type": "string",
            "minLength": 1,
            "description": "Country code used with a city or postal code query, such as US."
          },
          "postal_code": {
            "type": "string",
            "minLength": 1,
            "description": "Postal or ZIP code accepted by Weatherbit."
          },
          "city_id": {
            "type": "integer",
            "minimum": 1,
            "description": "Weatherbit city identifier."
          },
          "language": {
            "type": "string",
            "minLength": 1,
            "description": "Language code used by Weatherbit to localize text fields."
          },
          "units": {
            "type": "string",
            "enum": [
              "M",
              "S",
              "I"
            ],
            "description": "Units system for Weatherbit measurements."
          },
          "days": {
            "type": "integer",
            "minimum": 1,
            "maximum": 16,
            "description": "Number of forecast days to return, from 1 to 16."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for reading daily forecasts from Weatherbit.",
        "anyOf": [
          {
            "type": "object",
            "required": [
              "latitude",
              "longitude"
            ],
            "additionalProperties": true,
            "description": "Provide latitude and longitude."
          },
          {
            "type": "object",
            "required": [
              "city"
            ],
            "additionalProperties": true,
            "description": "Provide a city."
          },
          {
            "type": "object",
            "required": [
              "postal_code"
            ],
            "additionalProperties": true,
            "description": "Provide a postal code."
          },
          {
            "type": "object",
            "required": [
              "city_id"
            ],
            "additionalProperties": true,
            "description": "Provide a Weatherbit city ID."
          }
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "city_name": {
            "type": "string",
            "description": "Nearest city name returned by Weatherbit."
          },
          "country_code": {
            "type": "string",
            "description": "Country code returned by Weatherbit."
          },
          "latitude": {
            "type": "number",
            "description": "Latitude returned by Weatherbit."
          },
          "longitude": {
            "type": "number",
            "description": "Longitude returned by Weatherbit."
          },
          "timezone": {
            "type": "string",
            "description": "Timezone returned by Weatherbit."
          },
          "forecast": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "datetime": {
                  "type": "string",
                  "description": "Weatherbit date or timestamp for the record."
                }
              },
              "additionalProperties": true,
              "description": "One Weatherbit weather record."
            },
            "description": "Forecast records returned by Weatherbit."
          }
        },
        "additionalProperties": false,
        "required": [
          "city_name",
          "country_code",
          "latitude",
          "longitude",
          "timezone",
          "forecast"
        ],
        "description": "Forecast response returned by Weatherbit."
      }
    },
    {
      "id": "weatherbit.get_hourly_forecast",
      "service": "weatherbit",
      "name": "get_hourly_forecast",
      "description": "Get hourly weather forecasts from Weatherbit for a location.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "latitude": {
            "type": "number",
            "minimum": -90,
            "maximum": 90,
            "description": "Latitude in decimal degrees."
          },
          "longitude": {
            "type": "number",
            "minimum": -180,
            "maximum": 180,
            "description": "Longitude in decimal degrees."
          },
          "city": {
            "type": "string",
            "minLength": 1,
            "description": "City name accepted by Weatherbit."
          },
          "state": {
            "type": "string",
            "minLength": 1,
            "description": "State or province name used with a city query."
          },
          "country": {
            "type": "string",
            "minLength": 1,
            "description": "Country code used with a city or postal code query, such as US."
          },
          "postal_code": {
            "type": "string",
            "minLength": 1,
            "description": "Postal or ZIP code accepted by Weatherbit."
          },
          "city_id": {
            "type": "integer",
            "minimum": 1,
            "description": "Weatherbit city identifier."
          },
          "language": {
            "type": "string",
            "minLength": 1,
            "description": "Language code used by Weatherbit to localize text fields."
          },
          "units": {
            "type": "string",
            "enum": [
              "M",
              "S",
              "I"
            ],
            "description": "Units system for Weatherbit measurements."
          },
          "hours": {
            "type": "integer",
            "minimum": 1,
            "maximum": 240,
            "description": "Number of forecast hours to return, from 1 to 240."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for reading hourly forecasts from Weatherbit.",
        "anyOf": [
          {
            "type": "object",
            "required": [
              "latitude",
              "longitude"
            ],
            "additionalProperties": true,
            "description": "Provide latitude and longitude."
          },
          {
            "type": "object",
            "required": [
              "city"
            ],
            "additionalProperties": true,
            "description": "Provide a city."
          },
          {
            "type": "object",
            "required": [
              "postal_code"
            ],
            "additionalProperties": true,
            "description": "Provide a postal code."
          },
          {
            "type": "object",
            "required": [
              "city_id"
            ],
            "additionalProperties": true,
            "description": "Provide a Weatherbit city ID."
          }
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "city_name": {
            "type": "string",
            "description": "Nearest city name returned by Weatherbit."
          },
          "country_code": {
            "type": "string",
            "description": "Country code returned by Weatherbit."
          },
          "latitude": {
            "type": "number",
            "description": "Latitude returned by Weatherbit."
          },
          "longitude": {
            "type": "number",
            "description": "Longitude returned by Weatherbit."
          },
          "timezone": {
            "type": "string",
            "description": "Timezone returned by Weatherbit."
          },
          "forecast": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "datetime": {
                  "type": "string",
                  "description": "Weatherbit date or timestamp for the record."
                }
              },
              "additionalProperties": true,
              "description": "One Weatherbit weather record."
            },
            "description": "Forecast records returned by Weatherbit."
          }
        },
        "additionalProperties": false,
        "required": [
          "city_name",
          "country_code",
          "latitude",
          "longitude",
          "timezone",
          "forecast"
        ],
        "description": "Forecast response returned by Weatherbit."
      }
    }
  ]
}
