A good friend and mentor wrote 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 to all APIs. He asked what questions a company should ask a vendor about their API before making a selection.
Why Do You Need APIs?
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.
Just as you type in a URL and get a response back on a web page, an API is a method where your systems can request and get a response back to synchronize data between them. As companies look to digitally transform themselves, automating tasks through APIs is a great way to improve efficiencies within the organization and reduce human error.
APIs are central 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. The marketing team or CMO may drive the purchase of an application and sometimes the development team doesn't get a lot of input.
Researching a platform's integration capabilities via an API requires more than the simple question, Is there an API?
If you sign on with an application with a poorly supported or documented API, you're going to drive your development team crazy and your integrations will likely come up short or fail altogether. Find the right vendor, and your integration will work and your development folks will be happy to assist!
Research Questions On Their API Capabilities:
- Feature Gap – 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?
- Scale – 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.
- Documentation – Ask for the API documentation. It should be robust, spelling out every feature and variable available in the API.
- Community – Ask whether or not they have an online Developer Community available for sharing code and ideas with other developers. Developer Communities are 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.
- REST vs SOAP – Ask what type of API they have… Typically there are REST APIs and Web Service (SOAP) APIs. They may be developing both. Integrating with either has benefits and curses… you should be familiar with what your integration resources' (IT) capabilities.
- Languages – 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.
- Limitations – 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.
- Samples – Do they offer a library of code examples to easily get started? Many companies publish SDK (Software Development Kits) for different languages and frameworks that will accelerate your integration timeline.
- Sandbox – Do they offer a non-production endpoint or sandbox environment for you to test your code in?
- Resources – 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!
- Security – How do they authenticate using the API? Is it user credentials, keys, or other methodologies? Can they restrict requests by IP address?
- Uptime – Ask what their API uptime and error rate are, 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?
- SLA – Do they have a Service Level Agreement where uptimes should be upwards of 99.9%?
- Roadmap – What future features are they incorporating into their API and what are the expected delivery schedules?
- Integrations – What productized integrations have they developed or that third-parties have developed? Sometimes, companies can forego internal development on features when another productized integration already exists and is being supported.
The key to these questions is that integration ‘marries' you to the platform. 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 a platform 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, SFTP drops, etc.