Information to get you started
The E*TRADE Developer Platform enables E*TRADE customers and developers to create their own investment applications that leverage E*TRADE's extensive market data offerings, order-routing capabilities, and other services.
The platform's API also allows E*TRADE customers who currently use a third-party trading platform to view E*TRADE account and market information and place trade orders directly to E*TRADE from that platform.
Using the E*TRADE Developer Platform, a client application can:
- Authenticate E*TRADE customers
- Directly manage trading: place orders, modify or cancel orders, and check order status
- Review specific information for an account, such as balances and current positions
- Retrieve price and other information about an index, stock, or option
- Receive system messages from E*TRADE
Terminology
This documentation assumes that the developer is familiar with trading concepts and market terminology. For clarification of market terms, you may find the E*TRADE Financial Help Center helpful.
Dates and times are all US Eastern Time. Most times and dates in API responses are represented as epoch time, i.e., the number of seconds since 12:00am on January 1, 1970.
Architecture
The E*TRADE Developer Platform provides most of its services via a REST API. Most of the API features are accessed via simple HTTP GET requests. Requests that require detailed input, such as an order to buy or sell stock, use an HTTP POST request, with the parameters included as either XML or JSON data. The HTTP DELETE request is also used, with one API, to delete messages after they have been read.
Authorization
The E*TRADE REST API uses the OAuth protocol to authorize every service request. In practice, this means that your application must enable users to log in to their E*TRADE account and click a consent button to grant access for each session. For your application to do this, even for testing purposes, requires an OAuth consumer key - a code that uniquely identifies the application (i.e., the service consumer) and its developer.
Consumer keys
We support two levels of consumer key. An individual key is tied to a single user ID, and allows access for only that user. This is appropriate for developing applications for personal use. A vendor key, on the other hand, permits access by multiple users and is appropriate for applications that may be widely distributed.
Note that separate keys are required for accessing "sandbox" data (used for development and testing purposes) versus actual production data. For this reason, a typical developer has at least two consumer keys.
Requesting keys
To request a key, you must have an E*TRADE account. (You will also need the account so that you can log in and use your application.) It can be a personal, professional, or corporate account. If you don't have one, you can quickly set one up online at https://www.etrade.com. For development purposes, it is not necessary to fund the account, but to do any actual trading will require funds.
When you are logged in to your account, request a Sandbox consumer key via this convenient link https://us.etrade.com/etx/ris/apikey
Note that if you are assigned an individual key, rather than a vendor key, it will only work with your E*TRADE account. Attempting to use an individual key with a different user account will result in an error. Your Individual Key will work with any of your E*TRADE accounts.
To request either an Individual or Vendor LIVE API key, please navigate to the bottom of this page and complete your API Developer Agreement and User Intent Survey. Individual Keys will be provided immediately in page upon satisfying these requirements.
Vendor keys will be provided immediately in page, but will be Inactive. E*TRADE will reach out to you via email to schedule your short online Vendor demo with Product and Legal teams. Upon approval of your access based on your demo, your key will be made active.
If you already have your Live Keys, you do not need to complete any of the below processes. These are for new customers seeking to gain keys through our self-service process.
Here are some things you need to gain and maintain API access
User Intent Survey
As a developer, you must disclose to us your intentions with your API access by completing our API User Intent Survey located here.
STEP 1: API USER INTENT SURVEY
API Agreement
As a developer, you are asked to sign an API agreement before you will be issued a consumer key for production data. As mentioned earlier, requesting a key requires that you log in to your E*TRADE account and send a secure message.
STEP 2: API AGREEMENT
Market Data Agreement
As a user, you must sign the Market Data Agreement before you can access data with the quote API. Additionally, you must sign the Extended Hours Trading Agreement before you can perform after-hours trading (if the application supports this feature).
Market Data Attestation
As a developer, you must return to this page Annually after completing our Developer Agreement in order to attest to your Market Data Attestation.