provider vision POST /api/projects/{project_id}/vision/scanners/
@utdk/posthog /api/projects/{project_id}/vision/scanners/
vision_scanners_create
CRUD for Replay Vision scanners.
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
visionScannersCreate
POST/api/projects/{project_id}/vision/scanners/
CRUD for Replay Vision scanners.

Parameters

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

required
required

Human-readable scanner name. Unique within the team.

Free-form description shown in the scanner management UI.

required

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

required

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

required

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.

required

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

required

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

required

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

required

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

required

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

required
required

User who created the scanner.

required
required

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.visionScannersCreate()