você conseguiria com uma única API acessar os bancos de dados de todas as escolas, mas essa definitivamente não é a melhor solução porque cada cliente pode usar um banco de dados diferente, ficaria muito dificil e inviavel manter esse sistema...
o ideal, quando vamos criar uma API que vai ser disponibilizada para diversos clientes, é criar uma API agnóstica, que todos possam utilizar sem que você se conecte no banco de dados de cada cliente...
um sistema de CEP por exemplo, qualquer API pode se conectar com esse sistema, você bate na api enviando CEP e ela te retorna o endereço...
ou um sistema de Antifraude, também é um bom exemplo, qualquer e-commerce pode se conectar com essa plataforma de antifraude durante validação do pagamento do cliente, mas o antifraude não precisa estar conectado com o banco de dados de todos os clientes que vão utiliza-lo
mas existem sistemas sim que você precisa se conectar com a base de cada cliente:
por exemplo um sistema que gera assinaturas de email no outlook, seria um produto que você acessa, desenha assinatura de email da sua empresa e clica em APLICAR, o sistema iria se conectar na base do outlook, pegar todos os emails da sua empresa e alterar a assinatura, como?
quando você fosse contratar esse serviço, a empresa iria configurar seu acesso na plataforma, pegar as credenciais do seu outlook e salvar essas configurações, tudo isso pra você conseguir gerar sua assinatura, seria mais ou menos assim:
dessa forma eu consigo ter diversas empresas utilizando minha API, porque todas elas tem algo em comum: utilizam outlook
entao eu tenho uma base de dados com as credenciais de todos meus clientes para acessar o outlook deles e realizar alteração da assinatura