Do I have to show ID to police in Canada?

You DO have to show your ID to police if they stop you while you are driving or cycling (operating a conveyance).

You DO NOT have to show your ID to police if they stop you on the street, unless they are investigating a crime that has occurred or they are detaining you.

Police cannot ask for your ID because of your race, because you are in a high crime area, because you refused to answer a question or because you walked away. Police must tell you why they want to see your ID. You can refuse to show them your ID, and you can refuse to give them your name and date of birth. If you are unsure what to do, you can ask the officer “Am I being detained?”, or “Am I free to go?” – If they say that you are not being detained, you are free to walk away without identifying yourself.

IF Police say they are detaining you for investigation, they must immediately say why, and then immediately inform you of your right to silence and then give you your rights to contact your counsel of choice, and allow you to speak to your counsel BEFORE asking you any questions.