We measure each API that we evaluate for what we call Stream Rank (see here)
. We take each API definition we create, and then programmatically connect to the API, poll responses for a 24-48 period at minimum, and work to measure how much an API actually changes. Applying a percentage score from 0 to 100 to help quantify how often the data changes, helping identify the benefits and potential for streaming the results from the API using Streamdata.io. We've been benchmarking APIs for some time now, but we are just getting started formalizing the score as what we now call Stream Rank--making it easy to identify the most real time APIs that exist out there.
How much the data and content available via an API changes is extremely relevant to understanding the nature of an API, but as we work to profile more APIs we feel like there are other factors we need to be considering. Elements that also cause friction in putting APIs to work, even the ones that have data that change frequently. Authentication and pricing we feel both introduce friction that slow the on-boarding with an API, but also have the potential to slow the overall speed at which data and content will flow through an API. Rate limits are often imposed on anonymous, or even specific groups of authenticated users, which will work to slow the flow of data, and should be something we consider as we measure Stream Rank. If you can't get at the full stream of an API, due to authentication or pricing, then it's Stream Rank is lower, no matter what is possible.
Stream Rank is new. We are just getting started defining what it means. Right now is it based upon the changes present within API responses collected over a 24-48 hour period. Once we have enough APIs profiled we will be extending that time period to measure API responses over a week, looking for other event-based considerations that may happen on specific days of the week, or at specific times of the day. Once we get through this portion of our profiling, then we will look at trying to quantify and measure the friction introduced through authentication and on-boarding, as well as with plans, pricing, and rate limiting. Maybe adding a weight to the score if an API requires authentication, or imposes heavy rate limits that might impact the flow of data through an API. Further allowing our customers to find exactly the types of APIs they want, and allowing them to filter out harder to use APIs, even if they do potentially offer high volume streams--enabling them to just look at the low hanging fruit.
Ultimately it is up to the API consumer to determine how much work is reasonable to get at the resources they desire. This is the balance all API providers will face when it comes to providing access to their valuable data, content, and algorithms. Our goal with Stream Rank is to help apply a simple, easy to understand score to APIs that help API consumers understand their potential in a very noisy, increasingly event-driven and real time data landscape. We want to help consumers identify not just the fast changing, high volume APIs, but also the ones that are the easiest to get at. As we have said before, Streamdata.io isn't just about streaming data using existing APIs, we are about helping streamline the process of putting data to work in a real time, event-driven world. Assisting API providers in minimizing friction at the technological, and business layers of their operations.