Are you already updating the records in batches (one call, many records) rather than a separate API call to update each custom object record? You sound like you would've already been on top of that, but it's the only thing that comes to mind besides increasing the API limit.
Yep, already doing that. Thing is, it's not the only thing we are doing via API - all new consumers, buyers, etc. are created in the client platform first and added then to Marketo via API, so basically everything we are doing is going through API.
We are already exploring the possibility of increasing the API limit, thanks, just wondering if there's something else we can do.
If you are capped by API limits I probably wouldn't use COs for this. Rather, I'd use one or more textarea fields with JSON content (arrays of Purchase objects, etc.) and update them via webhook.
Seconding Grant, though, how many updates are you talking about when you say "thousands," and what kind of batch/bulkifying are you doing (or are you prevented from doing this by other tiers of the workflow)?
Also, you might think about the wild(er) concept of having the Purchases be Persons, not COs. In a recent project I had the Eureka! moment of realizing that the COs that were giving us trouble really could be People in their own right, and a lot of problems went away (net, at least).