Cool, I knew I was missing something. And in order to unpack the profession spec, like the wiki states, the bits after the profession is 3 pairs of two bytes for each traitline. My example string DQcBHRc7KC4jD24BkxIAAIcSgwGAAYEBvAG8AQAAAAAAAAAAAAAAAAAAAAA=So for an example the following string of bytes (Not doing the entire unpacking here)Gives the following byte array(13, 7, 1, 29, 23, 59, 40, 46, 35, ..., 0) # the two bytes (1, 29) is the bytes describing what specialization and the trait choises made for that specialization.the 1 is pretty simple (binary 0b000 0001) - the specialization id (in this case defined in the api as mesmer duelling)the 29 is a little bit more tricky. It has the following binary value (0b0001 1101) Each pair of two bits (first unused (00)) (trait choise3 (01)) (trait choise2 (11)) (trait choise1 (01))The bits are extracted like the following pseudo code. bitfield extraction magic. To pack the extracted bytes back into one single byte, there is just some bitshifting required.return (choise3 << 4) + (choise2 << 2) + choise1 Hope this helps :)