Skip to main content

Professional API: Changelog

What has changed on the Professional API, and the rules we follow when changing it. Breaking changes are announced at least 90 days.

September 2026: Partner Referral Webhook Events

Additive, and no action is required. Existing endpoints keep receiving exactly the events they were subscribed to.

  • referral.will_started: fires when someone who arrived through your white-label partner page starts a will
  • referral.will_completed: fires when a will started through your partner page is signed and completed

Both carry the event slug, a referral identifier and its status. They never include the person’s name, contact details or anything from the will.

September 2026: Matter Briefs

Additive. The matter collection gained a brief endpoint at /api/v1/pro/ext/matters/{id}/brief/, so drafting software can pull a matter’s brief without a person copying it out by hand.

  • The client’s consent for that matter is re-read on every call and never cached, so withdrawing consent takes effect on the next request
  • Every fetch is written to the matter’s disclosure log, recording the key prefix used and never the key itself
  • The endpoint carries its own hourly cap, separate from your plan allowance and shared with the signed bundle download
  • Responses are marked no-store, so intermediaries do not retain a copy

Note

There is still no bare matter detail endpoint. A matter is read from the list, and its brief from the brief endpoint.

July 2026: Two More Webhook Events

Additive, and no action is required. Existing endpoints keep receiving exactly the events they were subscribed to.

  • appointment.rescheduled: fires when an existing appointment moves, so a calendar integration no longer has to infer a move from a cancellation followed by a creation
  • message.received: fires when a new message arrives in a conversation

Both carry the same three-key payload as the original events: the event slug, an identifier, and a status.

June 2026: Initial Release

The first release of the Professional API, a read-only surface under /api/v1/pro/ext/.

  • Profile: me/, your professional profile
  • Appointments: list and detail
  • Approaches: list and detail
  • Matters: list only
  • Engagement letters: list and detail
  • Authentication: personal API keys sent as Authorization: Bearer pk_…, issued with the pro:read scope
  • Rate limiting: plan-driven, on a one-hour sliding window; the current figures for each plan are under Rate Limits below
  • Webhooks: appointment.created, appointment.cancelled, engagement_letter.signed and approach.received, signed with HMAC-SHA256

Rate Limits

Limits are counted on a sliding window. When you go over one, the API answers 429 Too Many Requests with a Retry-After header telling you how long to wait.

Professional API

Every request to /api/v1/pro/ext/.

  • Pro Growth: 2,000 requests per hour
  • Support Service Provider Growth: 2,000 requests per hour
  • Pro Enterprise: unlimited
  • Support Service Provider Enterprise: unlimited
  • Founding Member Pro Growth: 2,000 requests per hour

Shared by every key you hold, so a new key never adds to it. Plans not listed here have no access to this API. Scopes: pro:read, pro:org:read, pro:wills:write.

Partner will creation

POST /api/v1/pro/ext/wills/ only, on top of the Professional API budget.

  • Pro Growth: 30 requests per hour
  • Pro Enterprise: 300 requests per hour
  • Founding Member Pro Growth: 30 requests per hour

Shared by every key you hold, so a new key never adds to it. Plans not listed here have no access to this API. Scopes: pro:wills:write.

Matter briefs and will documents

GET /api/v1/pro/ext/matters/{id}/brief/, GET /api/v1/pro/ext/wills/{id}/document/ and one-off brief bundles, sharing one budget, on top of the Professional API budget.

  • Every plan: 30 requests per hour

Shared by every key you hold, so a new key never adds to it. Scopes: pro:read.

Professional MCP agent tools

MCP tool calls, counted separately from your REST budget.

  • Pro Growth: 2,000 requests per hour
  • Support Service Provider Growth: 2,000 requests per hour
  • Pro Enterprise: unlimited
  • Support Service Provider Enterprise: unlimited
  • Founding Member Pro Growth: 2,000 requests per hour

Shared by every key you hold, so a new key never adds to it. Plans not listed here have no access to this API. Scopes: pro:read, pro:org:read.

These figures come from the limits the API enforces, also served as JSON at /api/v1/portfolio/rate-limits/.

Versioning and Deprecation Policy

The Professional API uses URL versioning: every endpoint is prefixed with /api/v1/pro/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

  • This page: the record of every change to the Professional API, worth a look once a month
  • The schema: the machine-readable description at /api/v1/pro/ext/schema/ changes with the surface, so you can diff it between releases
  • Webhooks: they tell you about activity in your practice, not about API versions. Deprecation notices are never delivered by webhook
  • Contact support: get in touch if you need help migrating

Note

The consumer API has its own changelog and the same rules apply to it. If you integrate with both surfaces, watch both pages, because they version independently.

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.