I tried to use the list thread method:
GET https://www.googleapis.com/gmail/v1/users/{MyEmailAddress}/threads?labelIds=INBOX&labelIds=UNREAD&key={YOUR_AP
The Gmail API now provides total and unread counts for messages and threads on each Label using the Labels.Get() method. See: https://developers.google.com/gmail/api/release-notes and https://developers.google.com/gmail/api/v1/reference/users/labels
GET https://www.googleapis.com/gmail/v1/users/{email}/messages?labelIds=UNREAD&labelIds=INBOX&fields=messages%2FthreadId
"messages/threadId" will count the number of unread threads but will list the same thread multiple times if the thread has multiple messages. Store them in an array and check the array as you fill it for matching "threadId" identifiers and ignore duplicates.
Turn conversation view off in the Gmail UI in order to get an accurate count of the message (not threads) in your inbox.
You can also use:
in:inbox is:unread
as the query in both the UI and API. Remove the labelId parameters.