def get_asa_owners(indexer_client, asset_id, asa_min_balance=0):
    """Search for ASAs owners

    Args:
        indexer_client (IndexerClient): Indexer Client V2
        asset_id (int): ASA Asset ID
        asa_min_balance (int): Optional; ASA minimum balance expressed as
        minimal int units

    Returns:
        (dict): accounts that owns at least asa_min_balance.

    """
    nexttoken = ""
    numtx = 1
    owners = []
    while numtx > 0:
        result = indexer_client.accounts(
            asset_id=asset_id,
            asa_min_balance=asa_min_balance,
            next_page=nexttoken,
            limit=1000)
        accounts = result['accounts']
        owners += accounts
        numtx = len(accounts)
        if numtx > 0:
            # pointer to the next chunk of requests
            nexttoken = result['next-token']
    return owners