The API has a hard limit on the time it takes the service any request. Even if you’re under the limits in terms of number of items you’re allowed to return from a given API, no request to any Twitter API (no just the Ad API) can exceed 4.5 seconds total.
If you exceed that time limit, the server is deigned to interrupt the the request and return a 503. This prevents expensive, long-running requests from impacting other developers by consuming too much compute time or hanging.
Funding instruments are high-level items that sit at the top of the Ads platform object hierarchy and as a result they’re a bit more expensive than you might think to return. This is why our best practices recommend pulling at the line item or promoted tweet level, storing that and then rolling it up into the funding instrument level. If you continue to pull at the funding instrument level, you’ll quickly use up all your capacity and if there’s too much data (as John already mentioned in his answer to you) or it takes to long to fetch the data the server will refuse your request as you’re seeing now with the 503s.
You should take a look at our Analytics Best Practices and make sure you’re actually following the guidance there. Those suggestions are there for a reason and the approach you’re currently taking won’t be successful for you as you scale out your build (as you’re already seeing).
Additionally, please take a moment to re-read our Guidelines for Reporting issues. Specifically, please don’t duplicate threads where you’ve already been answered and make sure you include enough information for us to reproduce your issue and research it further if needed.
Closing this thread as duplicate: