A portable bit of code that has a specific purpose, and is easily transferred. Successful APIs seamlessly integrate with their environments, and can share data inputs and outputs.