I want to write an application that will be running on several phones (android, windows phone, iphone, etc'...).
My application will need access to the phone API's. In order to write one UI (and re-use it over the different platforms), I thought of using HTML 5 for UI. Can I call the phones API from the HTML/javascript? Or I must use the phone UI technology?
There are actually quite a few application platforms that can do this. Try looking into:
PhoneGap - Supports Android, iPhone, Windows Phone and others.
Appcelerator Titanium - Supports Android and iPhone currently, and working on BlackBerry support
as well as others such as RhoMobile (Ruby on Rails, not pure HTML). I'm personally using PhoneGap and like it. It is easy to set up and very lightweight, but if you're looking for something more integrated UI-wise, you should check out Titanium with its KitchenSink app. If you're looking for a full application stack then RhoMobile is the way to go, but keep in mind that it uses Ruby on Rails (but still deploys to numerous devices). All three are currently free and open to use.
Even if you decide to develop from scratch I would take a look at a couple of those applications to gather up ideas.