There is nothing wrong with the Gmail REST API. I was able to use the Google API Explorer to mark email as unread. The problem may be in their SDK for iOS.
So, there is a way to do this, but you may have to give up the iOS SDK and make a direct HTTP request to their REST API. Here's how you can do it:
Authorize your application through the OAuth stream , and then send a POST request:
https://www.googleapis.com/gmail/v1/users/{SOME_EMAIL_ADDRESS}/messages/{MESSAGE_ID}/modify?key={YOUR_API_KEY}
with the following POST request body:
{ "addLabelIds": ["UNREAD"] }
See their API documentation on how to modify messages for more information. I would advise you to try using your Explorer API, as I did, to make sure that it works for you or not.
source share