I am currently experimenting with
https://openweathermap.org/The API is simple JSON api but the 'condition codes' are not as well done nor is all the info available in 1 api call. For example, UV Index is a separate call along with day forecasts.
Start reading here.
[Link: remotecentral.com]