본관은 창원(昌原). 자는 세번(世蕃). 아버지는 증참판 김갱(金鏗)이다.
1462년(세조 8) 장사랑(將仕郎)으로서 추장문과(秋場文科)에 을과로 급제, 1464년 겸예문(兼藝文)에 선발되었다..
같은 해 문신대책시에 합격하여 승자되었고, 학문의 진흥을 위한 제학문(諸學門)의 설치와 함께 사학문에 선발되었다. 1465년 헌납, 다음해 세자시강원문학을 거치고, 발영시에 2등으로 급제하여 통훈대부에 올랐다.
1469년(예종 1)에 집의·장악원부정을 거쳐 예문관응교로 승문원교감을 겸하면서, 1471년에 완성된 『세조실록(世祖實錄)』의 편찬에 편수관으로 참여하였다. 철원부사로 임명되었으나 문예가 뛰어나 사대문서의 작성에 긴요한 인물이니 외직에 보내지 말라는 대간과 영의정 신숙주(申叔舟)의 청에 따라 성균관사성으로 다시 임명되었고, 사간을 거쳐 1478년 승정원동부승지로 발탁되었다.
그 뒤, 좌부승지·우승지·도승지를 역임하고, 1481년 이조참판에 올랐다가 같은 해 병으로 사직하였다. 시문과 경사에 능통하여 명망이 높았고, 세조 말과 성종 초에 외교문서 작성 및 문풍진흥에 공헌한 바가 많았다.