Calculate the put-call ratio of every expiry, by volume and by open interest. The ratio is the number of puts divided by the number of calls: a ratio above one means more puts are traded or held than calls, which is usually read as hedging demand or bearish sentiment, and an unusually low ratio as complacency. The volume ratio reflects today’s trading; the open interest ratio the positions that remain.

Also known as: PCR, put/call ratio, options sentiment.

Put-Call Ratio in Python or via the MCP

Install the Finance Toolkit with:

pip install financetoolkit -U

Then call get_put_call_ratio as shown below.

from financetoolkit import Toolkit

toolkit = Toolkit(["AAPL", "TSLA"], api_key="FINANCIAL_MODELING_PREP_KEY")

toolkit.options.get_put_call_ratio(number_of_expirations=3)

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

What are the put-call ratios of volume and open interest of Apple and Tesla options for their next three expirations?

Which returns:

  Days to Expiration Call Volume Put Volume Volume Put-Call Ratio Call Open Interest Put Open Interest Open Interest Put-Call Ratio
(‘AAPL’, ‘2026-10-26’) 2 90053 85187 0.946 14688 22097 1.5044
(‘AAPL’, ‘2026-10-28’) 4 27330 21152 0.7739 17505 10137 0.5791
(‘AAPL’, ‘2026-10-30’) 6 76540 134401 1.756 81432 86739 1.0652
(‘AAPL’, ‘All’) nan 193923 240740 1.2414 113625 118973 1.0471
(‘TSLA’, ‘2026-10-26’) 2 149535 129459 0.8657 68890 34714 0.5039
(‘TSLA’, ‘2026-10-28’) 4 32602 24491 0.7512 14542 15028 1.0334
(‘TSLA’, ‘2026-10-30’) 6 121542 101610 0.836 104417 97818 0.9368
(‘TSLA’, ‘All’) nan 303679 255560 0.8415 187849 147560 0.7855

Parameters

get_put_call_ratio accepts the following parameters.

ParameterTypeDescriptionExample
expiration_dateslist[str] | NoneThe expiries to use. Defaults to None, the nearest number_of_expirations expiries.["2027-12-17", "2028-01-21"]
number_of_expirationsintThe number of nearest expiries to use when no dates are given. Defaults to 6.4
roundingint | NoneThe number of decimals to round the results to. Defaults to None, which uses the Toolkit’s rounding.2
Share