TD Ameritrade Watchlist API

The Watchlist API from TD Ameritrade — 3 operation(s) for watchlist.

Operations 7

POST /accounts/{accountId}/watchlists APIs to perform CRUD operations on Account Watchlist #
GET /accounts/{accountId}/watchlists APIs to perform CRUD operations on Account Watchlist #
DELETE /accounts/{accountId}/watchlists/{watchlistId} APIs to perform CRUD operations on Account Watchlist #
PUT /accounts/{accountId}/watchlists/{watchlistId} APIs to perform CRUD operations on Account Watchlist #
PATCH /accounts/{accountId}/watchlists/{watchlistId} APIs to perform CRUD operations on Account Watchlist #
GET /accounts/{accountId}/watchlists/{watchlistId} APIs to perform CRUD operations on Account Watchlist #
GET /accounts/watchlists APIs to perform CRUD operations on Account Watchlist #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/td-ameritrade-watchlist-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

td-ameritrade-watchlist-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: TD Ameritrade API
  version: 3.0.1
  title: TD Ameritrade Accounts and Trading Watchlist API
  termsOfService: https://developer.tdameritrade.com/legal
  contact:
    email: austin.millan@protonmail.com
servers:
- url: https://api.tdameritrade.com/v2
- url: http://api.tdameritrade.com/v2
tags:
- name: Watchlist
paths:
  /accounts/{accountId}/watchlists:
    post:
      tags:
      - Watchlist
      summary: APIs to perform CRUD operations on Account Watchlist
      description: Create watchlist for specific account.This method does not verify that the symbol or asset type are valid.
      operationId: createWatchlist
      parameters:
      - name: accountId
        in: path
        description: Account ID
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateWatchlist'
      responses:
        '200':
          description: OK
        '400':
          description: An error message indicating the validation problem with the request.
        '401':
          description: An error message indicating the caller must pass a valid AuthToken in the HTTP authorization request header.
        '500':
          description: An error message indicating there was an unexpected server error.
      security:
      - Bearer: []
    get:
      tags:
      - Watchlist
      summary: APIs to perform CRUD operations on Account Watchlist
      description: All watchlists of an account.
      operationId: getWatchlistSingleAccount
      parameters:
      - name: accountId
        in: path
        description: Account ID
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Watchlist'
        '401':
          description: An error message indicating the caller must pass a valid AuthToken in the HTTP authorization request header.
        '500':
          description: An error message indicating there was an unexpected server error.
      security:
      - Bearer: []
  /accounts/{accountId}/watchlists/{watchlistId}:
    delete:
      tags:
      - Watchlist
      summary: APIs to perform CRUD operations on Account Watchlist
      description: Delete watchlist for a specific account. This method does not verify that the symbol or asset type are valid.
      operationId: deleteWatchlist
      parameters:
      - name: accountId
        in: path
        description: Account ID
        required: true
        schema:
          type: string
      - name: watchlistId
        in: path
        description: Watchlist ID
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
        '204':
          description: Watchlist deleted.
        '400':
          description: An error message indicating the validation problem with the request.
        '401':
          description: An error message indicating the caller must pass a valid AuthToken in the HTTP authorization request header.
        '500':
          description: An error message indicating there was an unexpected server error.
      security:
      - Bearer: []
    put:
      tags:
      - Watchlist
      summary: APIs to perform CRUD operations on Account Watchlist
      description: Replace watchlist for specific account. This method does not verify that the symbol or asset type are valid.
      operationId: replaceWatchlist
      parameters:
      - name: accountId
        in: path
        description: Account ID
        required: true
        schema:
          type: string
      - name: watchlistId
        in: path
        description: Watchlist ID
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateWatchlist'
      responses:
        '200':
          description: OK
        '204':
          description: Watchlist updated.
        '400':
          description: An error message indicating the validation problem with the request.
        '401':
          description: An error message indicating the caller must pass a valid AuthToken in the HTTP authorization request header.
        '500':
          description: An error message indicating there was an unexpected server error.
      security:
      - Bearer: []
    patch:
      tags:
      - Watchlist
      summary: APIs to perform CRUD operations on Account Watchlist
      description: 'Partially update watchlist for a specific account: change watchlist name, add to the beginning/end of a watchlist, update or delete items in a watchlist. This method does not verify that the symbol or asset type are valid.'
      operationId: updateWatchlist
      parameters:
      - name: accountId
        in: path
        description: Account ID
        required: true
        schema:
          type: string
      - name: watchlistId
        in: path
        description: Watchlist ID
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateWatchlist'
      responses:
        '200':
          description: OK
        '204':
          description: Watchlist updated.
        '400':
          description: An error message indicating the validation problem with the request.
        '401':
          description: An error message indicating the caller must pass a valid AuthToken in the HTTP authorization request header.
        '500':
          description: An error message indicating there was an unexpected server error.
      security:
      - Bearer: []
    get:
      tags:
      - Watchlist
      summary: APIs to perform CRUD operations on Account Watchlist
      description: Specific watchlist for a specific account.
      operationId: getWatchlist
      parameters:
      - name: accountId
        in: path
        description: Account ID
        required: true
        schema:
          type: string
      - name: watchlistId
        in: path
        description: Watchlist ID
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Watchlist'
        '400':
          description: An error message indicating the validation problem with the request.
        '401':
          description: An error message indicating the caller must pass a valid AuthToken in the HTTP authorization request header.
        '404':
          description: An error message indicating the account or the watchlist ID does not exist.
        '500':
          description: An error message indicating there was an unexpected server error.
      security:
      - Bearer: []
  /accounts/watchlists:
    get:
      tags:
      - Watchlist
      summary: APIs to perform CRUD operations on Account Watchlist
      description: All watchlists for all of the user's linked accounts.
      operationId: getWatchlistMultipleAccounts
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Watchlist'
        '401':
          description: An error message indicating the caller must pass a valid AuthToken in the HTTP authorization request header.
        '500':
          description: An error message indicating there was an unexpected server error.
      security:
      - Bearer: []
