C
C
Finnhub API - Get Stock Quote
See more AI Examples
Demonstrates how to get a stock quote from the Finnhub API.Chilkat C Downloads
#include <C_CkHttp.h>
#include <C_CkHttpRequest.h>
#include <C_CkHttpResponse.h>
#include <C_CkJsonObject.h>
void ChilkatSample(void)
{
BOOL success;
const char *apiKey;
const char *symbol;
HCkHttp http;
const char *urlWithoutParams;
HCkHttpRequest req;
HCkHttpResponse resp;
HCkJsonObject json;
int statusCode;
success = FALSE;
// Replace with your actual Finnhub API key.
apiKey = "YOUR_FINNHUB_API_KEY";
symbol = "AAPL";
http = CkHttp_Create();
// This is the URL without params.
urlWithoutParams = "https://finnhub.io/api/v1/quote";
req = CkHttpRequest_Create();
// Add params that will be sent in the URL.
CkHttpRequest_AddParam(req,"symbol",symbol);
CkHttpRequest_AddParam(req,"token",apiKey);
CkHttpRequest_putHttpVerb(req,"GET");
// Send the request to get the JSON response.
resp = CkHttpResponse_Create();
success = CkHttp_HttpReq(http,urlWithoutParams,req,resp);
if (success == FALSE) {
printf("%s\n",CkHttp_lastErrorText(http));
CkHttp_Dispose(http);
CkHttpRequest_Dispose(req);
CkHttpResponse_Dispose(resp);
return;
}
json = CkJsonObject_Create();
CkHttpResponse_GetBodyJson(resp,json);
statusCode = CkHttpResponse_getStatusCode(resp);
printf("response status code: %d\n",statusCode);
CkJsonObject_putEmitCompact(json,FALSE);
printf("%s\n",CkJsonObject_emit(json));
// Sample result:
// {
// "c": 248.8,
// "d": -4.09,
// "dp": -1.6173,
// "h": 255.493,
// "l": 248.07,
// "o": 253.9,
// "pc": 252.89,
// "t": 1774641600
// }
if (statusCode == 200) {
// Add the symbol to the top of the result.
CkJsonObject_AddStringAt(json,0,"symbol",symbol);
// Rename members for clarification.
CkJsonObject_Rename(json,"c","currentPrice");
CkJsonObject_Rename(json,"d","change");
CkJsonObject_Rename(json,"dp","percentChange");
CkJsonObject_Rename(json,"h","high");
CkJsonObject_Rename(json,"l","low");
CkJsonObject_Rename(json,"o","open");
CkJsonObject_Rename(json,"pc","prevClose");
CkJsonObject_Rename(json,"t","unixTime");
printf("%s\n",CkJsonObject_emit(json));
}
else {
printf("Failed\n");
}
CkHttp_Dispose(http);
CkHttpRequest_Dispose(req);
CkHttpResponse_Dispose(resp);
CkJsonObject_Dispose(json);
}