Fun APIs
on the CS50 Wiki
Below are application programming interfaces (APIs) that CS50's staff find fun. To suggest additions to the list, email sysadmins@cs50.net. Actually, some of the below are just data sets in CSV or RSS format more than they are APIs. But surely you can parse either using, e.g., PHP! Check out these Neat Tricks to learn how.
Contents |
Calendars
- Google Calendar. "Google Calendar Data API allows client applications to view and update calendar events in the form of Google Data API feeds."
E-commerce
- Google Checkout. "Google Checkout allows buyers in over 140 countries to purchase goods and services using a credit or debit card through our fast, secure checkout process."
- PayPal. "If you want to accept payments on a website or web application, you can find information on integrating PayPal right here."
Finance
- Google Finance API. "Google Finance offers a variety of ways to access data programmatically, including the Google Finance Portfolio Data API and the ability to create financial gadgets."
- Yahoo Finance
- CSV. "Here's a neat way to download stock data from Yahoo, perhaps into a spreadsheet (so you can play with the data)."
- RSS. "Yahoo! Finance is now offering company news feeds in the RSS format. Using the RSS URL Generator below, you can construct the URL you'll need to subscribe to news about your favorite companies."
Graphics
- Google Charts Tools. "The Google Chart Tools enable adding live charts to any web page."
- Prefuse. "Prefuse is a set of software tools for creating rich interactive data visualizations. The original prefuse toolkit provides a visualization framework for the Java programming language. The prefuse flare toolkit provides visualization and animation tools for ActionScript and the Adobe Flash Player."
- XML/SWF Charts. "XML/SWF Charts is a simple, yet powerful tool to create attractive charts and graphs from XML data."
Harvard
- Harvard University PIN System. "The Harvard University PIN System provides centralized authentication services for online applications affiliated with the University."
- iSites. "iSites is a web publishing system that enables all members of the Harvard community — students, faculty, teaching fellows, and staff — to develop and administer course management sites, community sites, portals, and intranets, with flexibility and ease."
- Q Guide. "We've compiled a handy spreadsheet of Q Guide data you can use to sort by various rankings."
And don't forget CS50's own APIs.
JavaScript
- Dojo Toolkit. "The Dojo Toolkit is an open-source JavaScript toolkit useful for building great web applications. It aims to shorten the timespan between idea and implementation by providing an exceptionally well conceived API and set of tools for assisting and fixing the issues experienced in everyday web development."
- Ext JS. "Ext JS is a cross-browser JavaScript library for building rich internet applications."
- Google Closure. "The Closure tools help developers to build rich web applications with JavaScript that is both powerful and efficient."
- Google Web Toolkit. "Writing web apps today is a tedious and error-prone process. Developers can spend 90% of their time working around browser quirks. In addition, building, reusing, and maintaining large JavaScript code bases and AJAX components can be difficult and fragile. Google Web Toolkit (GWT), especially when combined with the Google Plugin for Eclipse, eases this burden by allowing developers to quickly build and maintain complex yet highly performant JavaScript front-end applications in the Java programming language."
- jQuery. "jQuery is a fast and concise JavaScript Library that simplifies HTML document traversing, event handling, animating, and Ajax interactions for rapid web development. jQuery is designed to change the way that you write JavaScript."
- MooTools. "MooTools is a compact, modular, Object-Oriented JavaScript framework designed for the intermediate to advanced JavaScript developer. It allows you to write powerful, flexible, and cross-browser code with its elegant, well documented, and coherent API."
- Prototype. "Prototype is a JavaScript Framework that aims to ease development of dynamic web applications."
- script.aculo.us. "script.aculo.us provides you with easy-to-use, cross-browser user interface JavaScript libraries to make your web sites and web applications fly."
- Yahoo! User Interface Library. "YUI 2 is a JavaScript and CSS library with more than 30 unique components including low-level DOM utiltiies and high-level user-interface widgets."
Maps
- Bing Maps. "Developers using Bing Maps for Enterprise have access to rich tool sets, user forums, and enterprise-level Microsoft support for building map-based solutions."
- Google Maps API. "The Google Maps API lets you embed Google Maps in your own web pages with JavaScript. The API provides a number of utilities for manipulating maps (just like on the http://maps.google.com web page) and adding content to the map through a variety of services, allowing you to create robust maps applications on your website."
- MassDOT/MBTA Real-Time XML TRIAL Feed. "The trial feed includes data for bus route 39 which serves Jamaica Plain, the Longwood Medical Area, and Back Bay in Boston; and bus routes 111, 114, 116, and 117 which serve Haymarket Station, East Boston, Chelsea, and Revere."
- Yahoo! Maps Web Services. "Yahoo! Maps APIs let you easily embed rich and interactive maps into your web and desktop applications using your choice of platform: we provide Flash, Ajax and Map Image APIs."
Mobile
- Android SDK
- App Inventor. "App Inventor for Android lets you create new mobile applications, even if you don't have a programming background. With it, you can explore communication, location-awareness, social networking, and massive Web-based data collections." CS50 is among the "participating colleges and universities." Email Alex Hugon from your harvard.edu address for access to the software.
- Java. "The Android SDK provides the tools and APIs necessary to begin developing applications that run on Android-powered devices."
- BlackBerry Developer Zone. "The central place for developers to get tools, resources and information to develop, test and distribute for the BlackBerry Application Platform." You may also find RIM's academic content and resources helpful.
- iPhone SDK. "The iPhone Dev Center provides access to technical resources and information to assist you in developing with the latest technologies in iPhone OS." You don't need to pay $99 or $299. CS50 is already a member of the iPhone Developer Program. Drop sysadmins@cs50.net a nice note from your harvard.edu address requesting an invitation to join our account.
- TextMarks. "With the TextMarks Mobile Application Services Platform, you have access to powerful text messaging functionality for integration into your existing and new web and enterprise applications."
- Zeep Mobile. "Zeep Mobile is a simple ad-supported SMS API that any web app can use to communicate with its users via SMS—for FREE!"
News
- Google News. "Aggregated headlines and a search engine of many of the world's news sources."
- Guardian Open Platform. "The Open Platform is a suite of services that enables partners to build applications with the Guardian. The first two products released as part of the platform are the Content API and the Data Store. The Content API is a mechanism for selecting and collecting Guardian content. The Data Store is a directory of important and useful data sets curated by Guardian journalists."
- HarvardNews API. "HarvardNews aggregates RSS channels from all over campus."
- New York City Baby Names. From Department of Health and Mental Hygiene.
Photos
- Flickr API. "The Flickr API is available for non-commercial use by outside developers."
Profanity
- CDYNE Profanity Filter Web Service. "CDYNE's FREE Profanity Filter API is a simple, but elegant way to remove words that are considered profanity to keep professionalism in online web-based applications using XML Web Services."
- WebPurify Profanity Web Service. "The WebPurify profanity filter web service has become the industry standard for profanity filtering." You don't need to pay $100. CS50 has an API key that you can use. Drop sysadmins@cs50.net a nice note from your harvard.edu address for the key.
Search
- Google AJAX Search API. "The Google AJAX Search API lets you put Google Search in your web pages with JavaScript. You can embed a simple, dynamic search box and display search results in your own web pages or use the results in innovative, programmatic ways."
- Google Custom Search. "With Google Custom Search, you can harness the power of Google to create a customized search experience for your own website."
- MediaWiki API. "The goal of this API (Application Programming Interface) is to provide direct, high-level access to the data contained in the MediaWiki databases [like Wikipedia]."
- Yahoo! Search BOSS. "BOSS (Build your Own Search Service) is Yahoo!'s open search web services platform."
Social Networking
- DISQUS Comments. "DISQUS Comments is a better comment system for your site."
- Facebook Platform. "You can build rich applications that run on Facebook and let users interact with each other. Or, with Facebook Connect, you can bring the social power of the Facebook Platform to your own website, device or application off of Facebook.com."
- Google Wave API. "Google Wave is a product that helps users communicate and collaborate on the web. A "wave" is equal parts conversation and document, where users can almost instantly communicate and work together with richly formatted text, photos, videos, maps, and more. Google Wave is also a platform with a rich set of open APIs that allow developers to embed waves in other web services and to build extensions that work inside waves."
- Twitter API. "The Twitter REST API methods allow developers to access core Twitter data. This includes update timelines, status data, and user information. The Search API methods give developers methods to interact with Twitter Search and trends data."
Videos
- YouTube APIs and Tools. "The YouTube APIs and Tools let you bring the YouTube experience to your webpage, application, or device."

