In academic theory, as well as in an efficient market, the call and put IV should be the same for the same strike. Examples include US / EU markets and OTC currency.

But before we go to the why, to be clear, let us repeat the what:

1. Call and puts of the same strike should have the same IV, theoretically
2. Calls and puts of different strikes will have different IVs, theoretically

In Indian equities you could see that this is not always the same. This is because:

1. STT affects ITM option prices and brings down volatility.
2. Wide bid-offer spreads, and off prices in illiquid ITM options will get you an off IV value
3. Also, we noticed that other platforms in India including NSE assume a constant interest rate r = 10 and calculate Put and call options IVs using spot. This assumption is wrong because r does not remain constant. This is clear from the fact that sometimes stocks go in discount which violates the implied value of a positive r. We use the future price so that the r is implied and captured correctly. This r assumption gets some calculators to give different call and put vol.

Theoretically, if Put and Call options have different volatilities at the same strike, there will be an arbitrage opportunity. You can try it yourself using the following calculation:

Put Call Parity says that Call Price - Put Price = Future Price - Strike Price. If you try this equation with different values of IV, the numbers won't add up. To rectify this, we use the IV of the OTM option for a strike, and put the same number for both calls and puts of the same strike.

For example, when NIFTY is at 11500 and we have to calculate the 11000 IV, we only look at the OTM option, which is the 11000 Put. We find the IV of that put and show the same IV for the 11000 Call.