A good friend and mentor of mine is writing a book right now. I hope he doesn’t mind, but he posed a question to me and I’d like to use my responses for this post. His questions were a little more focused on one industry (Email), so I’ve generalized my responses. Once his book is published, you’ll see a lot of news about it on my site!
An application programming interface (API) is the interface that a computer system, library or application provides in order to allow requests for services to be made of it by other computer programs, and/or to allow data to be exchanged between them. – Wikipedia
Without a doubt, APIs are the key to automation, especially in marketing applications. One of the challenges when shopping for a great vendor with a comprehensive API is that development resources and expenses are usually an after-thought. Marketers drive the purchase of an application and IT is usually along for the ride. If you sign on with an application with a poor API, you’re going to drive your IT folks crazy and your integration will likely fail. Find the right vendor, and your integration will work and your IT folks will be happy to assist!
10 Questions you must ask regarding an API:
- Identify what features of their User Interface are available via the Application Programming Interface. What features does the API have that the UI doesn’t and vice versa?
- Ask how many calls are made to their API daily. Do they have a dedicated pool of servers? Quantity is incredibly important since you want to identify whether the API is an afterthought or actually part of the company’s strategy.
- Ask for the API documentation. It should be robust, spelling out every feature and variable available in the API.
- Ask whether or not they have an online Developer Community available for sharing code and ideas with other developers. Developer Communities are a key to launching your development and integration efforts quickly and efficiently. Rather than leveraging ‘the API guy’ at the company, you’re also leveraging all of their customers that have already had trials and errors integrating their solution.
- Ask what their API uptime and error rate is, and when their maintenance hours are. As well, strategies to work around them are important. Do they have internal processes that will re-attempt API calls in the event the record is unavailable due to another process? Is this something that they have engineered in their solution? Uptime should be upwards of 99.9%; however, what matters more is how it will affect your operation and productivity.
- Ask what type of API they have… Typically there are REST APIs and Web Service APIs. They may be developing both. Integrating with either has benefits and curses… you should be familiar with what your integration resources’ (IT) capabilities.
- Ask what platforms and applications they have successfully integrated with and request contacts so that you can find out from those customers how difficult it was to integrate and how well the API runs.
- Ask what limitations the vendor has in number of calls per hour, per day, per week, etc. If you are not with a scalable vendor, your growth will be limited by the customer.
- Ask what professional API organizations the company is involved in and who their mentors are for further development of their API. (Mashup Camp, Programmable Web). Relationships with organizations like this bring authority and reputation to a vendor – as well as exposing them to best practices.
- Ask if they have dedicated Integration resources within their company. Do they have an internal consulting group available for integration? If so, throw some hours in the contract!
Key here is that integration brings your applications and processes and ‘marries’ them to your Application Provider. You don’t want to marry someone without getting to know as much as you can about them, do you? This is just what happens when folks buy an ESP without knowledge of their integration capabilities.
Beyond an API, you should also try to find out what other integration resources they may have: Barcoding, mapping, data cleansing services, RSS, Web Forms, Widgets, formal Partner Integrations, Scripting Engines, etc.