Skip to main content

API Changelog

This page documents all changes to the Portfolio Tracker Consumer API. We follow semantic versioning. Breaking changes are announced at least 90 days.

Last reviewed

v1.2.0: Estate and Residency Agent Tools (September 2026)

Two new read-only tools on the MCP server, each behind its own scope. Neither scope is added to an existing key: tick it on the Developer Page when you create or edit a key.

  • get_estate_status (estate:read): which estate documents you have on TheWILL.ai, the status of each and a suggested next step as a link. Statuses only, never document content.
  • get_residency_day_counts (residency:read): days present per country over a date range, with threshold proximity, from Expat183. Counts only, never your location history.
This change is additive. Existing tools, scopes and keys are unchanged, and the API version stays at v1.

v1.1.0: Namespaced Scopes and Developer Hub (June 2026)

This release tidies up API key scopes and gives the developer tools a canonical home. Neither change affects your existing integrations.

  • Namespaced scopes: API key scopes are now namespaced, so read becomes portfolio:read and write becomes portfolio:write. This is a non-breaking change. Existing keys were updated automatically, so no action is required.
  • Developer hub: the developer tools now have a canonical home at /account/developer. The Portfolio Tracker routes /assets/portfolio/developer and /assets/portfolio/api-docs remain live and show the same tools (they are not deprecated), so your bookmarks will continue to work.
These changes are additive and backwards-compatible. The API version stays at v1, and no endpoint paths or response shapes have changed.

v1.0.0: Initial Release (April 2026)

This is the initial public release of the Portfolio Tracker Consumer API. The following endpoints and features are now available:

  • Holdings endpoint: Read-only aggregated holdings priced from delayed market feeds
  • Transaction endpoints: Record buy, sell, dividend, and transfer transactions
  • Analytics endpoints: Portfolio performance, allocation breakdown, and gain/loss summaries
  • Import endpoints: Upload brokerage statements (Interactive Brokers, Schwab, Zerodha formats)
  • Webhook endpoints: Register HTTPS endpoints for real-time event notifications on webhook-enabled plans
  • Security and watchlist endpoints: Look up securities, retrieve prices, and view or add items to your watchlists
  • Account endpoints: List and view your tracked portfolio accounts (read-only)
  • Tax endpoints: Access tax lot calculations and capital gains reports
  • Authentication: Personal API keys with Argon2 hashing and Bearer token auth
  • Rate limiting: Tier-based rate limits; the figures at release were Silver: 50/hr, Gold+: 2,000/hr, VIP: unlimited (historical, see the live Rate Limits section for current figures)

Versioning and Deprecation Policy

The Portfolio Tracker Consumer API uses URL versioning: every endpoint is prefixed with /api/v1/portfolio/ext/. The same rules apply to every external surface, including the tools our MCP server offers AI agents.

What counts as a breaking change

  • Additive (not breaking): new fields on responses, new endpoints, new optional query parameters, new webhook events and new MCP tools. These can arrive at any time and do not change the version.
  • Breaking: a removed or renamed field, endpoint or MCP tool, a changed field type, a new required parameter, or a change to how you authenticate.

Notice and support periods

  • A breaking change is announced at least 90 days before it takes effect.
  • When a new API version is released, the previous version keeps working at least 180 days afterwards.
  • Security fixes and legal requirements may need shorter notice; we will say so here and explain why.

How you are told

  • This changelog: every deprecation is listed here with its retirement date.
  • Response headers: every response from a deprecated path carries Deprecation, Sunset (the retirement date) and a Link header with rel="deprecation" pointing back to this page.
  • Machine-readable policy: /api/v1/api-policy/ returns these periods and every live deprecation as JSON.

At the retirement date

From the date in the Sunset header, the retired path answers 410 Gone with the code api_sunset and the replacement to move to. Your API key keeps working for everything that has not been retired.

Have your integration ignore fields it does not recognise, and log any response that carries a Deprecation header. Together they keep an additive change from breaking you and make sure a deprecation does not go unnoticed.

Staying Informed

There are several ways to stay up to date with changes to the API:

  • This page: Bookmark this changelog and check back regularly for updates
  • Webhooks: Webhook subscriptions notify your application about activity in your portfolio, such as new transactions, corporate actions and completed imports. They do not carry API version or deprecation notices, so use this page for those. The webhook reference below lists every event you can subscribe to
  • Contact support: If you have questions about upcoming changes or need migration assistance, reach out via the contact form below
Breaking changes are always announced at least 90 days before they take effect. We recommend reviewing this changelog at least once a month.

Related Topics

Can’t find what you’re looking for?

Our support team is here to help. Contact us and we’ll get back to you as soon as possible.

Contact Support

We use cookies to improve your experience. See our Cookie Policy (opens in a new tab) for details.