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

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

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

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

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

👉 И да, важный момент:
Многие путают понятие API с «интерфейсом» в смысле интерфейса пользователя. То есть с визуальной частью — кнопками, полями, формами. Это совсем не то. В программировании интерфейс — это чаще всего про способ взаимодействия кода с кодом, а не человека с экраном. API — это интерфейс, но не визуальный, а логический. То, что под капотом.