The concept of the mashup
implies the combination of different data sources or functions. Practically, this often means that a mashup makes use of several APIs and tries to produce new insights or new functionalities by mixing them together. The patterns of combination are not random: one can imagine that certain APIs are brought together more often than others. This (short) project proposes to examine this dynamic more closely.
Which APIs are commonly used together? Are there significant patterns? If yes, are these patterns helping us to better understand API ecologies on the Web?
The popular website programmableweb
lists 6436 mashups and 4941 APIs (end of January 2012), detailing for every mashup the APIs used. While this is by no means a complete directory, it is the most complete of its kind.
To analyze programmableweb's listings, the website was scraped with the help of a little bit of custom PHP and a database of mashups was created. From this database, a .gdf file was generated and analyzed with the gephi
graph analysis toolkit.
The following graph shows API combination patterns as referenced by programmableweb:
To keep the graph readable, only APIs used in at least 10 mashups are visualized and APIs had to be used together at least 3 times to constitute a link. The size of a node expresses the number of mashups an API was used in and the color (a heat scale going from blue to yellow to read) shows the "degree" of a node, i.e. the number of APIs it was combined with. The graph was spatialized with Mathieu Jacomy's Web Atlas 2 algorithm.
Interesting elements in this graph include the popularity of the Google Maps API, the strong relations between the "classic" Web 2.0 services (Flickr, Youtube, Twitter) and the "commerce" axis that leads from Amazon to Ebay and further to shopping.com. One can also see that the twilio "VoIP" API is quite popular (relatively big node), but rarely used with other APIs (blue color) with the exception of the service's own SMS function. Also note that on the right of the dominant "Google Maps" node there is a large number of "geo" themed APIs that use Google Maps as their display technology.