API (интерфейс программирования приложений) - это набор готовых функций, классов, констант для использования во внешних программах. API выполняет определенные действия, при этом позволяя полностью абстрагироваться от того, как на самом деле реализован механизм выполнения этих действий. По сути, это эдакий черный ящик, из которого программист может получать данные с помощью предоставленных методов доступа к этим данным.

Компоненты API взаимодействуют между собой, образуя иерархию между высокоуровневыми и низкоуровневыми, каждый из который пользуется функционалом предудущего, вышележащего компонента. 

Допустим, для отображения какого либо текста в браузере вы создаете файл с HTML разметкой и текстом. Далее, за дело берется браузер. Он открывает файл, интерпретируя HTML разметку в понятное для пользователя представление - из HTML кода, который понятен программисту, преобразовывает его в визуальные элементы. Сам браузер является такой же обычной программой, которая запускается на операционной системе компьютера. Выводимый в браузере текст операционная система передает на устройства вывода информации - монитор, который в свою очередь с помощью низкоуровневых сложных операций выводит видимый текст на монитор. Во время выполнения этих действий производится запуск функций множеств API, начиная от высокоуровневых и заканчивая низкоуровневыми, API браузера и операционной системы. 

API позволяется получать данные одной программы внутри другой, обмениваться ими с множеством других программы. Обычно, API принято разделять на внешнее, или публичное, методы которого доступны всем для использования, и внутренние, или внешние, методы которого закрыты от использования и могут использоватья только по строго отведенному доступу, либо  тольку внутри самой программы. Например, почти все операционные системы имеют API, с помощью которого программисты создают программы.

Некоторое отличие API множества операционных системы, или отдельных программ, могут затруднять перенос программ между другими платформами. Поэтому есть так называемые промежуточные API, которые одинаково реализуют выполнения функционала на разных платформах.