Introduction
The E*TRADE Java SDK is a library of Java methods written on top of the E*TRADE REST API. It provides Java developers with convenient, Java-based access to our trading platform.
What you can do with the E*TRADE Java SDK
The Java SDK allows you to programmatically execute trades directly through the E*TRADE REST API in your Java application, without having to deal with the mechanics of HTTP. It provides code libraries for the following functional areas:
  • Authentication
  • Accounts
  • Market Data
  • Orders
How to install the E*TRADE Java SDK
The E*TRADE Java SDK requires JDK 1.6. In addition, it requires that the following 3rd-party jars be present and included in your CLASSPATH. You can download them from the listed sites if necessary.
3rd-party libraries Links for downloading them if necessary
log4j-1.2.15.jar http://www.apache.org/dyn/closer.cgi/logging/log4j/1.2.15/apache-log4j-1.2.15.tar.gz
commons-codec-1.3.jar

http://archive.apache.org/dist/commons/codec/binaries/

commons-httpclient-3.1.jar

http://archive.apache.org/dist/httpcomponents/commons-httpclient/binary/

xstream-1.3.1.jar

http://repo.maven.apache.org/maven2/com/thoughtworks/xstream/xstream/ 

commons-lang-2.4.jar

http://archive.apache.org/dist/commons/lang/binaries/ 

commons-logging-1.0.4.jar

http://archive.apache.org/dist/commons/logging/binaries/

commons-httpclient-contrib-ssl-3.1.jar 
http://52north.org/maven/repo/releases/commons-httpclient/commons-httpclient-contrib-ssl/3.1/ 

Finally, you'll need the SDK itself, which can be downloaded from the E*TRADE developer website here.

The All_Jar.zip file expands into the following libraries:

Filename Library
etws-common-connections-1.0.jar Dependent library
etws-oauth-sdk-1.0.jar OAuth
etws-accounts-sdk-1.0.jar Accounts
etws-market-sdk-1.0.jar Market Data
etws-order-sdk-1.0.jar Orders

You can begin using the SDK as soon as it's installed. For details on data structures, data types, options, and other details of individual API features, consult the REST API reference documentation.

E*TRADE Java Methods
This table lists the methods provided by the E*TRADE Java SDK.
Module Method Description
OAuth getRequestToken Returns Request Token
  getAuthorizeURL Returns URL for E*TRADE authorization page
  getAccessToken Returns access token
  renewAccessToken Renews an access token
  revokeAccessToken Revokes an access token
Accounts getAccountList Returns the complete list of E*TRADE accounts for the current user, including IRA, savings, checking, etc.
  getAccountBalance Returns the current account balance and related details for a specified account
  getAccountPositions Returns the positions held in the specified account
  getAlerts Lists alerts for the current user
  getAlertDetails Retrieves alert detail
  deleteAlert Method to delete a particular alert
Market getQuote Returns current market information for equities and options
  productLookup Looks up basic information about a stock or other instrument
  getExpiryDates Returns a list of the expiration dates for options that have the specified underlier
  getOptionChain Returns a list of option chains associated with a specific underlier
Order getOrderList Returns a list of open orders or orders updated during the current day
  previewEquityOrder Returns a preview of an equity order
  placeEquityOrder Submits an equity order
  previewChangeEquityOrder Returns a preview of a change to an equity order
  placeChangeEquityOrder Executes a change equity order request.
  previewOptionOrder Returns a preview of an option order
  placeOptionOrder Submits an option order
  previewChangeOptionOrder Returns a preview of a change to an option order
  placeChangeOptionOrder Executes a change to an option order
  cancelOrder Cancels an order
PLEASE READ THE IMPORTANT DISCLOSURES BELOW

By using E*TRADE API ("API") and accepting the terms of the Application Programming Interface License Agreement and the Application Programming Interface User Agreement, you agree that API may employ security policies, procedures and systems of Third Party providers which may or may not be less stringent and secure than the policies, procedures and systems of E*TRADE Securities LLC ("E*TRADE") or its affiliates. Material provided on API may have been produced by independent third parties not affiliated or endorsed by E*TRADE or its affiliates ("Third Party"). To the extent that API or Third Party providers express opinions or make recommendations, you understand that such opinions or recommendations are expressed by the Third Party provider and are not the opinions or recommendations of E*TRADE or its affiliates. E*TRADE is not responsible for the accuracy of market data displayed on API or made available by Third Party providers. There may be latency between the time an order (or other information) is submitted from API and the time the order is received by E*TRADE. The E*TRADE Two Second Execution Guarantee or any similar guarantee does not apply for orders placed through API and Third Party provider web sites. The E*TRADE CompleteTM Protection Guarantee does not apply. Orders created and submitted through API are not vetted until they are received by E*TRADE. It is possible that E*TRADE may reject an order placed through API. Please see the Application Programming Interface License Agreement and the Application Programming Interface User Agreement for more information.


The E*TRADE family of companies provides financial services including trading, investing, and related banking products and services to retail investors.


Securities products and services offered by E*TRADE Securities LLC, Member FINRA/SIPC.


System response and account access times may vary due to a variety of factors, including trading volumes, market conditions, system performance, and other factors.