Sets of rules and protocols that allow different software applications to communicate and interact with each other.