I am using the USDA food database in an app, however I will not being able to use it in the live version because of the API request limitations. One workaround would be to give each registered user their own API key, which would easily suffice the API limitations. Is there a way to programmatically get an API key for each user, using the email they submitted when they signed up on my app?
Not possible, not respectful of API provider, and borderline unethical:
Most authentication has to be verified by the user. While you can get them to accept/verify, that is a bottleneck that while at the very least cause a delay, at worst never be executed. Either way, you still can't automate answering their email.
Willfully gaming a dot gov open data service takes advantage of a system designed for all citizens to use. The reason(s) behind the limit could be anything, including hardware/architecture/code that is non-performant, out-dated, etc. Hogging the service is not fair to everyone else.
Unethical because you are taking advantage of a service designed for all, not you. Borderline because its an open data dot gov website/api, and in my experience limitations on use/service/access placed by dot gov departments/agencies are typically bogus. That is not to say they all are, far from it. But I'd say 4/6 times I've encountered something similar, the reasonings behind the 4 are not valid.
[EDIT] This is a very interesting idea of how to get around API limits...Since the are recommending that, I would set up your site with a login that required prior API registration, and either integrate the API into the login to get their key, or have them enter their key on sign up.