O user1 já deu uma boa explicação, porém gostaria de adicionar e complicar um pouco mais a questão. API (Interface de Programação de Aplicações) é basicamente a parte do software que é exposta para interação com outros programas. Funciona de maneira similar ao conceito de HMI (Interface Homem-Máquina), que é a parte do software exposta para o usuário. No contexto da web, o termo API frequentemente se tornou sinônimo de endpoints HTTP, enquanto HMI virou frontend.
No entanto, é importante destacar que os conceitos de frontend e backend não são exclusivos da web e não possuem definições precisas. De forma geral, o frontend é a parte do software com a qual o usuário interage diretamente, podendo ser uma interface gráfica para o usuário final, ou até mesmo um endpoint http para outro desenvolvedor. Enquanto o backend é a parte do software que fica oculta do usuário. A openAI por exemplo, oferece uma API web, que é frontend para o serviços de "inteligência" que a empresa oferece.
Para expandir ainda mais sua compreensão, sugiro que veja a página com toda a API do libclang, que é um frontend do LLVM. Isso pode te ajudar a entender melhor como esses conceitos vão muito além do desenvolvimento web. O link é: https://clang.llvm.org/doxygen/group__CINDEX.html.
É um exemplo interessante que ilustra a flexibilidade destes conceitos, o clang oferece uma API através da qual outro programa de computador pode interagir com o processo de compilação de um software. A libclang é tanto um frontend, quanto uma API, pois ele é a "frente" que lida com a entrada do código fonte, apenas prepara os dados para o processamento subsequente. O LLVM, é o backend do sistema de compilação, executando o "verdadeiro" trabalho do e compilação e otimizaçã do código, operando perando no "back end" — um termo que, traduzido livremente e aplicado ao nosso contexto, poderia ser "nas sombras", "sem ser visto", para transformar a representação intermediária em um programa executável.
Complemento a explicação com a introdução do conceito cliente-servidor. Este padrão de design cliente-servidor é essencial na computação e forma a base sobre a qual a web foi construída. Apesar da evolução, o modelo fundamental permanece: o cliente (geralmente o navegador ou browser, no contexto da web) representa o que o usuário vê e interage, ou seja, o frontend. O servidor, por outro lado, é o backend, realizando processos e armazenamento de dados fora da visão do usuário. O cliente e o servidor se comunicam através de uma API.