GET /v2/orders returns unrelated option legs when filtering by symbols parameter

Hello Alpaca Team,

I believe I’ve encountered a bug with the Get All Orders endpoint when using the symbols query parameter.

Endpoint

GET /v2/orders?status=all&limit=500&symbols=BABA

Environment

  • Paper trading

  • API v2

  • Account contains both equity and options (including multi-leg option orders)

Expected Behavior

When specifying symbols=BABA, I expect the response to include only orders whose underlying symbol is BABA (equities or options tied to BABA).

Actual Behavior

The response includes multi-leg option orders whose legs reference completely different underlying symbols, e.g.:

  • AAPL260102C00265000

  • AAPL260320P00225000

  • AAPL260320C00240000

These appear inside the legs array of an order returned by the request, even though the filter explicitly specifies symbols=BABA.

The top-level order itself also contains:

  • Empty symbol

  • Empty asset_class

  • Option legs tied to AAPL, not BABA

This makes it impossible to reliably filter orders by underlying symbol using this endpoint.

Screenshot proof:

Example Issue

  • Request filtered by symbols=BABA

  • Response includes an order with legs for AAPL option contracts

  • No relationship to BABA exists for that order

Questions

  1. Is symbols expected to filter option underlyings, or only top-level equity orders?

  2. Is this a known limitation or an unintended bug?

  3. Is there a recommended way to fetch orders strictly tied to a specific underlying symbol when options are involved?

I’m happy to provide order IDs or additional logs if needed.

Thanks for your help,
Ali