Estimating the burden of COVID-19 in India is difficult because the extent to which cases and deaths have been undercounted is hard to assess. The INDSCI-SIM model is a 9-component, age-stratified, contact-structured compartmental model for COVID-19 spread in India. We use INDSCI-SIM, together with Bayesian methods, to obtain optimal fits to reported cases and deaths across the span of the first wave of the Indian pandemic, over the period Jan 30, 2020 to Feb 15, 2021. We account for lock-downs and other non-pharmaceutical interventions, an overall increase in testing as a function of time, the under-counting of cases and deaths, and a range of age-specific infection-fatality ratios. We first use our model to describe data from all individual districts of the state of Karnataka, benchmarking our calculations using data from serological surveys. We then extend this approach to aggregated data for Karnataka state. We model the progress of the pandemic across the cities of Delhi, Mumbai, Pune, Bengaluru and Chennai, and then for India as a whole. We estimate that deaths were undercounted by a factor between 2 and 5 across the span of the first wave, converging on 2.2 as a representative multiplier that accounts for the urban-rural gradient across the country. We also estimate an overall under-counting of cases by a factor of between 20 and 25 towards the end of the first wave. Our estimates of the infection fatality ratio (IFR) are in the range 0.05 - 0.15, broadly consistent with previous estimates but substantially lower than values that have been estimated for other LMIC countries. We find that approximately 40% of India had been infected overall by the end of the first wave, results broadly consistent with those from serosurveys. These results contribute to the understanding of the long-term trajectory of COVID-19 in India.