blue-sky blue-sky - 29 days ago 15
JSON Question

Sending post request to shapeshift

Using the example pose request from https://info.shapeshift.io/api#api-7 :

url: shapeshift.io/shift
method: POST
data type: JSON
data required:
withdrawal = the address for resulting coin to be sent to
pair = what coins are being exchanged in the form [input coin]_[output coin] ie btc_ltc
returnAddress = (Optional) address to return deposit to if anything goes wrong with exchange
destTag = (Optional) Destination tag that you want appended to a Ripple payment to you
rsAddress = (Optional) For new NXT accounts to be funded, you supply this on NXT payment to you
apiKey = (Optional) Your affiliate PUBLIC KEY, for volume tracking, affiliate payments, split-shifts, etc...

example data: {"withdrawal":"AAAAAAAAAAAAA", "pair":"btc_ltc", returnAddress:"BBBBBBBBBBB"}

Success Output:
{
deposit: [Deposit Address (or memo field if input coin is BTS / BITUSD)],
depositType: [Deposit Type (input coin symbol)],
withdrawal: [Withdrawal Address], //-- will match address submitted in post
withdrawalType: [Withdrawal Type (output coin symbol)],
public: [NXT RS-Address pubkey (if input coin is NXT)],
xrpDestTag : [xrpDestTag (if input coin is XRP)],
apiPubKey: [public API attached to this shift, if one was given]
}


I send post request to :

shapeshift.io/shift


with parameters

{"withdrawal":"AAAAAAAAAAAAA", "pair":"btc_ltc", returnAddress:"BBBBBBBBBBB"}


But do not receive a response.

Is my post format correct ?

Answer

Ah, there is a mistake in the documentation. The example POST string is no valid JSON "returnAddress" needs to be enquoted.

Try:

 $ curl -H "Content-Type: application/json" -X POST -d '{"withdrawal":"LZwZMi6i9suK1wzFaw1NHqcYLcLGAo1Fs3", "pair":"btc_ltc", "returnAddress":"1HpnZkPHDMdiezuxT1sbKgLgBGTb1Q7eEP"}' https://shapeshift.io/shift

Gives me the following response:

{"orderId":"fca7e528-e0ba-4b4e-a43b-237d8a81b2a6","deposit":"1Khh3ndcoKBDsKe2gvmK9f2M1TpimXWWXw","depositType":"BTC","withdrawal":"LZwZMi6i9suK1wzFaw1NHqcYLcLGAo1Fs3","withdrawalType":"LTC","public":null,"apiPubKey":"shapeshift","returnAddress":"1HpnZkPHDMdiezuxT1sbKgLgBGTb1Q7eEP","returnAddressType":"BTC"}

You did not state how you query the API, if you use curl you will get always an error string back, whatever you do, e.g.,

{"error":"No Withdrawal Address Specified"}
Comments