components:
  schemas:
    Watchlist:
      properties:
        accountId:
          example: string
          type: string
        name:
          example: string
          type: string
        status:
          example: '''UNCHANGED'' or ''CREATED'' or ''UPDATED'' or ''DELETED'''
          type: string
        watchlistId:
          example: string
          type: string
        watchlistItems:
          items:
            properties:
              averagePrice:
                example: 0
                type: number
              commission:
                example: 0
                type: number
              instrument:
                properties:
                  assetType:
                    $ref: '#/components/schemas/AssetType'
                  description:
                    example: string
                    type: string
                  symbol:
                    example: string
                    type: string
                type: object
              purchasedDate:
                example: DateParam
                type: string
              quantity:
                example: 0
                type: number
              sequenceId:
                example: 0
                type: number
              status:
                example: '''UNCHANGED'' or ''CREATED'' or ''UPDATED'' or ''DELETED'''
                type: string
            type: object
          type: array
      type: object
    CreateWatchlist:
      properties:
        name:
          example: string
          type: string
        watchlistItems:
          items:
            properties:
              averagePrice:
                example: 0
                format: int32
                type: integer
              commission:
                example: 0
                format: int32
                type: integer
              instrument:
                properties:
                  assetType:
                    $ref: '#/components/schemas/AssetType'
                  symbol:
                    example: string
                    type: string
                type: object
              purchasedDate:
                example: DateParam
                type: string
              quantity:
                example: 0
                format: int32
                type: integer
            type: object
          type: array
      type: object
    AssetType:
      enum:
      - EQUITY
      - OPTION
      - FUTURE_OPTION
      - INDICATOR
      - FOREX
      - MUTUAL_FUND
      - INDEX
      - CASH_EQUIVALENT
      - FIXED_INCOME
      - CURRENCY
      - ETF
      - BOND
      - UNKNOWN
      example: '''EQUITY'' or ''OPTION'' or ''INDEX'' or ''MUTUAL_FUND'' or ''CASH_EQUIVALENT'' or ''FIXED_INCOME'' or ''CURRENCY'''
      type: string
    UpdateWatchlist:
      properties:
        name:
          example: string
          type: string
        watchlistId:
          example: string
          type: string
        watchlistItems:
          items:
            properties:
              averagePrice:
                example: 0
                format: int32
                type: integer
              commission:
                example: 0
                format: int32
                type: integer
              instrument:
                properties:
                  assetType:
                    $ref: '#/components/schemas/AssetType'
                  symbol:
                    example: string
                    type: string
                type: object
              purchasedDate:
                example: DateParam
                type: string
              quantity:
                example: 0
                format: int32
                type: integer
              sequenceId:
                example: 0
                format: int32
                type: integer
            type: object
          type: array
      type: object
  securitySchemes:
    Bearer:
      type: apiKey
      name: Authorization
      in: header
externalDocs:
  description: Find out more about Swagger
  url: http://swagger.io