How often do you update your database?

About once every 4-6 months. Normalizing the NPI database is an expensive and CPU/Memory intensive process. I rent the servers to do the calculations occasionally. Eventually, I will fully automate the setup and tearing down of servers in the cloud for this processing, once I do this, I will update the database monthly. At this time, this website is updated at the rate that I need it for my own purposes.

Where did you get this data?

The NPI database is provided to the public in two forms. First, the public can do a search on the NPI database here. Second, the allow the entire database to be downloaded as a flat file here.
This site is made by downloading that flatfile, normalizing it (which shows the connections between doctors... like shared address/phone/fax etc etc) and then creating denormalized search tools.
That lets me provide better search functions, and an API that will let you get at the NPI data in JSON or XML if you want it that way.

This site tracks what the public database says, so if you find information here that is wrong, it is important that you update the source by logging into NPPES here.
This site will eventually update itself against that data.

Can I get an API?

The data from DocNPI is already an API. Just take a look at the links at the very bottom of each search results page to see how to access the service using just a GET request. It is pretty self explanitory. Please use the forums if you have trouble with it. It is RESTish... not RESTful but you can easily get the data out using json, etc etc.