Sample code for 30+ languages & platforms
Dart

ETrade List Accounts

See more ETrade Examples

Returns a list of E*TRADE accounts for the current user.

Chilkat Dart Downloads

Dart
import 'package:chilkat/chilkat.dart';

void main() {
  // This requires the Chilkat API to have been previously unlocked.
  // See Global Unlock Sample for sample code.

  final http = CkHttp();

  http.oAuth1 = true;
  http.oAuthVerifier = '';
  http.oAuthConsumerKey = 'ETRADE_CONSUMER_KEY';
  http.oAuthConsumerSecret = 'ETRADE_CONSUMER_SECRET';

  // Load the access token previously obtained via the OAuth1 Authorization
  final jsonToken = CkJsonObject();
  try {
    jsonToken.loadFile('qa_data/tokens/etrade.json');
  } on ChilkatException {
    print('Failed to load OAuth1 token');
    return;
  }

  http.oAuthToken = jsonToken.stringOf('oauth_token');
  http.oAuthTokenSecret = jsonToken.stringOf('oauth_token_secret');

  final sandboxUrl = 'https://apisb.etrade.com/v1/accounts/list';
  final liveUrl = 'https://api.etrade.com/v1/accounts/list';

  final resp = CkHttpResponse();
  try {
    http.httpNoBody('GET', sandboxUrl, resp);
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  // Make sure a successful response was received.
  if (resp.statusCode >= 300) {
    print(resp.statusLine);
    print(resp.header);
    print(resp.bodyStr);
    return;
  }

  if (resp.statusCode == 204) {
    print('No records available.');
    return;
  }

  // Sample XML response:

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

  // <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  // <AccountListResponse>
  //     <Accounts>
  //         <Account>
  //             <accountId>82314598</accountId>
  //             <accountIdKey>dBZOKt9xDrtRSAOl4MSiiA</accountIdKey>
  //             <accountMode>IRA</accountMode>
  //             <accountDesc>Brokerage</accountDesc>
  //             <accountName>NickName-1</accountName>
  //             <accountType>MARGIN</accountType>
  //             <institutionType>BROKERAGE</institutionType>
  //             <accountStatus>ACTIVE</accountStatus>
  //             <closedDate>0</closedDate>
  //         </Account>
  //         <Account>
  //             <accountId>58315636</accountId>
  //             <accountIdKey>vQMsebA1H5WltUfDkJP48g</accountIdKey>
  //             <accountMode>BROKERAGE</accountMode>
  //             <accountDesc>Complete Savings</accountDesc>
  //             <accountName>NickName-2</accountName>
  //             <accountType>INDIVIDUAL</accountType>
  //             <institutionType>BROKERAGE</institutionType>
  //             <accountStatus>ACTIVE</accountStatus>
  //             <closedDate>0</closedDate>
  //         </Account>
  //         <Account>
  //             <accountId>70700418</accountId>
  //             <accountIdKey>6_Dpy0rmuQ9cu9IbTfvF2A</accountIdKey>
  //             <accountMode>CASH</accountMode>
  //             <accountDesc>INDIVIDUAL</accountDesc>
  //             <accountName>NickName-3</accountName>
  //             <accountType>INDIVIDUAL</accountType>
  //             <institutionType>BROKERAGE</institutionType>
  //             <accountStatus>ACTIVE</accountStatus>
  //             <closedDate>0</closedDate>
  //         </Account>
  //         <Account>
  //             <accountId>83515143</accountId>
  //             <accountIdKey>xj1Dc18FTqWPqkEEVUr5rw</accountIdKey>
  //             <accountMode>CASH</accountMode>
  //             <accountDesc>INDIVIDUAL</accountDesc>
  //             <accountName/>
  //             <accountType>CASH</accountType>
  //             <institutionType>BROKERAGE</institutionType>
  //             <accountStatus>CLOSED</accountStatus>
  //             <closedDate>1521027780</closedDate>
  // 
  //         </Account>
  //     </Accounts>
  // </AccountListResponse>

  final xml = CkXml();
  xml.loadXml(resp.bodyStr);
  print(xml.getXml());

  var accountId = 0;
  var accountIdKey = '';
  var accountMode = '';
  var accountDesc = '';
  var accountName = '';
  var accountType = '';
  var institutionType = '';
  var accountStatus = '';
  var closedDate = 0;

  var i = 0;
  final countI = xml.numChildrenHavingTag('Accounts|Account');
  while (i < countI) {
    xml.i = i;
    accountId = xml.getChildIntValue('Accounts|Account[i]|accountId');
    accountIdKey = xml.getChildContent('Accounts|Account[i]|accountIdKey');
    accountMode = xml.getChildContent('Accounts|Account[i]|accountMode');
    accountDesc = xml.getChildContent('Accounts|Account[i]|accountDesc');
    accountName = xml.getChildContent('Accounts|Account[i]|accountName');
    accountType = xml.getChildContent('Accounts|Account[i]|accountType');
    institutionType = xml.getChildContent('Accounts|Account[i]|institutionType');
    accountStatus = xml.getChildContent('Accounts|Account[i]|accountStatus');
    closedDate = xml.getChildIntValue('Accounts|Account[i]|closedDate');
    i++;
  }

  print('Success.');
}