Why does unspent address index differ between APIs?
both return an index of 0. 


0 is the correct answer here.


  Am I missing something here?


Not sure.

I can't reproduce your problem. I'm querying blocktrail like this:

curl https://api.blocktrail.com/v1/tbtc/address/2N6qMqR9D4BTkD6fS1h6Sq3kRV2FeB1L14j/transactions?api_key=MY_APIKEY


and that returns all of the transactions for the address, none of which have an index of 4.

Can you post the line of code that calls their API?