Skip to main content
The REST API and the MCP server share one catalog of 19 codes. The table gives each code’s meaning and its REST status; each operation under Endpoints in the API reference lists the ones it can return. For the envelope and the status codes, see API errors.

Codes

TIER_LIMIT_EXCEEDED covers the portfolio and scenario limits and other account caps, such as 20 API keys, 20 webhook endpoints, 50 watchlists, 200 symbols on one watchlist and 50 custom symbols on one monitor. Its error text names no plan or price, and limit_type, current_count and max_allowed say which cap and how far. Don’t retry it; remove something first.

Common causes of INVALID_INPUT

  • A missing or malformed field, a field of the wrong type, an id that isn’t a UUID, or a duplicate in a list.
  • A change the target doesn’t allow, such as a system class or Cash. For a CHOICE Input, the message lists the allowed options.
  • On a holdings write, a negative shares on a portfolio with Allow shorts off or for an option holding (the refusal carries symbols), a mark on a holding that is not an option, or a trade worth 100000000000000 or more.
  • On /trades/check, a trade in an option that has expired.
  • On /positions/size, a direction other than long or short, or a negative manual_shares with direction short.
  • On /validate, a negative CASH or $CASH entry (allocations.CASH cannot be negative. Cash is never held below zero.), or an allocations entry beyond plus or minus 1000000.