A good friend and mentor wrote to me with a question, and I’d like to use my responses for this post. His questions focused more on one industry (Email), so I’ve generalized my responses. He asked what questions a company should ask a vendor about their application programming interface API before selecting.
Why Do You Need APIs?
APIs are crucial in enabling seamless integration between various systems, applications, and services. For example, when you use a mobile app to check the weather, the app typically communicates with an external service’s API to retrieve up-to-date weather data. Another common example is social media platforms allowing developers to integrate features like sharing or posting content from other apps.
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 transform themselves, automating tasks through APIs digitally is a great way to improve organizational efficiencies and reduce human error.
APIs are central to automation, especially in marketing applications. One challenge when shopping for a great vendor with a comprehensive API is that development resources and expenses are usually an afterthought. The marketing team or CMO may drive the purchase of an application, and sometimes, the development team doesn’t get a lot of input.
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 best for your application will depend on your particular needs and requirements. Here are six 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. They 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 web API types that use 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 data set. GraphQL APIs are flexible and allow developers to request only the needed data, 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. They 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 build applications that interact with and control physical devices.
If you sign on with an application with a poorly supported or documented API, you’ll 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:
Researching a platform’s integration capabilities via an API requires more than the simple question: Is there an API? There are follow-up questions! Here is a comprehensive list of questions to ask a company about their APIs, covering various critical aspects like versioning, regulatory compliance, security, uptime, and more:
General Overview
What is the primary purpose of your API, and how does it align with your company’s overall strategy?
What API types do you offer (REST, SOAP, GraphQL, etc.)?
Are there any unique features your API offers that competitors don’t?
Feature Gap Analysis
What features available in your User Interface are accessible through the API?
Are there any exclusive features on the API that aren’t in the UI, or vice versa?
How often do you release new features, and are they simultaneously released for both UI and API?
Versioning and Updates
How do you handle versioning for your API?
How are clients notified of deprecations or major changes in API versions?
Are there backward-compatible updates, or do new versions require code changes on the client side?
Do you support multiple versions simultaneously? If so, for how long?
Scalability and Performance
How many API calls are made to your servers daily?
Is there a dedicated server pool for the API, or does it share resources with other services?
How do you handle scaling as demand increases? Do you have provisions for sudden spikes in traffic?
Documentation and Support
Can we access the API documentation? How frequently is it updated?
Does the documentation provide detailed explanations of every feature and variable?
Are there code examples, SDKs, or libraries for different languages and frameworks?
What support channels are available for API issues? (e.g., live chat, email, dedicated account manager)
Developer Community and Resources
Do you have an online Developer Community for sharing code, best practices, and integration experiences?
Are there developer forums, FAQs, or knowledge bases specifically for API users?
Do you have dedicated integration resources or internal consultants available for clients?
Can you provide references or contacts from companies successfully integrated with your API?
Integration Compatibility
What data formats does the API support (e.g., JSON, XML, etc.)?
What platforms, applications, and programming languages have been successfully integrated with your API?
Are there existing productized integrations with third-party (3P) tools?
Do you offer a library of code samples to accelerate integration efforts?
Can we access a sandbox or non-production environment for testing?
Limitations and Rate Limits
What API rate limits are in place (e.g., calls per second, minute, hour)?
Are there different rate limits depending on the type of data accessed?
Are rate limits negotiable based on usage levels or subscription plans?
Security and Compliance
How does your API authenticate users? (e.g., API keys, OAuth, token-based, etc.)
Are there options to restrict API access by IP address or location?
What encryption standards do you follow for data in transit and at rest?
Are there specific regulatory certifications the API adheres to, such as GDPR, HIPAA, or PCI-DSS?
What data privacy measures are in place to ensure compliance with international regulations?
10. Reliability and Uptime
What is the average uptime for your API?
Do you provide a public uptime dashboard?
What is the error rate, and how is it tracked?
Do you have specific maintenance hours, and how are clients notified?
Are there automated retry mechanisms in the event of a downtime or outage?
Service Level Agreements (SLA)
Do you offer an SLA for your API, and what is the guaranteed uptime?
What is your typical response time for API issues, as outlined in the SLA?
Are there any financial or service credits in place for SLA breaches?
Future Roadmap
Can you share a roadmap of upcoming features and updates to the API?
How frequently are new versions or major updates released?
Do you involve clients in beta testing or feedback sessions for new features?
Monitoring and Logging
Do you provide logging or monitoring tools for API activity?
Can clients access usage statistics to track call volumes, error rates, and performance?
Are there built-in tools for tracking user activity and detecting anomalies?
Billing and Pricing Structure
What is the pricing model for API access (e.g., pay-per-call, tiered subscription)?
Are there additional charges for higher usage levels or premium features?
Can pricing be customized based on the volume or specific use cases?
Integration and Onboarding Process
What is the typical onboarding process for new API users?
Do you offer any consulting services to assist with initial setup and integration?
How long does it typically take to complete an integration, and what resources are needed?
These questions will thoroughly understand a company’s API, including its capabilities, limitations, and support structure. This approach is crucial in selecting an API that aligns with your needs, supports future growth, and provides the reliability and security necessary for business-critical applications.
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 happens when folks buy a platform without knowing 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.
©2024 DK New Media, LLC, All rights reserved | Disclosure
Originally Published on Martech Zone: 50+ Questions You Should Ask About A Vendor’s API Before Selecting A Platform