Sample code for 30+ languages & platforms
Xbase++

ETrade v1 List Accounts

See more HTTP Misc Examples

List ETrade accounts using the ETrade v1 API.

Chilkat Xbase++ Downloads

Xbase++
LOCAL nSuccess
LOCAL oHttp
LOCAL oJson
LOCAL cRespStr
LOCAL nStatusCode
LOCAL oXml
LOCAL i
LOCAL nCount_i
LOCAL cTagPath
LOCAL nAccountId
LOCAL cAccountIdKey
LOCAL cAccountMode
LOCAL cAccountDesc
LOCAL cAccountName
LOCAL cAccountType
LOCAL cInstitutionType
LOCAL cAccountStatus
LOCAL nClosedDate

nSuccess := 0

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

oHttp := CreateObject("Chilkat.Http")

oHttp:OAuth1 := 1
oHttp:OAuthVerifier := ""
oHttp:OAuthConsumerKey := "ETRADE_CONSUMER_KEY"
oHttp:OAuthConsumerSecret := "ETRADE_CONSUMER_SECRET"

//  Load the access token previously obtained via the OAuth1 3-Legged Authorization examples Step1 and Step2.
oJson := CreateObject("Chilkat.JsonObject")
nSuccess := oJson:LoadFile("qa_data/tokens/etrade.json")
IF (nSuccess != 1)
    ? "Failed to load OAuth1 token"
    oHttp:destroy()
    oJson:destroy()
    RETURN
ENDIF

oHttp:OAuthToken := oJson:StringOf("oauth_token")
oHttp:OAuthTokenSecret := oJson:StringOf("oauth_token_secret")

//  See the ETrade v1 API documentation HERE.

cRespStr := oHttp:QuickGetStr("https://apisb.etrade.com/v1/accounts/list")
IF (oHttp:LastMethodSuccess != 1)
    ? oHttp:LastErrorText
    oHttp:destroy()
    oJson:destroy()
    RETURN
ENDIF

//  A 200 status code indicates success.
nStatusCode := oHttp:LastStatus
? "statusCode = " + Str(nStatusCode)

//  Use the following online tool to generate parsing code from sample XML: 
//  Generate Parsing Code from XML

//  A sample XML response is shown below...

oXml := CreateObject("Chilkat.Xml")
oXml:LoadXml(cRespStr)

i := 0
nCount_i := oXml:NumChildrenHavingTag("Accounts|Account")
DO WHILE i < nCount_i
    oXml:I := i
    nAccountId := oXml:GetChildIntValue("Accounts|Account[i]|accountId")
    cAccountIdKey := oXml:GetChildContent("Accounts|Account[i]|accountIdKey")
    cAccountMode := oXml:GetChildContent("Accounts|Account[i]|accountMode")
    cAccountDesc := oXml:GetChildContent("Accounts|Account[i]|accountDesc")
    cAccountName := oXml:GetChildContent("Accounts|Account[i]|accountName")
    cAccountType := oXml:GetChildContent("Accounts|Account[i]|accountType")
    cInstitutionType := oXml:GetChildContent("Accounts|Account[i]|institutionType")
    cAccountStatus := oXml:GetChildContent("Accounts|Account[i]|accountStatus")
    nClosedDate := oXml:GetChildIntValue("Accounts|Account[i]|closedDate")
    i := i + 1
ENDDO

//  <?xml version="1.0" encoding="UTF-8"?>
//  <AccountListResponse>
//     <Accounts>
//        <Account>
//           <accountId>84010429</accountId>
//           <accountIdKey>JIdOIAcSpwR1Jva7RQBraQ</accountIdKey>
//           <accountMode>MARGIN</accountMode>
//           <accountDesc>INDIVIDUAL</accountDesc>
//           <accountName>Individual Brokerage</accountName>
//           <accountType>INDIVIDUAL</accountType>
//           <institutionType>BROKERAGE</institutionType>
//           <accountStatus>ACTIVE</accountStatus>
//           <closedDate>0</closedDate>
//        </Account>
//        <Account>
//           <accountId>84010430</accountId>
//           <accountIdKey>JAAOIAcSpwR1Jva7RQBraQ</accountIdKey>
//           <accountMode>MARGIN</accountMode>
//           <accountDesc>INDIVIDUAL</accountDesc>
//           <accountName>Individual Brokerage</accountName>
//           <accountType>INDIVIDUAL</accountType>
//           <institutionType>BROKERAGE</institutionType>
//           <accountStatus>ACTIVE</accountStatus>
//           <closedDate>0</closedDate>
//        </Account>
//     </Accounts>
//  </AccountListResponse>

oHttp:destroy()
oJson:destroy()
oXml:destroy()