Google Analytics API call with large filter

We have a product that has a dashboard from which we're displaying information from Google Analytics to see how the pages are performing for each user.

For example a single user has ~2000 objects each at a unique URL and I need to request this information from GA.

The format for a user's URL is /user/embed/objectId - where each embed is an object that they created through our system and embedded into their current pages. The problem is, the embed code can live on all of the user's pages but the actual embed object will only live on a few.

So I can't run a filter like 'ga:pagePath=~/user/embed/*' because it will give me data on pages where embed object doesn't exist, but their embed code is still registering a pagePath since the embed code is dynamically placed on all pages.

So I can map all their objects and create a filter for each one

let allQueries = [];

allObjects.map(object => {
  const query = `ga:pagePath=~/user/embed/${object.Id}`;
  allQueries.push(query);
});

But then I end up with a list of 2000+ queries and when I join them and send them to GA, I get a 413 Error aka query too big.

The other side of it, is the response comes back with only 1000 rows.

I need to make sure I keep the totalsForAllResults and have access to each individual object's analytics as well.