They said rising cases meant domestic demand was expected to pick up in the coming weeks, and so the doses were needed for India’s own rollout.
The move – described as a “temporary squeeze” by officials – is expected to affect supplies until the end of April.
Some 190 countries under the COVAX scheme are likely to be affected.
The scheme, which is led by the World Health Organization (WHO), aims to ensure vaccines are shared fairly among all nations.
India’s largest vaccine manufacturer, the Serum Institute of India (SII), has delayed shipments of the AstraZeneca jab to several countries in recent days, including the UK and Brazil.
India has exported more than 60 million vaccine doses to 76 countries so far, with the majority of these being the Oxford-AstraZeneca jab.
Why has India taken this step?
The decision comes as India faces a surge in coronavirus cases. On Wednesday it recorded its sharpest daily rise this year, with more than 47,000 new cases and 275 deaths.
It is opening up vaccinations for those over the age of 45 from 1 April, and officials expect demand for vaccinations to increase.
“[The export hold] is a temporary measure. Domestic demand will have to take precedence,” one foreign ministry source told the BBC’s Soutik Biswas.
They said there was likely to be a squeeze on vaccine supplies until April, but the situation could ease come May when at least one additional vaccine is expected to be given emergency approval.
The SII has said it will produce one billion doses this year for low- and middle-income countries.