I am trying to create a reporting user. One of the reports the user will run is the API Usage Last 7 Days report. I want to minimize the access to as much as possible but it seems the user's profile has to have Modify All Data checked. That checks a number of other admin options and provides full access to all standard and custom objects. Something I want to limit as much as possible. If the community knows a quick minimum permissions needed that would be awesome. I have a feeling I'll just have to do a trial and error of unchecking and checking permissions.
After much digging it looks like Modify All Data is needed at the profile level. That box has to be checked. When you check it it provides complete access to all standard and custom objects. Not what I was hoping for but it is what it is.
Here's a link to where you can find a list of all User Profile permission descriptions which includes what they do. From the list, you should be able to determine what permissions your profile needs to have.