Back to Collection Items
#include <C_CkHttpW.h>
#include <C_CkJsonObjectW.h>
#include <C_CkHttpResponseW.h>
void ChilkatSample(void)
{
HCkHttpW http;
BOOL success;
HCkJsonObjectW json;
HCkHttpResponseW resp;
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
http = CkHttpW_Create();
// Use this online tool to generate code from sample JSON: Generate Code to Create JSON
// The following JSON is sent in the request body.
// {
// "symbol": "AAPL",
// "qty": "4.125",
// "notional": "606.66",
// "side": "buy",
// "type": "market",
// "time_in_force": "day",
// "commission": "1"
// }
json = CkJsonObjectW_Create();
CkJsonObjectW_UpdateString(json,L"symbol",L"AAPL");
CkJsonObjectW_UpdateString(json,L"qty",L"4.125");
CkJsonObjectW_UpdateString(json,L"notional",L"606.66");
CkJsonObjectW_UpdateString(json,L"side",L"buy");
CkJsonObjectW_UpdateString(json,L"type",L"market");
CkJsonObjectW_UpdateString(json,L"time_in_force",L"day");
CkJsonObjectW_UpdateString(json,L"commission",L"1");
CkHttpW_SetRequestHeader(http,L"Apca-Api-Secret-Key",L"{{APCA_API_SECRET_KEY}}");
CkHttpW_SetRequestHeader(http,L"Apca-Api-Key-Id",L"{{APCA_API_KEY_ID}}");
resp = CkHttpW_PostJson3(http,L"https://domain.com/v2/orders",L"application/json",json);
if (CkHttpW_getLastMethodSuccess(http) == FALSE) {
wprintf(L"%s\n",CkHttpW_lastErrorText(http));
CkHttpW_Dispose(http);
CkJsonObjectW_Dispose(json);
return;
}
wprintf(L"%d\n",CkHttpResponseW_getStatusCode(resp));
wprintf(L"%s\n",CkHttpResponseW_bodyStr(resp));
CkHttpResponseW_Dispose(resp);
CkHttpW_Dispose(http);
CkJsonObjectW_Dispose(json);
}
Curl Command
curl -X POST
-H "Apca-Api-Key-Id: {{APCA_API_KEY_ID}}"
-H "Apca-Api-Secret-Key: {{APCA_API_SECRET_KEY}}"
-d '{
"symbol": "AAPL",
"qty": "4.125",
"notional": "606.66",
"side": "buy",
"type": "market",
"time_in_force": "day",
"commission": "1"
}'
https://domain.com/v2/orders
Postman Collection Item JSON
{
"name": "Order",
"request": {
"method": "POST",
"header": [
{
"key": "Apca-Api-Key-Id",
"value": "{{APCA_API_KEY_ID}}",
"type": "text"
},
{
"key": "Apca-Api-Secret-Key",
"value": "{{APCA_API_SECRET_KEY}}",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"symbol\": \"AAPL\",\n \"qty\": \"4.125\",\n \"notional\": \"606.66\",\n \"side\": \"buy\",\n \"type\": \"market\",\n \"time_in_force\": \"day\",\n \"commission\": \"1\"\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{HOST}}/v2/orders",
"host": [
"{{HOST}}"
],
"path": [
"v2",
"orders"
]
},
"description": "| Attribute | Type | Requirement | Notes |\n| ----------------- | -------------- | ------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `symbol` | string | Required | Symbol or asset ID to identify the asset to trade |\n| `qty` | string/number | Required | Number of shares to trade. Can be fractionable for only `market` and `day` order types. |\n| `notional` | string/number | Required | Dollar amount to trade. Cannot work with `qty`. Can only work for `market` order types and `time_in_force = day`. |\n| `side` | string | Required | `buy` or `sell` |\n| `type` | string | Required | `market`, `limit`, `stop`, `stop_limit`, or `trailing_stop` |\n| `time_in_force` | string/number | Required | `day`, `gtc`, `opg`, `cls`, `ioc`, `fok`. Please see Understand Orders for more info. |\n| `limit_price` | string/number | Optional | Required if type is `limit` or `stop_limit` |\n| `stop_price` | string/number | Optional | Required if type is `stop` or `stop_limit` |\n| `trail_price` | string/number | Optional | Required if type is `trailing_stop`, `trail_price` or `trail_percent` is required |\n| `trail_percent` | string/number | Optional | Required if type is `trailing_stop`, `trail_price` or `trail_percent` is required |\n| `extended_hours` | string | Optional | Defaults to `false`. If `true`, order will be eligible to execute in premarket/afterhours. Only works with type `limit` and `time_in_force = day`. |\n| `client_order_id` | string/UUID | Optional | A unique identifier for the order. Automatically generated if not sent. (<= 48 characters) |\n| `order_class` | string/numeric | Optional | `simple`, `bracket`, `oco` or `oto`. For details of non-simple order classes, please see Bracket Order Overview |\n| `take_profit` | object | Optional | Takes in a string/number value for `limit_price` |\n| `stop_loss` | object | Optional | Takes in a string/number values for `stop_price` and `limit_price` |\n| `commission` | string/numeric | Optional | The commission you want to collect from the user. |"
},
"response": [
]
}