API & MCP changes

Contract changes, affected operations, and what to do next.

Release 2026.10.31.1 ยท Contract version 4.0.0

3 actions required

4 changes, all available

1 Security

Change type: Security

Require owner browser approval for campaigns

REST / MCP

What changed

All six human-only campaign commands now return 403 for API credentials. Owner controls support approval, plan fields, schedule constraints, capacity exceptions, and completion. API events identify the API credential.

Why this changed

An API credential must not gain human authority from its owner.

Compatibility: Breaking

MCP tools

execute_campaign_commandsubmit_campaign_planapprove_review_queue_item
Action required

Move human decisions to the owner campaign and review pages. API submit-plan calls now return 403. Inspect current state before replacing a conflicting idempotency key.

1 Added

Change type: Added

Proof pages show the questions AI was asked, and the leaderboard counts who AI names

REST

What changed

The AI visibility section on a proof page now lists the questions that were asked, with how many answers from each engine named the site ("2 of 3"). It is fed by the monthly snapshot that Free sites now get, so it shows counts instead of "Not measured", and it says whether the sample is a monthly snapshot or a weekly sample. Below 30 answers an engine shows only the count; a percent and its 95% range appear from 30 answers. Brands named instead are never shown on a public page. A question is quoted only when TrustGrowth's planner wrote it; a question taken from the site's own search data is shown by number, and its text is null in the API. The leaderboard and category standings have a "Named by AI" column, and the top three carry a badge when an AI answer named them. The public proof API adds ai_visibility.recalled questions and cadence, and ai_visibility_summary cadence and questions; recall percent, low and high are now null below 30 answers.

Why this changed

A count of real answers is honest at small samples, and the questions show what was measured. A percent from five answers suggested a precision the sample did not have.

Compatibility: Additive

Action required

none. Integrators that read ai_visibility_summary engines recall percent must already handle null (it was nullable); it is now null below 30 answers.

1 Improved

Change type: Improved

OpenAPI info.version reports the contract version

REST / MCP

What changed

The OpenAPI document's info.version now carries the integration contract version (the same SemVer value as x-contract-version, meta.contract_version and the MCP serverInfo.version) instead of the fixed string "v1". The getPackageContentVariant 200 response schema now references PackageContentVariant; it was an invalid bare string. Change notes in x-change-notes are now generated from release files with unchanged text. No operation, parameter, field or MCP tool changed.

Why this changed

"v1" named the URL route, not the document, so clients could not tell which contract a document describes. Versions now come from a release step, so parallel changes no longer race to bump them.

Compatibility: Compatible fix

Operations

getPackageContentVariant
Action required

If you compared info.version with "v1", compare x-contract-version or the /api/v1 path prefix instead. Nothing else to do.

1 Fixed

Change type: Fixed

Prompt text in review queue responses

REST

What changed

Prompt review rows return a stable id, complete prompt text, active state, intent, and demand source.

Why this changed

Reviewers need to read the prompt before they approve it.

Compatibility: Additive

Six kinds of change

Added
Something you can use now that was not here before.
Improved
Something you already use now works better.
Fixed
Something that was wrong now works as it should.
Security
A change that keeps accounts and data safer.
Deprecated
It still works, but it has an end date. Move before that date.
Removed
It is gone. The note says what to do next.