I was recently chatting with one of the Techstars founders and found myself asking her, "What is the API for your business?"
This may sound like an odd question, but it actually is not.
Every single startup, and every single business has an interface that it offers to the world. Some of these interfaces are super simple, like Google—all you can do is search; some are more sophisticated like ordering things from Amazon—you can browse, search, add to cart, order, request a refund, etc.
Even if you aren't an engineer or a product manager, it is really useful to think about the API that your business will offer to the world. Thinking about your business as an API allows you to gain a great deal of clarity about what your business actually does and why.
API mentality forces you to be minimalistic and clear.
What is an API?
API stands for Application Programming Interface. You can think of an API as an interface or a contract through which a software component, a web service, or in our case, a business, interacts with the world.
To put it differently, an API is a protocol for communicating, sending requests, and receiving responses from a software component, a web service, or a business.
For example, take a simple check box, a UI component that we see around the web. The interface for a check box allows you to check or uncheck it.
/check -- causes checkbox to be checked /uncheck -- causes checkbox to be unchecked
A different example of an API would be, for example, launching 10 servers on Digital Ocean's web service cloud. That API may look like this:
/launchServers?numServers=10 -- starts running servers in the cloud.
In this last example, the launchServers command allows the user of the command to specify the number of servers to launch. Most services allow this kind of customization or parametrization for maximum flexibility and reusability. It wouldn't make sense to have a different command to launch 10 or 20 servers, since it is essentially the same command.
What is the Business API?
When thinking about your business API, it is handy to think about the key concepts of your business, and commands associated with them. What can the users of your business do? Here are some simplified examples of the Business APIs that you will likely recognize:
google.com/search?term=techstars amazon.com/browse?category=books amazon.com/buy?bookId=b&customerId=c uber.com/orderCar?location=loc&customerId=c twitter.com/postTweet?text=t&userId=u facebook.com/friend?userId=u&friendId=f
Modern businesses run in the cloud, and the way we interface with them is by using HTTP protocol. This may be counterintuitive because most of us, as end users, see pretty screens and friendly apps, but the nuts and bolts interface, the actual commands, are sent over HTTP.
The reason this is important is because HTTP reminds us of the actual bare bone APIs of these businesses. These are raw, direct interfaces that ultimately define EVERYTHING we can do with these services.
How to design your Business API
Now let's focus on YOUR business. When you are starting out, you are doing a whole bunch of things—understanding your founder market fit, talking to customers, thinking about your unique insights and advantages, your go-to-market strategy, and a ton of other things.
Building the API for your business should be one of the early activities you do.
Use HTTP protocol (it is not that hard!) and map it out. Way before you build your MVP, design your API.
The exercise of designing your API will help you gain clarity about your business. You will make decisions about what you will or won't do in your MVP. You will prioritize some commands over others. You will realize, by writing on a piece of paper, whether you are doing too much or not enough.
Make your API as simple and as elegant as possible. Don't think about what to add, think about what to remove.
Your basic API will be an amazing tool for helping you communicate with your customers and with your team. It will also be a stepping stone to building your MVP.
Once you design your API, and are happy with it, implement it. One by one, get the raw API working via HTTP. That's right, you don't need fancy UX and pretty apps to start, you can get a feel for your business by implementing your API.
Evolving your API with your business
As your business evolves and grows, so will your API. Keep updating it and making it better. Keep adding to it, but be stingy. The best companies have simple APIs.
Think about Google; it has an amazingly simple interface, but it does something incredibly complex inside. Similarly, Steve Jobs always pushed Apple to make the interface as simple as possible, something that just works. Apple products hide incredible complexity and engineering ingenuity beneath a simple interface.
You want your business to be as simple as possible, and the services behind the interface as valuable as possible.
As your business grows, different parts of your business will evolve their own APIs. You will have a public interface, and internal interfaces. It is incredibly helpful to keep all your interfaces simple and clear. Push yourself to always have clean interfaces and use them.
Your own business should always be the first and biggest customer of your own API.
As your business grows, so will the ways it can be accessed.
You will have a desktop and mobile site, text messages, bots, iOS and Android apps, and dozens of other ways your business can be accessed online. All these things can be thought of as clients of your API, clients of your business.
We now live in the world of cloud services and automation. Every major web company, whether it is Google, Amazon, or Facebook, has APIs for the services they offer.
In the future, every single business will be accessed not just through a graphical user interface, but programmatically. As AI and automation enter our world, more and more transactions and access will happen through web services and APIs.
As a startup you can prepare yourself for that exciting future by simply starting to think about and writing down YOUR API.
What commands does YOUR business offer to its customers? What is YOUR API?