Sample code for 30+ languages & platforms
DataFlex

Bitfinex v2 REST User Info

See more Bitfinex v2 REST Examples

Retrieve the user ID, email, username and timezone setting for the account associated with the API key used.

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoHttp
    Handle hoCrypt
    String sApiPath
    String sApiKey
    String sApiSecret
    Handle hoDt
    Handle hoSbNonce
    String sNonce
    String sBody
    Handle hoSbSignature
    String sSig
    Variant vResp
    Handle hoResp
    String sTemp1

    Move False To iSuccess

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

    Get Create (RefClass(cComChilkatHttp)) To hoHttp
    If (Not(IsComObjectCreated(hoHttp))) Begin
        Send CreateComObject of hoHttp
    End

    // Implements the following CURL command:

    // curl -X POST -H "bfx-nonce: nonce" \
    //   -H "bfx-apikey: apiKey" \
    //   -H "bfx-signature: sig" \ 
    //   https://api.bitfinex.com/v2/auth/r/info/user

    // Use the following online tool to generate HTTP code from a CURL command
    // Convert a cURL Command to HTTP Source Code

    Get Create (RefClass(cComChilkatCrypt2)) To hoCrypt
    If (Not(IsComObjectCreated(hoCrypt))) Begin
        Send CreateComObject of hoCrypt
    End

    Move "v2/auth/r/info/user" To sApiPath
    Move "MY_API_KEY" To sApiKey
    Move "MY_API_SECRET" To sApiSecret

    Get Create (RefClass(cComCkDateTime)) To hoDt
    If (Not(IsComObjectCreated(hoDt))) Begin
        Send CreateComObject of hoDt
    End
    Get ComSetFromCurrentSystemTime Of hoDt To iSuccess

    Get Create (RefClass(cComChilkatStringBuilder)) To hoSbNonce
    If (Not(IsComObjectCreated(hoSbNonce))) Begin
        Send CreateComObject of hoSbNonce
    End
    Get ComGetAsUnixTimeStr Of hoDt False To sTemp1
    Get ComAppend Of hoSbNonce sTemp1 To iSuccess
    Get ComAppend Of hoSbNonce "000" To iSuccess
    Get ComGetAsString Of hoSbNonce To sNonce

    // This particular request has an empty body.
    Move "" To sBody

    Get Create (RefClass(cComChilkatStringBuilder)) To hoSbSignature
    If (Not(IsComObjectCreated(hoSbSignature))) Begin
        Send CreateComObject of hoSbSignature
    End
    Get ComAppend Of hoSbSignature "/api/" To iSuccess
    Get ComAppend Of hoSbSignature sApiPath To iSuccess
    Get ComAppend Of hoSbSignature sNonce To iSuccess
    Get ComAppend Of hoSbSignature sBody To iSuccess

    Set ComEncodingMode Of hoCrypt To "hex_lower"
    Set ComHashAlgorithm Of hoCrypt To "sha384"
    Set ComMacAlgorithm Of hoCrypt To "hmac"
    Get ComSetMacKeyString Of hoCrypt sApiSecret To iSuccess

    Get ComGetAsString Of hoSbSignature To sTemp1
    Get ComMacStringENC Of hoCrypt sTemp1 To sSig

    Send ComSetRequestHeader To hoHttp "bfx-apikey" sApiKey
    Send ComSetRequestHeader To hoHttp "bfx-signature" sSig
    Send ComSetRequestHeader To hoHttp "bfx-nonce" sNonce

    Get Create (RefClass(cComChilkatHttpResponse)) To hoResp
    If (Not(IsComObjectCreated(hoResp))) Begin
        Send CreateComObject of hoResp
    End
    Get pvComObject of hoResp to vResp
    Get ComHttpNoBody Of hoHttp "POST" "https://api.bitfinex.com/v2/auth/r/info/user" vResp To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoHttp To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Showln "Response body:"
    Get ComBodyStr Of hoResp To sTemp1
    Showln sTemp1

    // Sample response body:

    // [1234567,"joe@example.com","joe_trader",1527691729000,0,null,null,"Central Time (US & Canada)"]


End_Procedure