It depends what your startup does and your objectives. Take Twitter, for instance. They built their product around their Web API, even their Web application is a client for it now. They let the community develop clients for them, which allowed them to grow quickly. I am a strong advocate of applications built on APIs. I think ultimately most applications should be built like this. For Web applications, the front-end should never talk to the DB directly. In software, concerns should be separate and building blocks should communicate through well-defined APIs. At the system scale, building blocks are called services and this design approach is called Services Oriented Architecture. The best description of good SOA I know is found in this excerpt of the now famous Steve Yegge rant: So one day Jeff Bezos issued a mandate. He's doing that all the time, of course, and people scramble like ants being pounded with a rubber mallet whenever it happens. But on one occasion -- back around 2002 I think, plus or minus a year -- he issued a mandate that was so out there, so huge and eye-bulgingly ponderous, that it made all of his other mandates look like unsolicited peer bonuses. His Big Mandate went something along these lines: 1) All teams will henceforth expose their data and functionality through service interfaces. 2) Teams must communicate with each other through these interfaces. 3) There will be no other form of interprocess communication allowed: no direct linking, no direct reads of another team's data store, no shared-memory model, no back-doors whatsoever. The only communication allowed is via service interface calls over the network. 4) It doesn't matter what technology they use. HTTP, Corba, Pubsub, custom protocols -- doesn't matter. Bezos doesn't care. 5) All service interfaces, without exception, must be designed from the ground up to be externalizable. That is to say, the team must plan and design to be able to expose the interface to developers in the outside world. No exceptions. 6) Anyone who doesn't do this will be fired. 7) Thank you; have a nice day! That being said if you just want to make a website and you're looking for your model, maybe making an API will be a loss of time and it will be quicker for you to just make an all-in-one application that, for instance, talks directly to the DB. You can do that if you know for sure that there's over 80% chance that you will abandon or completely re-write the product anyway. tl;dr: (Usually) no APIs in prototypes, APIs in finished products.