Most RPC Provider will enforce a gasLimit for eth_call as DOS Protection. For exampleinstance, Alchemy has a limit of 550 mio. and Infura has a limit of 300 mio.
I would suggest that youYou can create a view function that returnsretrieves the total number of organizations stored in the array and and another function that retrieves the entire array with multiple callsorganisations with a single call using multicall.
function numOrgs() public view returns(uint256) { return organisations.lenght; } function getOrganisations(uint256 idx) public view returns(Organisation memory) { return organisations[idx]; } With multicall you can batch calls to reduce the number of rpc requests.