New Jersey State Highway 31 is a state highway in New Jersey, United States. It runs from an intersection with United States Highway 206 and Business United States Highway 1 in Trenton, New Jersey to an intersection with United States Highway 46 in White, New Jersey.

In the renumbering of 1953, the route that became NJ 31 was designated NJ 69. It was redesignated NJ 31 in 1967 because college students were stealing the NJ 69 signs.

Most of NJ 31 is a two-lane country road, except for six miles in Hunderton County, New Jersey where it is multiplexed with United States Highway 202. The road was first laid out in the 1700s.