Skip to content
Skip to main content

Change Log

All notable changes to the TradeZero API will be documented on this page.


September 30, 2026​

New​

  • Historical Positions endpoint added - retrieve account holdings as of a calendar date:

    • GET /v1/api/accounts/{accountId}/positions/historical?date=YYYY-MM-DD - returns { "historicalPositions": [...] } with trade-date quantity, market value, average cost, closing price, and unrealized P&L per lot.
    • See Positions & P&L → Historical positions.

September 29, 2026​

New​

  • TradeZero Canada (TZC) — Developer API and TradeZero MCP - TradeZero Canada Securities ULC clients can use the Trading API and TradeZero MCP the same way as other TradeZero firms. Start with Authentication for REST keys, or the TradeZero MCP setup guide for assistants.

August 8, 2026​

New​

  • TradeZero MCP - connect Claude, Claude Code, ChatGPT, Perplexity, Grok, Cursor, or VS Code to your TradeZero account and manage orders, positions, and short locates in natural language. Paste the hosted server URL and sign in with OAuth 2.0. ChatGPT requires Business, Enterprise, or Edu with Developer mode on the web (Free, Plus, and Pro do not support TradeZero MCP). See TradeZero MCP.
  • OAuth 2.0 Partner Integration - new guide for platforms that connect TradeZero customer accounts. Prefer Connect Trade unless TradeZero has provisioned a direct partner program for your product. Covers onboarding, token exchange, and support expectations. See OAuth 2.0 Partner Integration.

July 7, 2026​

New​

  • Closed Positions endpoint added - retrieve fully-closed position lifecycles for an account, with realized P&L and cumulative share accounting:

    • GET /v1/api/accounts/{accountId}/positions/closed - returns flat lifecycles under the closedPositions key, each with realized, sharesIn, sharesOut, and blended priceOpen / priceClose.
    • See Positions & P&L → Closed positions for the aggregation model, positionId handling, update patterns, and worked examples.

March 3, 2026​

New​


February 10, 2026​

New​

  • New Order Endpoint Added - new endpoint to retrieve an individual order by clientOrderId for the account:

    • GET /v1/api/accounts/{accountId}/order/{clientOrderId} - retrieves the details of a specific order using its clientOrderId
    • This endpoint provides a more efficient way to access order details without having to filter through all orders

January 14, 2026​

Changed​

  • Order Response Structure - The API no longer returns the orderId field in order responses

    • All order operations now exclusively use clientOrderId for identification and tracking
    • If no clientOrderId is provided during order creation, the system will auto-generate one
  • Cancel Order Endpoint - The DELETE /v1/api/accounts/{accountId}/orders/{clientOrderId} endpoint now uses clientOrderId in the URL path

    • This change ensures consistency with the updated response structure
    • All order management now centers around the clientOrderId field

Migration Guide​

For Order Management:

  • Update your code to use only clientOrderId for order tracking and identification
  • Remove any references to orderId from response parsing logic
  • Ensure your order creation requests include a unique clientOrderId for better tracking
  • All cancellation requests should use the clientOrderId from your order tracking system

For Sell Locate Requests: Update your sell locate requests to use the new string format:

  • Old: "locateType": 1
  • New: "locateType": "Locate"

String Value Mapping (as of this release):

  • 0 (Unknown) → "Unknown"
  • 1 (Locate) → "Locate"
  • 2 (Intraday Only) → "IntraDay" (legacy alias - deprecated; send "Locate" for both 1 and 2. See Locates → locate type codes.)
  • 3 (Pre-Borrow) → "PreBorrow"
  • 4 (Single Use) → "SingleUse"

December 11, 2025​

Changed​

  • Locates Endpoints - The GET /v1/api/accounts/{accountId}/locates endpoint has been split into two more specific endpoints:

    • GET /v1/api/accounts/{accountId}/locates/inventory - Returns only active locate inventory for the current trading day
    • GET /v1/api/accounts/{accountId}/locates/history - Returns all open/closed/expired locates for the day

    This change provides better performance and more granular control over the data you retrieve. Please update your integrations to use the appropriate endpoint.

Removed​

  • Locates Endpoint - GET /v1/api/accounts/{accountId}/locates has been removed and replaced with the two new endpoints above.

November 24, 2025​

Changed​

  • Order Cancellation Response - Order cancel requests now return full order details in the response instead of just a confirmation message. This provides better visibility into the canceled order's final state without having to make an additional REST call for order status.

Legend​

TypeDescription
NewNew features, endpoints, or capabilities added to the API
ChangedModifications to existing functionality or behavior
FixedIssue fixes and behavior corrections
DeprecatedFeatures that will be removed in a future version
RemovedFeatures that have been removed from the API
SecuritySecurity-related updates and improvements

info

For breaking changes, migration guides, or questions about updates, contact TradeZero Support — phone and email for your region are in the Support column of the site footer.