Ok few updates for anyone dealing with the same problem.
First of all i don’t know why but sometimes i face the problem i said above and on some contact i don’t.
It seems like in most contact i am able to control the unsubscribe functions via the api.
On normal forms i wasn’t able to find a way to resubscrube the user but it seems like it can be done via Campaigns forms.
You need to create a campaigns only for resubscribe and make sure to set “Allow contacts to restart the campaign” so it will run on every new form register.
If a contact unsubscribed by clicking on the “unsubscribe” button, you should respect that. This is why the X is not visible.
However I believe you can set the email channel again for this person (in other words resubscribe), when you go to contact, then next to the dropdown (right side) click on preferences and choose the email channel again.
resubscribing seems to work for me, not sure what the issue is.
The api now works as well but for some reason the same code didn’t work before (maybe something related to the contact created.
So i guess the only problem left is the action of “Remove contact from do not contact list” not working on regular forms but it seems i can work around it when it’s campaign form instead.