You cannot upload images via Instagram’s API.
Per Instagram's API documentation:
At this time, uploading via the API is not possible. We made a conscious choice not to add this for the following reasons...
While it is possible to use Instagram's private API to upload photos (you'd need to capture this information using a proxy server) it is a very quick way to get you instantly banned for life from using the API.
There are a handful of exceptions to this rule, Hipstamatic/Oggl being one of them. Whether or not posts.so is or not, I can't say, though I find it highly unlikely that they're authorized to do that they're doing. More-so with gramblr, their site is.. shady at best.
You can read a similar post here: Uploading photos to Instagram via your own iOS app