Sample code for 30+ languages & platforms
PureBasic

Simple REST Example

See more REST Examples

Demonstrates a very simple RESTful API call to get a stock time series daily (quotes) from Alpha Vantage.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkRest.pb"

Procedure ChilkatExample()

    success.i = 0

    ; This example requires the Chilkat API to have been previously unlocked.
    ; See Global Unlock Sample for sample code.

    rest.i = CkRest::ckCreate()
    If rest.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    ; Connect to the REST server.
    bTls.i = 1
    port.i = 443
    bAutoReconnect.i = 1
    success = CkRest::ckConnect(rest,"www.alphavantage.co",port,bTls,bAutoReconnect)
    If success <> 1
        Debug CkRest::ckLastErrorText(rest)
        CkRest::ckDispose(rest)
        ProcedureReturn
    EndIf

    ; Get a stock quote:
    ; Sending GET request to https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=MSFT&apikey=my_api_key
    success = CkRest::ckAddQueryParam(rest,"function","TIME_SERIES_DAILY")
    success = CkRest::ckAddQueryParam(rest,"symbol","AAPL")
    success = CkRest::ckAddQueryParam(rest,"apikey","my_api_key")
    responseJson.s = CkRest::ckFullRequestNoBody(rest,"GET","/query")
    If CkRest::ckLastMethodSuccess(rest) <> 1
        Debug CkRest::ckLastErrorText(rest)
        CkRest::ckDispose(rest)
        ProcedureReturn
    EndIf

    Debug responseJson

    ; Sample response:
    ; {
    ;     "Meta Data": {
    ;         "1. Information": "Daily Prices (open, high, low, close) and Volumes",
    ;         "2. Symbol": "AAPL",
    ;         "3. Last Refreshed": "2019-12-06",
    ;         "4. Output Size": "Compact",
    ;         "5. Time Zone": "US/Eastern"
    ;     },
    ;     "Time Series (Daily)": {
    ;         "2019-12-06": {
    ;             "1. open": "267.4800",
    ;             "2. high": "271.0000",
    ;             "3. low": "267.3000",
    ;             "4. close": "270.7100",
    ;             "5. volume": "25447644"
    ;         },
    ;         "2019-12-05": {
    ;             "1. open": "263.7900",
    ;             "2. high": "265.8900",
    ;             "3. low": "262.7300",
    ;             "4. close": "265.5800",
    ;             "5. volume": "18661343"
    ;         },
    ;         "2019-12-04": {
    ;             "1. open": "261.0700",
    ;             "2. high": "263.3100",
    ;             "3. low": "260.6800",
    ;             "4. close": "261.7400",
    ;             "5. volume": "16810388"
    ;         },
    ; ...
    ;         "2019-07-18": {
    ;             "1. open": "204.0000",
    ;             "2. high": "205.8800",
    ;             "3. low": "203.7000",
    ;             "4. close": "205.6600",
    ;             "5. volume": "18582161"
    ;         }
    ;     }
    ; }


    CkRest::ckDispose(rest)


    ProcedureReturn
EndProcedure