I am flexible with all of it - end goal is just my User can click ‘Send Email to All Contacts’ and then my app sends JSONs of the contact data to an API - the JSONs array is limited to 500 contacts which might make it tricky and would require up to 10 api calls for 5,000 contacts.

I can do it server side or on page and I can do it anyway that makes sense from a tech standpoint.
On page (might) have the slight benefit of telling the user how many Contacts the email will send to before they click Send, but that’s not a necessity.