openapi: 3.0.0 info: title: Broker Account Activities Watchlists API description: Open brokerage accounts, enable crypto and stock trading, and manage the ongoing user experience with Alpaca Broker API version: 1.0.0 contact: name: Alpaca Support email: support@alpaca.markets url: https://alpaca.markets/support termsOfService: https://s3.amazonaws.com/files.alpaca.markets/disclosures/library/TermsAndConditions.pdf servers: - url: https://broker-api.sandbox.alpaca.markets description: Sandbox endpoint - url: https://broker-api.alpaca.markets description: Production endpoint security: - BasicAuth: [] tags: - name: Watchlists description: Head to https://alpaca.markets/docs/api-documentation/api-v2/watchlist/ to view complete documentation on the Watchlist API. paths: /v2/watchlists: get: tags: - Watchlists summary: Watchlists parameters: [] responses: '200': description: Successful response content: application/json: examples: example-1: value: - id: 3174d6df-7726-44b4-a5bd-7fda5ae6e009 account_id: abe25343-a7ba-4255-bdeb-f7e013e9ee5d created_at: '2022-01-31T21:49:05.14628Z' updated_at: '2022-01-31T21:49:05.14628Z' name: Primary Watchlist schema: type: array items: $ref: '#/components/schemas/Watchlist' operationId: getWatchlists description: Returns the list of watchlists registered under the account. post: tags: - Watchlists summary: Watchlist description: Create a new watchlist with initial set of assets. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateWatchlistRequest' parameters: [] responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/Watchlist' operationId: postWatchlist /v2/watchlists/{watchlist_id}: parameters: - schema: type: string format: uuid name: watchlist_id in: path required: true description: watchlist id get: tags: - Watchlists summary: Get Watchlist by ID parameters: [] responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/Watchlist' operationId: getWatchlistById description: Returns a watchlist identified by the ID. put: tags: - Watchlists summary: Update Watchlist By Id requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateWatchlistRequest' parameters: [] responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/Watchlist' operationId: updateWatchlistById description: Update the name and/or content of watchlist post: tags: - Watchlists summary: Add Asset to Watchlist requestBody: content: application/json: schema: $ref: '#/components/schemas/AddAssetToWatchlistRequest' parameters: [] responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/Watchlist' operationId: addAssetToWatchlist description: Append an asset for the symbol to the end of watchlist asset list delete: tags: - Watchlists summary: Delete Watchlist By Id parameters: [] responses: '204': description: No Content operationId: deleteWatchlistById description: Delete a watchlist. This is a permanent deletion. /v2/watchlists:by_name: parameters: [] get: tags: - Watchlists summary: Get Watchlist by Name parameters: - schema: type: string in: query name: name required: true description: name of the watchlist responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/Watchlist' operationId: getWatchlistByName description: Returns a watchlist by name put: tags: - Watchlists summary: Update Watchlist By Name requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateWatchlistRequest' parameters: - schema: type: string in: query name: name required: true description: name of the watchlist responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/Watchlist' operationId: updateWatchlistByName description: Update the name and/or content of watchlist post: tags: - Watchlists summary: Add Asset to Watchlist By Name requestBody: content: application/json: schema: $ref: '#/components/schemas/AddAssetToWatchlistRequest' parameters: - schema: type: string in: query name: name required: true description: name of the watchlist responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/Watchlist' operationId: addAssetToWatchlistByName description: Append an asset for the symbol to the end of watchlist asset list delete: tags: - Watchlists summary: Delete Watchlist By Name parameters: - schema: type: string in: query name: name required: true description: name of the watchlist responses: '204': description: No Content operationId: deleteWatchlistByName description: Delete a watchlist. This is a permanent deletion. /v2/watchlists/{watchlist_id}/{symbol}: parameters: - schema: type: string format: uuid name: watchlist_id in: path required: true description: Watchlist ID - schema: type: string name: symbol in: path required: true description: symbol name to remove from the watchlist content delete: tags: - Watchlists summary: Symbol from Watchlist parameters: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Watchlist' description: Returns the updated watchlist operationId: removeAssetFromWatchlist description: Delete one entry for an asset by symbol name components: schemas: Assets: description: 'The assets API serves as the master list of assets available for trade and data consumption from Alpaca. Assets are sorted by asset class, exchange and symbol. Some assets are only available for data consumption via Polygon, and are not tradable with Alpaca. These assets will be marked with the flag tradable=false. ' type: object x-examples: example-1: id: b0b6dd9d-8b9b-48a9-ba46-b9d54906e415 class: us_equity exchange: NASDAQ symbol: AAPL name: Apple Inc. Common Stock status: active tradable: true marginable: true shortable: true easy_to_borrow: true fractionable: true title: Assets properties: id: type: string format: uuid description: Asset ID class: $ref: '#/components/schemas/AssetClass' exchange: $ref: '#/components/schemas/Exchange' symbol: type: string description: The symbol of the asset example: AAPL name: type: string minLength: 1 description: The official name of the asset status: type: string description: active or inactive example: active enum: - active - inactive tradable: type: boolean description: Asset is tradable on Alpaca or not marginable: type: boolean description: Asset is marginable or not shortable: type: boolean description: Asset is shortable or not easy_to_borrow: type: boolean description: Asset is easy-to-borrow or not (filtering for easy_to_borrow = True is the best way to check whether the name is currently available to short at Alpaca). fractionable: type: boolean description: Asset is fractionable or not required: - id - class - exchange - symbol - name - status - tradable - marginable - shortable - easy_to_borrow - fractionable Watchlist: description: 'The watchlist API provides CRUD operation for the account’s watchlist. An account can have multiple watchlists and each is uniquely identified by id but can also be addressed by user-defined name. Each watchlist is an ordered list of assets. ' type: object x-examples: example-1: id: 3174d6df-7726-44b4-a5bd-7fda5ae6e009 account_id: abe25343-a7ba-4255-bdeb-f7e013e9ee5d created_at: '2022-01-31T21:49:05.14628Z' updated_at: '2022-01-31T21:49:05.14628Z' name: Primary Watchlist assets: - id: 8ccae427-5dd0-45b3-b5fe-7ba5e422c766 class: us_equity exchange: NASDAQ symbol: TSLA name: Tesla, Inc. Common Stock status: active tradable: true marginable: true shortable: true easy_to_borrow: true fractionable: true title: Watchlist properties: id: type: string format: uuid description: watchlist id account_id: type: string format: uuid description: account ID created_at: type: string format: date-time updated_at: type: string format: date-time name: type: string minLength: 1 description: user-defined watchlist name (up to 64 characters) assets: type: array description: the content of this watchlist, in the order as registered by the client items: $ref: '#/components/schemas/Assets' required: - id - account_id - created_at - updated_at - name Exchange: title: Exchange type: string description: 'Represents the current exchanges Alpaca supports. List is currently: - AMEX - ARCA - BATS - NYSE - NASDAQ - NYSEARCA - OTC' enum: - AMEX - ARCA - BATS - NYSE - NASDAQ - NYSEARCA - OTC example: NYSE AssetClass: type: string title: AssetClass enum: - us_equity - crypto example: us_equity description: Represents what class of asset this is. Currently only supports `us_equity` or `crypto` x-examples: example-1: us_equity AddAssetToWatchlistRequest: title: AddAssetToWatchlistRequest type: object description: Append an asset for the symbol to the end of watchlist asset list properties: symbol: type: string example: AAPL description: symbol name to append to watchlist UpdateWatchlistRequest: title: PostWatchlistRequest type: object description: Request format used for creating a new watchlist or updating an existing watchlist with a set of assets and name. properties: name: type: string symbols: type: array items: type: string nullable: true required: - name securitySchemes: BasicAuth: type: http scheme: basic