St. John is a city in and the county seat of Stafford County, Kansas, United States. As of the 2010 census, the city population was 1,295.