Have you tried using nostr.wine for this? We support NIP-50 and pull search results from our aggregator so it should have fairly good coverage (though not as complete as nostr.band).
There’s an API too that offers the same filters/results https://docs.nostr.wine