I am writing some manual routines in the shell (bash) to test and perform manualish tasks that don’t require a lot of bells and whistles, and to prove some concepts for when I do it for real in Python.
Using CURL (7.21.0, Linux), I can perform GET requests to the paper API just fine, and process the returned JSON just fine.
However when trying to make POST requests, I am running into “request body format is invalid” messages no matter what i do.
Can anyone explain what might be going on, or what I need to do to fix it?
Here is an example:
curl -gqsS --retry 1 -m 3 --proto =https -o - \ -H "APCA-API-KEY-ID: $APCA_API_KEY_ID" \ -H "APCA-API-SECRET-KEY: $APCA_API_SECRET_KEY" \ -X POST -H "Content-Type: application/json; charset=UTF-8" \ --data-binary @/tmp/order \ "https://paper-api.alpaca.markets/v2/orders"
Alternatives I have tried:
- Content-Type: application/x-www-form-urlencoded.
- Passing the JSON via STDIN
- Pretty-printed JSON
- JSON on one line with spaces
- JSON with no spaces at all (this example)
- Zero, one or two new lines before the JSON
- zero or one newlines after.
JSON from /tmp/order:
I have tried it with and without the quotes around the quantity, since the spec asks for a “string <int>”, whatever that is.
Thanks for any pointers!