@maesterjay I am not saying I can explain what you found. Again, I experienced a similar thing, I had the 7 degrees on my mirror (and also checked the API output manually - which also said 7 degrees). At the same time I went on to the website (as you did) and there everything was ok. I do not know where this mismatch between API and website comes from.
But at the time I found the issues I described, I went through the code myself and had a detailed look into the API, the endpoints of the API are definitely the correct ones chosen, it is just, that they output different data, than the website does for whatever reason. Maybe they are calculated separately, or are refreshed at different times? It might be worth a shot, and ask the openweathermap guys.
I think the exact number matching is a coincidence, since the three hourly data is not even pulled from the API in the magic mirror source code, also there are different endpoints for the current weather, the daily forecast, and the three hourly forecast, they can not be mixed up, and the latter does not even appear in the source code.