vision

Retrieve one observation. Any list filters passed along (status, tags, order_by, …) scope the previous_observation_id/next_observation_id navigation to the matching, identically-ordered set — so prev/next from a filtered table stays within that filtered list.

get/api/projects/{project_id}/vision/observations/{id}/

Request

  • Base URL: https://us.posthog.com
  • URL: https://us.posthog.com/api/projects/{project_id}/vision/observations/{id}/
  • Auth: HTTP bearer

Path parameters

idstring uuid required

A UUID string identifying this replay observation.

project_idstring required

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

Query parameters

backfill_idstring

Only observations dispatched by this backfill.

date_fromstring

Only observations created at or after this time. Accepts ISO 8601, a relative date like -7d, or now; values without an explicit offset are interpreted in the project's timezone.

date_tostring

Only observations created at or before this time. Accepts ISO 8601, a relative date like -1d, or now for the current time; omit it to query through the current time. Date-only values include the whole day, interpreted in the project's timezone.

labeledstring

When true, return only observations that have a shared label (thumbs up or down); when false, only unlabeled observations.

max_scorenumber double

Filter scorer observations to those scoring at or below this value. Rows with no numeric score (other scanner types, failed or in-flight runs) are excluded.

min_scorenumber double

Filter scorer observations to those scoring at or above this value. Rows with no numeric score (other scanner types, failed or in-flight runs) are excluded.

order_by'-completed_at' | '-created_at' | '-label' | '-recording_subject_email' | '-result_confidence' | '-result_score' | '-result_verdict' | '-scanner_version' | '-started_at' | '-status' | 'completed_at' | 'created_at' | 'label' | 'recording_subject_email' | 'result_confidence' | 'result_score' | 'result_verdict' | 'scanner_version' | 'started_at' | 'status'

Sort observations. Plain keys: created_at, started_at, completed_at, status, recording_subject_email. JSONB keys: result_score (scorer), result_verdict (monitor), result_confidence, scanner_version. Prefix with - for descending; nullable keys sort nulls last either way.

recording_subjectstring

Filter to observations whose person email contains this value (case-insensitive).

session_idstring

Filter to observations of one or more session recordings. Accepts a comma-separated list.

statusstring

Filter by observation status. Accepts a comma-separated list.

tagsstring

Filter classifier observations whose fixed or freeform tags include any of the given values (comma-separated). Matches if the tag appears in either tags or tags_freeform.

triggered_bystring

Filter by trigger source (schedule, on_demand, retry, or backfill). Accepts a comma-separated list.

variantstring

Experiment scanners only: filter to observations attributed to any of the given variant keys (comma-separated). __unattributed__ matches observations with no attributed variant.

verdictstring

Filter monitor observations by verdict. Accepts a comma-separated list (e.g. yes,inconclusive).

Response

idstring uuid required
scanner_idstring uuid required

The scanner that produced this observation.

scanner_origin'configured' | 'inline' required
  • configured - Configured
  • inline - Inline
session_idstring required

Session recording id this scanner was applied to.

status'pending' | 'running' | 'succeeded' | 'failed' | 'ineligible' required
  • pending - Pending
  • running - Running
  • succeeded - Succeeded
  • failed - Failed
  • ineligible - Ineligible
error_reasonstring required

Populated on terminal non-success statuses; formatted as kind:human-readable message. For ineligible, kind is one of no_recording / too_short / too_inactive / too_long / no_events / no_snapshots / too_large / not_exposed / experiment_unresolved. For failed, kind is one of provider_transient / provider_rejected / rasterization_failed / validation_failed / infra_transient / internal_error / orphaned / pii_detected.

workflow_idstring required

Temporal workflow id for progress queries and debugging. Empty until the workflow starts.

prompt_questionstring nullable required

The scanner's prompt condensed into the one question it answers about a session. Null when the prompt has changed since this observation was scanned, since the question then describes a different prompt; read scanner_snapshot.scanner_config.prompt instead.

triggered_by'schedule' | 'on_demand' | 'retry' | 'backfill' required
  • schedule - Schedule
  • on_demand - On demand
  • retry - Retry
  • backfill - Backfill
backfill_idstring uuid nullable required

Backfill that dispatched this observation; null for live, on-demand, and retry triggers.

distinct_idstring nullable required

Distinct id of the person in the recorded session (the subject being watched); null if unknown.

recording_subject_emailstring nullable required

Email of the person in the recorded session (the subject being watched, not the user who triggered the observation), captured at scan time. Null when the session had no identified person.

previous_observation_idstring uuid nullable required

Id of the preceding sibling observation for the same scanner (prev/next nav), honoring any list filters and ordering passed to retrieve; only set on retrieve, null at the start of the set.

next_observation_idstring uuid nullable required

Id of the following sibling observation for the same scanner (prev/next nav), honoring any list filters and ordering passed to retrieve; only set on retrieve, null at the end of the set.

viewedboolean required

Whether the calling user has opened this observation.

summary_linestring required

One line of plain text saying what the scanner found: its verdict, score, tags or title, then its own words, with markdown flattened and the text truncated. An observation that produced no result carries the reason instead, and one still in flight carries an empty string. Read this in place of scanner_result when you scan a list of observations.

started_atstring date-time nullable
completed_atstring date-time nullable
created_atstring date-time required

Changes

No recorded changes to this operation across all 1 revision of this API.