def METHOD_NAME(key: str, query: str, limit: int) -> pd.DataFrame:
    # pylint: disable=C0415
    from openbb_terminal.cryptocurrency.due_diligence.coinpaprika_model import (
        get_coin_list,
    )
    coins_df = get_coin_list()
    coins_list = coins_df[key].to_list()
    keys = {"name": "title", "symbol": "upper", "id": "lower"}
    func_key = keys[key]
    query = getattr(query, str(func_key))()
    sim = difflib.get_close_matches(query, coins_list, limit)
    df = pd.Series(sim).to_frame().reset_index()
    df.columns = ["index", key]
    df = df.merge(coins_df, on=key)
    return df