Results method v2
GET /api/v2/projects/{projectId}/outcomes/ledger and devtune_get_outcomes_ledger add items[].method, either v1 or v2 for closed Results windows with evidence and null while open or for Agent Picks rows. Agent Picks keeps agentPicks.method. Timeline outcome_measured events add measuredAction.method.
New closes use v2. It requires full coverage for a conclusive metric, matches citation prompts across windows, counts fetch exposure only while the sensor covered the window, and allows for daily-count dependence. Closed v1 windows keep their results. Preserve method when exporting or comparing results. See Results.
Visibility ranges and unmeasured values
Changed: 31 October 2026. Visibility rates now come with a 90% range, and values that were reported as0 when nothing was measured are now null. Treat each of these fields as nullable:
These fields are new and additive:
- Every rate above gains a sibling
<field>Rangeobject:value,lowandhighin the unit of the rate,successes,n,nEffective,confidence(0.9),directionalandmethod.directionalistruewhen the rate rests on fewer than 10 effective samples. The visibility summary hasshareOfVoiceRange,citationPresenceRange,brandAwarenessRange,advertising.primaryRateRangeandadvertising.competitorRateRange.citationPresenceRangecounts citation-eligible answers inn. GET /visibility/diffgainsdelta.shareOfVoiceandcomparisons.primaryShareandcomparisons.shareOfVoice. Each comparison hascomparison(up,down,no_clear_changeornot_comparable),notComparableReason, and the change with its 90% interval in percentage points. Report a change only whencomparisonisupordown.- The new MCP tool
devtune_get_visibility_diffreturns the same diff as REST and needsvisibility.read.
Brand deletion confirmation for positioning competitors
Changed: 29 October 2026. MCP server 5.0.0. On plans with Positioning,DELETE /projects/{projectId}/setup/brands/{brandId}
can now return 409 where it previously returned 200. This applies to brands in
the project’s current positioning competitor set, including the default first five
when no usable choice is saved. The response has error: "conflict" and
reason: "brand_in_competitor_set".
Show the customer that deletion changes future comparisons and ends any comparable
history for the current set. After they confirm, retry REST with ?confirm=true,
or retry devtune_delete_brand over MCP with confirm: true. Cancelling requires no
retry and deletes nothing. Brands outside the set and accounts on plans without
Positioning need no confirmation. Recorded sets stay in history.
Nullable traffic summary counts
Changed: 27 October 2026. InGET /projects/{projectId}/traffic/summary and devtune_get_traffic_summary, the six counts (totalEvents, botEvents, referralEvents, uniqueSessions, botSessions and referralSessions) can now be null, both in the window totals and in each daily row. A day is null when no crawler sensor covered it, and a window total is null when no day in the window was covered. Treat these fields as nullable, and use coverage.coveredDays against coverage.windowDays to see how much of the window a total covers.
Agent Picks test management and schedules
Changed: 24 October 2026. MCP server 4.0.0. Your own agents can quote, start and cancel Agent Picks tests and re-tests, start the starter test, enable and turn off schedules, and edit the setup and custom job. Spending credits needs theagent_picks.run scope. See Agent Picks API and MCP for the quote token, max_credits, cancellation and every refusal reason.
PATCH /projects/{projectId}/agent-picks/scheduleis removed. Enable or change a cadence withPUTon the same path, which takescadence, aquote_tokenfrom a schedule quote andmax_credits, and needsagent_picks.run. Turn the schedule off withDELETE, which needsactions.write.- The MCP tool
devtune_set_agent_picks_scheduleis replaced bydevtune_enable_agent_picks_schedule(agent_picks.run) anddevtune_disable_agent_picks_schedule(actions.write). - Existing API keys and OAuth connections do not gain
agent_picks.run. Add it to a key under API Keys, or reconnect an MCP client and approve it, before enabling schedules or starting tests. PATCH /projects/{projectId}/agent-picks/settingschecks the member who created the API key, as schedules do. A key whose creator has left the account or cannot edit the project is refused with403.
Agent Picks model cost fields removed
Changed: 23 October 2026. Agent Picks is billed in credits, so its reads no longer return model cost in dollars. The MCP tools return the same fields as REST.
Model call counts and token counts remain. Read what a paid test charged from its credit fields:
reserved_micros, settled_micros and refunded_micros on the test, and settled_micros on each run.
Knowledge Profile fields
Changed: 18 September 2026.PATCH /projects/{projectId}/knowledge no longer accepts the positioning and products_services write fields. Write that material to company_context. Existing values in those fields remain readable.
Retired endpoints
Changed: 14 September 2026. The intelligence anomaly endpoint and its MCP tool are retired. For detected changes and events, useGET /projects/{projectId}/timeline/events or the devtune_get_timeline_events MCP tool. Both require visibility.read.
Content gaps
Changed: 4 September 2026.GET /projects/{projectId}/content-gaps/list and devtune_get_content_gaps return measured topic, source and brand citation counts over a fixed 30- or 90-day window. estimated is always false.
They no longer return impactScore, confidenceScore, freshnessScore, actionabilityScore, signalStrength, signals, evidence, candidateKey, summary, prompt counts or third-party citation counts. These values cannot be reproduced from measured citations, so DevTune does not substitute estimates. Use Get content gap evidence for the prompts and pages behind a gap, and Actions for workflow state, briefs and recommended work.
Deprecated pagination parameters
Lists that paged byoffset, page, generation or snapshotId still accept them, but they are deprecated. Move to cursor as described under Pagination. Sending a deprecated parameter beside cursor returns 400.