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.Wikipedia
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? And the next question:
What Type Of APIs Are There?
There are many different types of API technologies, each with its own specific features and use cases. The type of API technology that is best for your application will depend on your specific needs and requirements. Here are 6 common types of API technologies:
- REST APIs – REST APIs are a type of web API that uses HTTP methods (such as GET, POST, PUT, and DELETE) to retrieve and manipulate data. REST APIs are designed to be lightweight and flexible, and are often used for building web and mobile applications.
- SOAP APIs – SOAP (Simple Object Access Protocol) APIs are a type of web API that uses XML (Extensible Markup Language) to encode data and transmit it over HTTP. SOAP APIs are more standardized and structured than REST APIs, and are often used in enterprise environments where security and reliability are important.
- GraphQL APIs – GraphQL is a query language for APIs that allows developers to request specific data from an API rather than receiving a fixed set of data. GraphQL APIs are flexible and allow developers to request only the data they need, which can improve performance and reduce data waste.
- Webhooks – Webhooks are a type of API technology that allows a server to send data to a client in real-time, rather than the client having to request data from the server. Webhooks are often used to enable real-time communication between applications and to trigger actions when certain events occur.
- Cloud APIs – Cloud APIs allow developers to access and interact with cloud computing services, such as storage, databases, and analytics. These APIs can help developers to build and deploy applications more efficiently and effectively.
- Hardware APIs – Hardware APIs allow developers to access and control hardware devices, such as sensors, cameras, and printers. These APIs can be used to build applications that interact with and control physical devices.
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.
- Types of API – Familiarity with the type of API you’re utilizing, integrations can be quite easy. The opposite is true, though, if you’re unfamiliar with the features and requirements to utilize an API.
- 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 its 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.