Это всегда было моим пониманием, вы, несомненно, увидите различные мнения по этому вопросу:
API (интерфейс прикладного программирования) - позволяет использовать код в уже работающем приложении в автономном режиме,
Framework - код, который предоставляет базовые классы и интерфейсы для определенного типа задачи / приложения, обычно в форме шаблона проектирования.(Хотя и не всегда)
Библиотека - Связанный код, который можно менять и вставлять по желанию для выполнения задач на уровне классауровень компонента.