As Greg has noted there is no REST API that is acceptable for this case, if it uses one call in response to each end-user activity. Building a batch-and-release capability is going to be extremely complex.
But that's not the only problem: you haven't noted whether you need to do this only for leads whose identity is known, or for anonymous web sessions as well. You can't use the REST API for anonymous lead records. The same goes for the Forms JS API. You must convert the lead to known in order to use either method, and that means the lead will be billed as part of our subscription limit.
The only way to do what you describe (although it could use a lot more detail -- there's no reason not to be detailed here!) without counting against your subscription, and with the capacity to scale, is to send synthetic Munchkin Visit Web Page activities that correspond to your extra data. You do this using Munchkin.munchkinFunction("visitWebPage"...). This is, for example, how we log video play/pause/stop events using Munchkin, which of course can happen in either anonymous or associated sessions.