Buffalo is a town and county seat of Harper County, Oklahoma, United States. The population was 1,299 at the 2010 census. It was named after Buffalo Creek Valley, for which it is located.