An API allows external programs to communicate with and access data from an internal software program. APIs enable data exchange between websites and applications while keeping the data source in the same location. Applications built using APIs that combine data and functionality from different programs are commonly called "mashups." A mashup takes existing data and makes it more useful by combining, visualizing, or aggregating it in a new context.