Etrade · Capability

E*TRADE API

The E*TRADE Developer Platform exposes REST APIs for account management, quote retrieval, options chains, order placement, and market data. Access is granted to E*TRADE customers via OAuth 1.0a after registering as a developer at https://developer.etrade.com/home.

Run with Naftiko EtradeAPI

What You Can Do

GET
Listaccounts — List accounts
/accounts/list
GET
Getaccountbalance — Get account balance
/accounts/{accountIdKey}/balance
GET
Viewportfolio — View portfolio
/accounts/{accountIdKey}/portfolio
GET
Listtransactions — List transactions
/accounts/{accountIdKey}/transactions
GET
Getquotes — Get quotes
/market/quote/{symbols}
GET
Getoptionchains — Look up option chains
/market/optionchains
POST
Previeworder — Preview order
/accounts/{accountIdKey}/orders/preview
POST
Placeorder — Place order
/accounts/{accountIdKey}/orders/place

MCP Tools

listaccounts

List accounts

read-only idempotent
getaccountbalance

Get account balance

read-only idempotent
viewportfolio

View portfolio

read-only idempotent
listtransactions

List transactions

read-only idempotent
getquotes

Get quotes

read-only idempotent
getoptionchains

Look up option chains

read-only idempotent
previeworder

Preview order

placeorder

Place order

Capability Spec

etrade-capability.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: E*TRADE API
  description: The E*TRADE Developer Platform exposes REST APIs for account management, quote retrieval, options chains, order
    placement, and market data. Access is granted to E*TRADE customers via OAuth 1.0a after registering as a developer at
    https://developer.etrade.com/home.
  tags:
  - Etrade
  - API
  created: '2026-05-06'
  modified: '2026-05-06'
