Long story short, my understanding is that when you make HTTP outcalls, the IC performs multiple calls and aggregates the responses to validate that they are similar. If you encounter an issue where no consensus is reached, it’s because the responses for the endpoints you are calling contain something different for each identitcal request.
API providers sometimes offer the ability to return “constant” responses using an idempotency key; sometimes they don’t. In that case, I think the solution is to build a custom proxy, although I’m not sure that makes sense for a real-life application.
I faced a similar issue when I built a demo app; here’s my thread: https://forum.dfinity.org/t/http-request-error-rejectioncode-systransient-error-canister-http-responses-were-different-across-replicas-and-no-consensus-was-reached/28066.
In my case, I built a custom proxy, but I think @ilbert is also providing an off-chain generic solution (I don’t have the references right here, right now).
But before jumping into building a proxy, I would recommend checking if your API supports something like an idempotency key.