Why is GDAX charging maker's fee when using API?
There is no maker fee using API, but when place new order, the default parameter for "post_only" is false, which means it is possible set a price to become a taker, hence GDAX will make sure you have enough funds to cover the fees.

Set post_only to true then GDAX will allow you to spend your entire account without reserves for fees.