How should I search for process instances filtered on variable values, if I need details about the process instances themselves?

Please give me some best practices on how to properly find process instances started by a specific user. What the Operate API offers me is some hacky O(n) operations:

First, send this request:

POST v1/variables/search
{
	"filter": {
		"name": "userId",
		"value": "\"12345\""
	}
}

Unfortunately, the response gives me only a reference to the process instance, the processInstanceKey. So if I need, let’s say, the startDate of a process instance, then I need to, for each item in Items, send another request:

GET v1/process-instances/{key}

Is there any other way of designing the solution for this? Or should I rather avoid using the API for such queries? Should I rely on a separate application database instead?

Anyone? Bump.