This document discusses APIs (application programming interfaces). It defines APIs and describes how they allow software components to communicate. It notes that APIs for web development typically involve HTTP requests and JSON/XML responses. The document discusses how APIs allow services to be combined into new applications ("mashups") and how websites providing APIs are becoming platforms for other programs. It also summarizes some critiques of APIs, such as limited access, changing interfaces over time, issues of control and access, and ethics around scraping data versus using APIs.