Hello JimD884,
Thank you for reaching out to Constant Contact API Developer Support. My team is here to assist outside software developers with questions about building into Constant Contact's API.
Rather than using the Contacts Reporting endpoint, which searches individually by contact, I'd recommend using the Email Reporting endpoints, which are able to return a list of contacts for the Sends, Opens, etc. for each sent campaign and should cut down substantially on the amount of calls that you need to make.
First, retrieve the "campaign_id" for campaign(s) with current_status": "Done".
GET a Collection of Email Campaigns
https://developer.constantcontact.com/api_reference/index.html#!/Email_Campaigns/retrieveEmailCampaignsUsingGET
Next, use the "campaign_id" to get the "campaign_activity_id"s for the "role"s "primary_email" and "resend" if applicable.
GET Details About a Single Email Campaign
https://developer.constantcontact.com/api_reference/index.html#!/Email_Campaigns/retrieveEmailCampaignUsingGET
Next, use the "campaign_id" to retrieve the contacts who the email was sent to.
GET an Email Sends Report
https://v3.developer.constantcontact.com/api_reference/index.html#!/Email_Reporting/getSends
The results will display the email address, contact ID, send time, etc for each contact that the campaign was sent to, and can display up to 500 contacts per page, so even with paginated results it should still significantly cut down on the amount of calls you have to make to get the same data.
Please have a look and let us know if you have any other questions!
... View more