As a redshirt freshman in 2015, James played in all 13 of Middle Tennessee's games, catching 108 passes for 1,346 yards and eight touchdowns. He also rushed for 146 yards and one touchdown on 12 attempts.[5] He was named to the 2015 All-Conference USA (C-USA) First Team[6] and the 2015 C-USA All-Freshman Team.[7]
In 2016, James once again played in all 13 games, catching 105 passes for 1,625 yards, tallying 12 touchdowns, along with rushing for 339 yards and four touchdowns on 38 attempts.[8] He was named to the 2016 C-USA All-Conference First Team.[9]
As a redshirt junior in 2017, James played in five games, catching 31 passes for 290 yards and three touchdowns. However, he broke his collarbone against Marshall and was ruled out for the season.[10] During his limited playing time in 2017, James became Middle Tennessee's career leader in receiving yards (3,261) and receiving touchdowns (23). After the season, James declared for the 2018 NFL draft.[11]
James was drafted by the San Francisco 49ers in the seventh round with the 240th overall pick in the 2018 NFL Draft.[14]
During Week 5 against the Arizona Cardinals, he made his first NFL reception, which went for seven yards.[15] During a Week 14 victory against the Seattle Seahawks, James scored his first NFL touchdown after returning a 97-yard kickoff return in the first quarter. In the regular-season finale against the Los Angeles Rams, he caught three passes for 32 yards and a touchdown.
James finished his rookie year with 655 return yards and a touchdown along with nine receptions for 130 yards and a touchdown.[16]
James was placed on the reserve/COVID-19 list by the 49ers on July 27, 2020.[17] He was activated from the reserve/COVID-19 list and subsequently placed on the active/non-football injury list eight days later.[18] He was activated on September 3, 2020.[19] He was placed on injured reserve on September 18, 2020, after suffering a hamstring injury in Week 1.[20] He was designated to return from injured reserve on October 7, and began practicing with the team again.[21] He was activated on October 17.[22]
On November 5, 2020, on Thursday Night Football against the Green Bay Packers, James had nine receptions for 184 yards and a touchdown, which was higher than either of his season totals in 2018 and 2019. However the 49ers lost 34–17.[23][24]
On August 28, 2021, James was waived/injured by the 49ers after undergoing knee surgery and was placed on injured reserve.[25]
New York Giants
On March 25, 2022, James signed with the New York Giants.[26] In Week 8 against the Seattle Seahawks James fumbled twice on 2 different punt returns. The second fumble came in the fourth quarter and cost the Giants any chance of making a comeback.[27]
In the 2022 regular season, James accumulated 57 receptions for 569 yards and four touchdowns, contributing to the Giants' first playoff berth since 2016.[28]