I'm famiilar with the Google Sheets API. The way to get fine-grained access to the Google Sheets API is by asking for a specific permission within Google Drive. While it involves two APIs, it's less permissions than giving access to all the spreadsheets in a google sheets account.
Another way to go is to use a service account, and have the user share their sheet with your service account's email address.
Another way to go is to use a service account, and have the user share their sheet with your service account's email address.