James started at West Bromwich Albion before a move to Portsmouth in 2008 and following a loan spell at IBV in Iceland he returned to West Brom in 2010, making his first team debut in a League Cup quarter-final at Ipswich Town. While at the Baggies he enjoyed loan spells at Blackpool, Shrewsbury (twice), Chesterfield and Birmingham City before returning to Iceland to sign for Valur in May 2013. A move to Crawley Town followed later that summer but he returned to Valur the following season after a loan spell at Northampton Town. He spent the 14-15 season at Hednesford Town before signing for Torquay United and then AFC Telford United. He moved to Dover in January 2017, then on to Wrexham the following summer returning to Hednesford Town before signing for Buxton in August 2020 from where he joined The Lambs in January 2022. He has represented England at Under 16s, Under 17s and Under 18s and Under 20s levels.