provider vision PATCH /api/projects/{project_id}/vision/scanners/{id}/
@utdk/posthog /api/projects/{project_id}/vision/scanners/{id}/
vision_scanners_partial_update
CRUD for Replay Vision scanners.
id path required
A UUID string identifying this replay scanner.
string
project_id path required
Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.
string

Try it

Authentication
Configure credentials for PostHog API
visionScannersPartialUpdate
PATCH/api/projects/{project_id}/vision/scanners/{id}/
CRUD for Replay Vision scanners.

Parameters

required

A UUID string identifying this replay scanner.

required

Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.

Input

Human-readable scanner name. Unique within the team.

Free-form description shown in the scanner management UI.

What the scanner does: monitor, classifier, scorer, or summarizer. * `monitor` - Monitor * `classifier` - Classifier * `scorer` - Scorer * `summarizer` - Summarizer

Type-specific configuration. All scanner types require `prompt`; monitors add optional `allow_inconclusive`, classifiers add `tags`, scorers add `scale`, summarizers add optional `length`.

Persisted `RecordingsQuery` shape used to pick candidate sessions. `date_from`/`date_to` are stripped on save — the schedule controls time, not the user.

0..1 random downsample applied after the query matches. Defaults to 1.0 (no downsampling). Use exactly 0 to pause scanning; non-zero rates below 0.0001 (0.01%) are rejected as below the sampling precision.

Quality pre-filter applied before random sampling. focused = top sessions only, balanced = drops the lowest-quality, comprehensive = no filter (default). * `focused` - Focused * `balanced` - Balanced * `comprehensive` - Comprehensive

LLM provider. v1 is Google-only. * `google` - Google

Concrete model to use for this scanner. * `gemini-2.5-flash` - Gemini 2.5 Flash * `gemini-3-flash-preview` - Gemini 3 Flash * `gemini-3.5-flash` - Gemini 3.5 Flash

When false, the reconciler removes the scanner's Temporal schedule. On-demand triggers still work.

When true, the prompt is augmented with the Signal side mission and the scanner emits PostHog Signals.

Increments on every config-changing save. Observations snapshot this value.

Latest projected observations/month for this scanner. Null until first computed.

Credits one observation by this scanner costs (1 credit = $0.01), derived from `model`.

`estimated_monthly_observations` priced at `credits_per_observation`. Null until the estimate is first computed.

Watermark for the scanner's last scheduled fire. Mirrors Temporal schedule state for recovery.

User who created the scanner.

AI summary of the team's written thumbs-down feedback into recurring failure modes. Refreshed with prompt recommendations; null until enough feedback accumulates.

Configure credentials above to enable sending.

Code snippet
Updates live as you fill in the form above.

TypeScript

import posthog from '@utdk/posthog';

await posthog.visionScannersPartialUpdate()