"API - это интерфейс, для работы с какой либо сущностью/объектом/классом/бд"
В какой-то степени - да. Но я бы определил так:
API - это контракт между системами, каким образом данные передаются от одной к другой, т.е. некая спецификация описывающая формат обмена. Благодаря наличию контракта каждая из систем может однозначно определить, что запросила или ответила другая система.
Здесь есть важные моменты: обе системы в курсе о спецификации и она не оставляет возможности иного толкования.
И, кстати, зачастую эти системы могут быть написаны на разных языках, или переписаны на другие языки, но формат обмена остается универсальным, и одним и тем же.