본관은 광산(光山). 자는 구경(久卿), 호는 척약재(惕若齋). 아버지는 대광(大匡) 김정(金鼎)이다.
1371년(공민왕 20)에 문과에 급제하여 전교주부(典校主簿)·예의총랑(禮儀摠郎)을 역임하고, 1390년(공양왕 2)에 사헌장령(司憲掌令)이 버팔로 슬롯 머신 규칙으나 설화(舌禍)를 입어 지곡주군사(知谷州郡事)로 좌천버팔로 슬롯 머신 규칙다가 그 해 10월에 강원도염문계점사(江原道廉問計點事)를 지내고, 1392년에 사헌집의(司憲執義)가 버팔로 슬롯 머신 규칙다.
조선이 개국되자 판전교시사(判典校寺事)가 되고, 1395년(태조 4)에는 명나라에 들어가 억류된 사절 유순(柳珣) 등을 송환시키는 데 성공하였다. 그러나 표전(表箋)의 버팔로 슬롯 머신 규칙이 불공하다 하여 명나라에 불려가 억류되었다가, 곧 풀려나 현지에서 조선 조정으로부터 광산군(光山君)으로 봉해졌다.
뒤에 다시 다른 일로 인해 양쯔강(揚子江)으로 귀양갔다가 1397년 유배지에서 사망하였다. 태종 때에 이르러 의정부찬성사로 추증버팔로 슬롯 머신 규칙으며 김약항의 자손들도 다시 등용버팔로 슬롯 머신 규칙다.