Sample code for 30+ languages & platforms
Rust

ETrade v1 List Accounts

See more HTTP Misc Examples

List ETrade accounts using the ETrade v1 API.

Chilkat Rust Downloads

Rust

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

let http = chilkat::Http::new();

http.set_o_auth1(true);
http.set_o_auth_verifier("");
http.set_o_auth_consumer_key("ETRADE_CONSUMER_KEY");
http.set_o_auth_consumer_secret("ETRADE_CONSUMER_SECRET");

// Load the access token previously obtained via the OAuth1 3-Legged Authorization examples Step1 and Step2.
let json = chilkat::JsonObject::new();
if json.load_file("qa_data/tokens/etrade.json").is_err() {
    println!("Failed to load OAuth1 token");
    return;
}

http.set_o_auth_token(&json.string_of("oauth_token").unwrap_or_default());
http.set_o_auth_token_secret(&json.string_of("oauth_token_secret").unwrap_or_default());

// See the ETrade v1 API documentation HERE.

let Ok(resp_str) = http.quick_get_str("https://apisb.etrade.com/v1/accounts/list") else {
    println!("{}", http.last_error_text());
    return;
};

// A 200 status code indicates success.
let status_code = http.last_status();
println!("statusCode = {}", status_code);

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

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

let xml = chilkat::Xml::new();
let _ = xml.load_xml(&resp_str);

let mut i: i32 = 0;

i = 0;
let count_i = xml.num_children_having_tag("Accounts|Account");
while i < count_i {
    xml.set_i(i);
    let _ = xml.get_child_int_value("Accounts|Account[i]|accountId");
    let _ = xml.get_child_content("Accounts|Account[i]|accountIdKey").unwrap_or_default();
    let _ = xml.get_child_content("Accounts|Account[i]|accountMode").unwrap_or_default();
    let _ = xml.get_child_content("Accounts|Account[i]|accountDesc").unwrap_or_default();
    let _ = xml.get_child_content("Accounts|Account[i]|accountName").unwrap_or_default();
    let _ = xml.get_child_content("Accounts|Account[i]|accountType").unwrap_or_default();
    let _ = xml.get_child_content("Accounts|Account[i]|institutionType").unwrap_or_default();
    let _ = xml.get_child_content("Accounts|Account[i]|accountStatus").unwrap_or_default();
    let _ = xml.get_child_int_value("Accounts|Account[i]|closedDate");
    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>