> Fetch clean Markdown by appending `.md` to any page URL under https://signalwire.com/docs or requesting it with the HTTP header `Accept: text/markdown`. The root index at https://signalwire.com/docs/llms.txt lists the available documentation indexes. # WeatherApiSkill > Get current weather conditions for any location using the OpenWeatherMap API. [add-skill]: /docs/server-sdks/reference/typescript/agents/agent-base/add-skill Get current weather conditions for any location using the OpenWeatherMap API. > **Note** > > **Provider note:** This skill uses OpenWeatherMap > (`api.openweathermap.org/data/2.5/weather`), not WeatherAPI.com. An > OpenWeatherMap API key is required — a WeatherAPI.com key will not work. > Obtain a key at [https://openweathermap.org/api](https://openweathermap.org/api). **Class:** `WeatherApiSkill` **Tools:** `get_weather` (configurable via `tool_name`) **Env vars:** `WEATHER_API_KEY` **`api_key`** `string` — required OpenWeatherMap API key. Falls back to the `WEATHER_API_KEY` environment variable when the config value is not supplied. --- **`tool_name`** `string` — default: get\_weather Custom name for the generated weather tool. --- **`units`** `string` — default: fahrenheit Temperature units. Preferred values: `"metric"` (Celsius), `"imperial"` (Fahrenheit), or `"standard"` (Kelvin). Python SDK aliases are also accepted: `"celsius"` → `"metric"`, `"fahrenheit"` → `"imperial"`. --- ```typescript {6-8} import { AgentBase, WeatherApiSkill } from '@signalwire/sdk'; const agent = new AgentBase({ name: 'assistant', route: '/assistant' }); agent.setPromptText('You are a helpful assistant.'); await agent.addSkill(new WeatherApiSkill({ units: 'imperial', })); agent.run(); ``` > Get current weather conditions for any location using the OpenWeatherMap API.