# Rain Parrot weather > Public weather forecasts and observed rain radar for cities and towns worldwide. ## Find a place - [Weather app](https://rainparrot.com/): local weather, maps and history; opens a nearby centre for new visitors. - [Place directory](https://rainparrot.com/weather/locations): crawlable links for the curated catalogue. - [Place directory JSON](https://rainparrot.com/weather/locations.json): stable identifiers, coordinates, timezone and weather_path. - [API description](https://rainparrot.com/weather/openapi.json): read-only endpoints and response contracts. ## Read weather - [Perth weather](https://rainparrot.com/perth): server-rendered weather and interactive app. - [Perth JSON](https://rainparrot.com/perth.json): complete weather snapshot, units and field provenance. - [Perth Markdown](https://rainparrot.com/perth.md): concise weather text and forecast tables. Use the returned weather_path for any catalogue or search result; append .json or .md for alternate representations. Search supports additional cities and towns beyond the curated directory. Major places have short descriptive paths such as /perth or /london. A region distinguishes secondary places with the same name, for example /london-ontario. Verified towns outside the catalogue retain a GeoNames identifier. Earlier /radar/name and /weather/country/name-id links permanently redirect to the root location URL in one hop. Country directories such as /weather/australia link to their cities and towns. For measured wind, use /v1/weather_stations?latitude=…&longitude=…&radius_km=100&metric=wind, then /v1/weather_stations/{id}/observations for each station's past 24 hours. Wind-only coastal stations can lack temperature. Mean and gust speeds are km/h; direction is the bearing the wind comes from. Keep each station's identity and observation timestamps separate; gaps and nulls are unavailable, never forecast replacements. ## Interpretation Snapshots include generated_at, forecast_updated_at, timezone and current.updated. Check field validity times and source provenance; a generated snapshot does not imply that every observation is new. JSON numeric temperatures are degrees Celsius, wind speeds km/h, and precipitation mm over each row's period_minutes. Missing/null readings mean unavailable, never zero. Minute-rain intensity is a qualitative radar scale, not mm/h. Preserve unavailable, unconfirmed and successful minute-rain states. Radar shows observed history, not future rain. Model precipitation is a separate forecast. Sources vary by location and field, including BOM, Open-Meteo, Foreca and ECMWF; retain the sources and model identifiers supplied with each reading. Modelled tide heights are relative to mean sea level, not local chart datum, and are unsuitable for navigation. These are public, read-only endpoints; no device registration is required. Reuse snapshots briefly rather than fetching repeatedly. The interactive app refreshes weather once a minute. HTTP failures indicate unavailable data; do not infer dry weather from them. Page titles, descriptions, canonical links, structured data and JSON/Markdown representations identify the same verified place. View parameters such as ?view=map retain the extensionless place URL as canonical. Social images at the place path plus .png are evergreen location cards and contain no current measurements.