Obtain how many analysts recommend each company as a strong buy, buy, hold, sell or strong sell, per month. Next to the counts come the number of analysts, the share of them recommending a (strong) buy and the mean recommendation on the conventional scale from 1 (strong buy) to 5 (strong sell), as used by I/B/E/S and Zacks. A falling mean recommendation means analysts are turning more positive; changes in consensus recommendations predict returns (Jegadeesh, Kim, Krische and Lee, 2004).

Automatically filtered to this Toolkit instance’s start_date and end_date.

Also known as: analyst consensus, buy/hold/sell ratings, recommendation trends.

Analyst Recommendations in Python or via the MCP

Install the Finance Toolkit with:

pip install financetoolkit -U

Then call get_analyst_recommendations as shown below.

from financetoolkit import Toolkit

toolkit = Toolkit(
    ["AAPL", "NVDA"],
    api_key="FINANCIAL_MODELING_PREP_KEY",
    start_date="2025-07-01",
    end_date="2025-12-31",
)

toolkit.get_analyst_recommendations()

Or, after setting up the Finance Toolkit MCP, ask:

How did analysts' buy, hold and sell recommendations for Apple and Nvidia develop each month in the second half of 2025?

Which returns:

  Strong Buy Buy Hold Sell Strong Sell Analysts Buy Share Mean Recommendation
(‘AAPL’, ‘2025-07-01’) 6 23 18 2 1 50 0.58 2.38
(‘AAPL’, ‘2025-08-01’) 5 23 15 1 1 45 0.6222 2.3333
(‘AAPL’, ‘2025-09-01’) 5 23 15 1 3 47 0.5957 2.4468
(‘AAPL’, ‘2025-10-01’) 6 24 15 2 3 50 0.6 2.44
(‘AAPL’, ‘2025-11-01’) 5 24 15 1 3 48 0.6042 2.4375
(‘AAPL’, ‘2025-12-01’) 5 24 15 1 3 48 0.6042 2.4375
(‘NVDA’, ‘2025-07-01’) 12 49 7 1 0 69 0.8841 1.9565
(‘NVDA’, ‘2025-08-01’) 11 49 6 1 1 68 0.8824 2
(‘NVDA’, ‘2025-09-01’) 11 48 6 1 0 66 0.8939 1.9545
(‘NVDA’, ‘2025-10-01’) 11 49 5 1 0 66 0.9091 1.9394
(‘NVDA’, ‘2025-11-01’) 11 50 4 1 0 66 0.9242 1.9242
(‘NVDA’, ‘2025-12-01’) 11 49 3 1 0 64 0.9375 1.9062

Parameters

get_analyst_recommendations accepts the following parameters.

ParameterTypeDescriptionExample
overwriteboolDefines whether to overwrite the existing data. Defaults to False.True
roundingintDefines the number of decimal places to round the data to. Defaults to None, which uses the rounding of the Toolkit (4 unless set otherwise).2
show_columnslist[str] | NoneA list of column names to keep in the result. Invalid names are reported and ignored. Defaults to None, which keeps every column.None, which keeps every column
Share