Q:

API method for listing joined channels of user / bot

Does Slack provide a method that allows me to retrieve a list of all joined channels of a user or bot?
I am unable to find a proper API method and want to avoid using either the default channel.list or group.list since it would be expensive to execute 2 api calls and crawl through all channels and match the members ids, possibly even use pagination because of the member array limits of each channel.

A:

There is no single API method that gives you all joined channels of a user / bot with a single API call.
The quickest methods (with two API calls) is indeed calling channels.list and groups.list and matching the result against your user ID, however this is not the recommend approach due to the recently introduced member cap to max. 500 members per channel. Note that this is a hard cap (!!), so you can't get additional members by pagination.
The recommended approach is to use the newer conversations methods, which have the benefit to work for both public and private channels and will return the complete list of members (with pagination). 
However, this approach will require even more API calls:

Get list of all public and private channels with conversations.list
Get members per channel with conversations.members per channel
Compile list of channels per user by comparing user ID with all
members of all channels.

If you feel that this function is missing in the API I would recommend sending a feature request to the Slack team.

