provider vision POST /api/projects/{project_id}/vision/scanners/estimate/
@utdk/posthog /api/projects/{project_id}/vision/scanners/estimate/
vision_scanners_estimate_create
Estimate the observation volume a proposed scanner would generate, for the pre-save cost preview.
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
visionScannersEstimateCreate
POST/api/projects/{project_id}/vision/scanners/estimate/
Estimate the observation volume a proposed scanner would generate, for the pre-save cost preview.

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

Proposed `RecordingsQuery` for the candidate filter. `date_from`/`date_to` are ignored — the estimate always uses a fixed 30-day lookback. Omit to estimate against all recordings.

0..1 downsample applied to matched sessions. Defaults to 1.0 (no downsampling).

Quality pre-filter applied to the matched-session count, mirroring the sweep's candidate query. Defaults to comprehensive (no filter). * `focused` - Focused * `balanced` - Balanced * `comprehensive` - Comprehensive

The scanner being edited, excluded from `other_enabled_scanners_monthly_credits` so its stored estimate isn't double-counted in the forecast. Omit (or null) when estimating a brand-new scanner.

Proposed model; determines `credits_per_observation` in the response. * `gemini-2.5-flash` - Gemini 2.5 Flash * `gemini-3-flash-preview` - Gemini 3 Flash * `gemini-3.5-flash` - Gemini 3.5 Flash

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.visionScannersEstimateCreate({
  "sampling_rate": 1,
  "sampling_mode": "comprehensive",
  "model": "gemini-3-flash-preview"
})