Um erro 500 está sempre relacionado ao servidor. Os sintomas podem ocorrer apenas com um navegador específico, mas é o servidor que está falhando; a solicitação que está sendo enviada ao servidor está fazendo com que o código do lado do servidor falhe de alguma forma.
O erro 500 por si só é muito genérico; sem saber mais detalhes sobre o erro, é sempre muito difícil diagnosticar e, francamente, não poderei dar uma resposta definitiva aqui.
Do seu lado, você deve descartar o óbvio e verificar as configurações do seu navegador no IE. Especificamente, quaisquer configurações que possam causar falha na comunicação adequada com o servidor. Por exemplo, certifique-se de que os cookies estejam ativados e funcionando corretamente.
Mas a primeira coisa que você deve fazer é discutir com o fornecedor ou desenvolvedores da API, porque eles terão acesso aos logs de erros do servidor e desejarão saber se o código deles está gerando um erro 500.
No entanto, se você quiser investigar do seu lado, o fato de ser específico para um navegador é uma pista. Se os outros navegadores estiverem funcionando, o que isso nos diz é que este navegador (IE11) está enviando a solicitação com algo diferente dos outros navegadores, e é algo que está acionando o código do lado do servidor para falhou. Isso nos dá algo para trabalhar na investigação.
Portanto, a primeira coisa a fazer é examinar a solicitação em todos os navegadores. Use as ferramentas de desenvolvimento F12 no Chrome, Firefox e IE e chegue ao ponto em que você fez a mesma chamada em todos os três, e funciona no FF e no Chrome, mas não no IE11.
Nas ferramentas de desenvolvimento, agora você deve poder examinar os detalhes da solicitação para todos os três. Compara-os.
Comece examinando os dados da solicitação -- ou seja, a string de consulta real que foi enviada. Se houver diferenças, considere se alguma dessas diferenças pode ser responsável pelo erro. Algo pode se destacar obviamente; por exemplo, se o IE truncou uma variável ou algo assim. Se isso resolver o problema, ótimo.
Se isso não ajudar, então você precisa olhar com mais detalhes. Talvez existam algumas diferenças, mas elas não parecem que devem quebrar alguma coisa? Ferramentas de desenvolvimento de navegadores modernos permitem que você edite e reenvie uma solicitação, então tente editar a solicitação nas ferramentas de desenvolvimento do Chrome ou Firefox e faça os parâmetros iguais aos do IE que falharam. Agora tente reenviar essa solicitação. Se você tiver sorte, isso fará com que a solicitação falhe no outro navegador, o que permitirá que você mostre que um conjunto específico de dados é o problema (em vez de um navegador específico). Você mencionou que é uma API de terceiros, então você precisará discutir com o fornecedor da API para descobrir por que essa consulta interrompe sua API.
Se você ainda não encontrou o problema neste momento e está enviando consultas idênticas em ambos os navegadores e está conectado como o mesmo usuário, a próxima etapa é examinar os cabeçalhos da solicitação.
Há um cabeçalho de solicitação que definitivamente será diferente:a string do User Agent. Mas pode haver outros também. Novamente, tente reenviar a solicitação que funciona no Chrome, mas com cabeçalhos da solicitação com falha no IE (incluindo a string UA). A solicitação agora falha no Chrome? Em caso afirmativo, restrinja quais cabeçalhos são diferentes que o fazem falhar.
Novamente, se isso permitir que você encontre um conjunto específico de dados de solicitação e cabeçalhos que causam o problema, será necessário discutir com o fornecedor da API.
Se tudo isso não ajudar, tente olhar para os cookies. Você já verificou se os cookies estão funcionando, então isso parece um tiro no escuro agora, mas compare novamente os cookies entre os navegadores e veja se há algo obviamente diferente neles.
Espero que o acima é suficiente para ajudá-lo a diagnosticar o problema.