Get the "Smart" group of a user id via REST
Smart Groups are basically a saved search. Checking whether a given contact is in a saved search result means running the search for that combination, which is not efficient - hence the reason the information you want isn't available through existing APIs.

See eg CRM-11903: GroupContact API doesn't get smart group members.

If you want to be able to query the API for this information, you have some options -


As you're doing, use the Contact API and filter by group ID to check each Contact/Smart group pair. Not efficient, but you've already found it works.
Create a "regular" group and automate the process of updating its members based on the criteria of your smart group. A bit rough - but probably not too hard.
Implement the functionality you need in a new API method. Probably not as hard as it sounds, check existing API methods for examples.