{
  "service": "weatherapi",
  "displayName": "WeatherAPI",
  "categories": [
    "Location",
    "Data"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "WEATHERAPI_API_KEY",
      "description": "WeatherAPI key passed as the key query parameter. Sign up at https://www.weatherapi.com/signup.aspx, then find your API key under your account.",
      "extraFields": []
    }
  ],
  "homepageUrl": "https://www.weatherapi.com",
  "actions": [
    {
      "id": "weatherapi.get_astronomy",
      "service": "weatherapi",
      "name": "get_astronomy",
      "description": "Get astronomy information for a WeatherAPI location query and date.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "minLength": 1,
            "description": "Location query accepted by WeatherAPI, such as a city name, coordinates, or location id."
          },
          "date": {
            "type": "string",
            "minLength": 1,
            "description": "Date string in YYYY-MM-DD format for astronomy lookup."
          }
        },
        "additionalProperties": false,
        "required": [
          "query",
          "date"
        ],
        "description": "Input parameters for reading astronomy data from WeatherAPI."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "location": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "WeatherAPI location payload."
          },
          "astronomy": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "WeatherAPI astronomy payload."
          }
        },
        "additionalProperties": false,
        "required": [
          "location",
          "astronomy"
        ],
        "description": "Astronomy payload returned by WeatherAPI."
      }
    },
    {
      "id": "weatherapi.get_current_weather",
      "service": "weatherapi",
      "name": "get_current_weather",
      "description": "Get current weather conditions for a WeatherAPI location query.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "minLength": 1,
            "description": "Location query accepted by WeatherAPI, such as a city name, coordinates, or location id."
          },
          "language": {
            "type": "string",
            "minLength": 1,
            "description": "Optional language code used by WeatherAPI to localize text fields."
          }
        },
        "additionalProperties": false,
        "required": [
          "query"
        ],
        "description": "Input parameters for reading current weather from WeatherAPI."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "location": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "WeatherAPI location payload."
          },
          "current": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "WeatherAPI current weather payload."
          }
        },
        "additionalProperties": false,
        "required": [
          "location",
          "current"
        ],
        "description": "Current weather payload returned by WeatherAPI."
      }
    },
    {
      "id": "weatherapi.get_forecast",
      "service": "weatherapi",
      "name": "get_forecast",
      "description": "Get weather forecast data for a WeatherAPI location query.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "minLength": 1,
            "description": "Location query accepted by WeatherAPI, such as a city name, coordinates, or location id."
          },
          "days": {
            "type": "integer",
            "minimum": 1,
            "maximum": 14,
            "description": "Number of forecast days to request, between 1 and 14."
          },
          "date": {
            "type": "string",
            "minLength": 1,
            "description": "Date string in YYYY-MM-DD format used by WeatherAPI date-aware endpoints."
          },
          "language": {
            "type": "string",
            "minLength": 1,
            "description": "Optional language code used by WeatherAPI to localize text fields."
          }
        },
        "additionalProperties": false,
        "required": [
          "query",
          "days"
        ],
        "description": "Input parameters for reading forecast data from WeatherAPI."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "location": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "WeatherAPI location payload."
          },
          "current": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "WeatherAPI current weather payload."
          },
          "forecastDays": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "Single WeatherAPI forecast day payload."
            },
            "description": "Forecast day payloads returned by WeatherAPI."
          }
        },
        "additionalProperties": false,
        "required": [
          "location",
          "current",
          "forecastDays"
        ],
        "description": "Forecast payload returned by WeatherAPI."
      }
    },
    {
      "id": "weatherapi.get_timezone",
      "service": "weatherapi",
      "name": "get_timezone",
      "description": "Get timezone information for a WeatherAPI location query.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "minLength": 1,
            "description": "Location query accepted by WeatherAPI, such as a city name, coordinates, or location id."
          }
        },
        "additionalProperties": false,
        "required": [
          "query"
        ],
        "description": "Input parameters for reading timezone data from WeatherAPI."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "location": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "WeatherAPI location payload."
          },
          "timezone": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "WeatherAPI timezone payload."
          }
        },
        "additionalProperties": false,
        "required": [
          "location",
          "timezone"
        ],
        "description": "Timezone payload returned by WeatherAPI."
      }
    },
    {
      "id": "weatherapi.search_locations",
      "service": "weatherapi",
      "name": "search_locations",
      "description": "Search locations supported by WeatherAPI.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "minLength": 1,
            "description": "Location query accepted by WeatherAPI, such as a city name, coordinates, or location id."
          }
        },
        "additionalProperties": false,
        "required": [
          "query"
        ],
        "description": "Input parameters for searching WeatherAPI-supported locations."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "results": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "Single WeatherAPI location search result."
            },
            "description": "Matched WeatherAPI location results."
          }
        },
        "additionalProperties": false,
        "required": [
          "results"
        ],
        "description": "Location search results returned by WeatherAPI."
      }
    }
  ]
}
