Sample code for 30+ languages & platforms
Objective-C

ETrade v1 List Accounts

See more HTTP Misc Examples

List ETrade accounts using the ETrade v1 API.

Chilkat Objective-C Downloads

Objective-C
#import <CkoHttp.h>
#import <CkoJsonObject.h>
#import <NSString.h>
#import <CkoXml.h>

BOOL success = NO;

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

CkoHttp *http = [[CkoHttp alloc] init];

http.OAuth1 = YES;
http.OAuthVerifier = @"";
http.OAuthConsumerKey = @"ETRADE_CONSUMER_KEY";
http.OAuthConsumerSecret = @"ETRADE_CONSUMER_SECRET";

// Load the access token previously obtained via the OAuth1 3-Legged Authorization examples Step1 and Step2.
CkoJsonObject *json = [[CkoJsonObject alloc] init];
success = [json LoadFile: @"qa_data/tokens/etrade.json"];
if (success != YES) {
    NSLog(@"%@",@"Failed to load OAuth1 token");
    return;
}

http.OAuthToken = [json StringOf: @"oauth_token"];
http.OAuthTokenSecret = [json StringOf: @"oauth_token_secret"];

// See the ETrade v1 API documentation HERE.

NSString *respStr = [http QuickGetStr: @"https://apisb.etrade.com/v1/accounts/list"];
if (http.LastMethodSuccess != YES) {
    NSLog(@"%@",http.LastErrorText);
    return;
}

// A 200 status code indicates success.
int statusCode = [http.LastStatus intValue];
NSLog(@"%@%d",@"statusCode = ",statusCode);

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

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

CkoXml *xml = [[CkoXml alloc] init];
[xml LoadXml: respStr];

int i;
int count_i;
NSString *tagPath = 0;
int accountId;
NSString *accountIdKey = 0;
NSString *accountMode = 0;
NSString *accountDesc = 0;
NSString *accountName = 0;
NSString *accountType = 0;
NSString *institutionType = 0;
NSString *accountStatus = 0;
int closedDate;

i = 0;
count_i = [[xml NumChildrenHavingTag: @"Accounts|Account"] intValue];
while (i < count_i) {
    xml.I = [NSNumber numberWithInt: i];
    accountId = [[xml GetChildIntValue: @"Accounts|Account[i]|accountId"] intValue];
    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"] intValue];
    i = i + 1;
}

// <?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>