Na... complex and depend of a 3rd party... keep with your node.
I was thinking about using the mempool.space API first1 and use our own node as a fallback. This isn't the first question and won't be the last question where someone is confused about the fee rate we show. I don't necessarily like that everyone seems to use mempool.space to look up fee rates (myself included) but it is what it is.
Maybe we should "fall in line" and meet user expectations there.
Footnotes
  1. it was actually first considered to use it during implementation, but they weren't transparent with their rate limits. The answer in some Github ticket was only: "if you wonder about the rate limits, you're probably above them."