capability:
  consumes:
  - type: http
    namespace: etrade
    baseUri: https://api.etrade.com/v1
    description: E*TRADE API HTTP API.
    resources:
    - name: accounts-list
      path: /accounts/list
      operations:
      - name: listaccounts
        method: GET
        description: List accounts
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: accounts-accountidkey-balance
      path: /accounts/{accountIdKey}/balance
      operations:
      - name: getaccountbalance
        method: GET
        description: Get account balance
        inputParameters:
        - name: accountIdKey
          in: path
          type: string
          required: true
        - name: instType
          in: query
          type: string
          required: true
        - name: realTimeNAV
          in: query
          type: boolean
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: accounts-accountidkey-portfolio
      path: /accounts/{accountIdKey}/portfolio
      operations:
      - name: viewportfolio
        method: GET
        description: View portfolio
        inputParameters:
        - name: accountIdKey
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: accounts-accountidkey-transactions
      path: /accounts/{accountIdKey}/transactions
      operations:
      - name: listtransactions
        method: GET
        description: List transactions
        inputParameters:
        - name: accountIdKey
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: market-quote-symbols
      path: /market/quote/{symbols}
      operations:
      - name: getquotes
        method: GET
        description: Get quotes
        inputParameters:
        - name: symbols
          in: path
          type: string
          required: true
        - name: detailFlag
          in: query
          type: string
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: market-optionchains
      path: /market/optionchains
      operations:
      - name: getoptionchains
        method: GET
        description: Look up option chains
        inputParameters:
        - name: symbol
          in: query
          type: string
          required: true
        - name: expiryYear
          in: query
          type: integer
        - name: expiryMonth
          in: query
          type: integer
        - name: expiryDay
          in: query
          type: integer
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: accounts-accountidkey-orders-preview
      path: /accounts/{accountIdKey}/orders/preview
      operations:
      - name: previeworder
        method: POST
        description: Preview order
        inputParameters:
        - name: accountIdKey
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: accounts-accountidkey-orders-place
      path: /accounts/{accountIdKey}/orders/place
      operations:
      - name: placeorder
        method: POST
        description: Place order
        inputParameters:
        - name: accountIdKey
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
  exposes:
  - type: rest
    port: 8080
    namespace: etrade-rest
    description: REST adapter for E*TRADE API.
    resources:
    - path: /accounts/list
      name: listaccounts
      operations:
      - method: GET
        name: listaccounts
        description: List accounts
        call: etrade.listaccounts
        outputParameters:
        - type: object
          mapping: $.
    - path: /accounts/{accountIdKey}/balance
      name: getaccountbalance
      operations:
      - method: GET
        name: getaccountbalance
        description: Get account balance
        call: etrade.getaccountbalance
        with:
          accountIdKey: rest.accountIdKey
        outputParameters:
        - type: object
          mapping: $.
    - path: /accounts/{accountIdKey}/portfolio
      name: viewportfolio
      operations:
      - method: GET
        name: viewportfolio
        description: View portfolio
        call: etrade.viewportfolio
        with:
          accountIdKey: rest.accountIdKey
        outputParameters:
        - type: object
          mapping: $.
    - path: /accounts/{accountIdKey}/transactions
      name: listtransactions
      operations:
      - method: GET
        name: listtransactions
        description: List transactions
        call: etrade.listtransactions
        with:
          accountIdKey: rest.accountIdKey
        outputParameters:
        - type: object
          mapping: $.
    - path: /market/quote/{symbols}
      name: getquotes
      operations:
      - method: GET
        name: getquotes
        description: Get quotes
        call: etrade.getquotes
        with:
          symbols: rest.symbols
        outputParameters:
        - type: object
          mapping: $.
    - path: /market/optionchains
      name: getoptionchains
      operations:
      - method: GET
        name: getoptionchains
        description: Look up option chains
        call: etrade.getoptionchains
        outputParameters:
        - type: object
          mapping: $.
    - path: /accounts/{accountIdKey}/orders/preview
      name: previeworder
      operations:
      - method: POST
        name: previeworder
        description: Preview order
        call: etrade.previeworder
        with:
          accountIdKey: rest.accountIdKey
        outputParameters:
        - type: object
          mapping: $.
    - path: /accounts/{accountIdKey}/orders/place
      name: placeorder
      operations:
      - method: POST
        name: placeorder
        description: Place order
        call: etrade.placeorder
        with:
          accountIdKey: rest.accountIdKey
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    port: 9090
    namespace: etrade-mcp
    transport: http
    description: MCP adapter for E*TRADE API for AI agent use.
    tools:
    - name: listaccounts
      description: List accounts
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: etrade.listaccounts
      outputParameters:
      - type: object
        mapping: $.
    - name: getaccountbalance
      description: Get account balance
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: etrade.getaccountbalance
      with:
        accountIdKey: tools.accountIdKey
        instType: tools.instType
        realTimeNAV: tools.realTimeNAV
      inputParameters:
      - name: accountIdKey
        type: string
        description: accountIdKey
        required: true
      - name: instType
        type: string
        description: instType
        required: true
      - name: realTimeNAV
        type: boolean
        description: realTimeNAV
      outputParameters:
      - type: object
        mapping: $.
    - name: viewportfolio
      description: View portfolio
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: etrade.viewportfolio
      with:
        accountIdKey: tools.accountIdKey
      inputParameters:
      - name: accountIdKey
        type: string
        description: accountIdKey
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: listtransactions
      description: List transactions
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: etrade.listtransactions
      with:
        accountIdKey: tools.accountIdKey
      inputParameters:
      - name: accountIdKey
        type: string
        description: accountIdKey
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: getquotes
      description: Get quotes
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: etrade.getquotes
      with:
        symbols: tools.symbols
        detailFlag: tools.detailFlag
      inputParameters:
      - name: symbols
        type: string
        description: symbols
        required: true
      - name: detailFlag
        type: string
        description: detailFlag
      outputParameters:
      - type: object
        mapping: $.
    - name: getoptionchains
      description: Look up option chains
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: etrade.getoptionchains
      with:
        symbol: tools.symbol
        expiryYear: tools.expiryYear
        expiryMonth: tools.expiryMonth
        expiryDay: tools.expiryDay
      inputParameters:
      - name: symbol
        type: string
        description: symbol
        required: true
      - name: expiryYear
        type: integer
        description: expiryYear
      - name: expiryMonth
        type: integer
        description: expiryMonth
      - name: expiryDay
        type: integer
        description: expiryDay
      outputParameters:
      - type: object
        mapping: $.
    - name: previeworder
      description: Preview order
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: etrade.previeworder
      with:
        accountIdKey: tools.accountIdKey
      inputParameters:
      - name: accountIdKey
        type: string
        description: accountIdKey
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: placeorder
      description: Place order
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: etrade.placeorder
      with:
        accountIdKey: tools.accountIdKey
      inputParameters:
      - name: accountIdKey
        type: string
        description: accountIdKey
        required: true
      outputParameters:
      - type: object
        mapping: $.