Existe diferença entre API e Biblioteca?

Uma vez eu lí em algum lugar (não me lembro onde), que uma API é diferente de uma biblioteca.
Mas lendo o livro Java como Programar, o autor fala que os dois são a mesma coisa, na verdade, primeiro ele fala de biblioteca e depois fala que em Java essas bibliotecas são conhecidas como API.

A pergunta é se possui diferença entre os dois? se sim, quais são elas…

Obrigado desde já

Para mim, segundo evangelizam, API é igual a biblioteca.

A rigor é a mesma diferença que existe entre “interface” e “classe” - “interface” é uma especificação e “classe” é uma implementação, mas na prática você pode usar ambos (API e Biblioteca) indistintamente.
Você pode ter uma idéia melhor se eu lhe perguntar “então, o OpenOffice tem uma API para acesso a planilhas?”
Isso quer dizer: “existe uma interface programática no OpenOffice que me permita acessar planilhas?”
E se eu lhe afirmar “O JExcelAPI é uma biblioteca 100% Java que me permite criar planilhas” …