Vision

For instructions on how to authenticate to use this endpoint, see API overview.

Endpoints

GET
POST
GET
PATCH
DELETE
POST
POST
GET
POST
GET
GET
POST
POST
DELETE
POST
DELETE
POST
GET
GET

List all vision alerts

Required API key scopes

vision_alert:read

Query parameters

  • limit
    integer
  • offset
    integer
  • scanner_id
    string

Response


Example request

GET /api/projects/:project_id/vision/alerts
export POSTHOG_PERSONAL_API_KEY=[your personal api key]
curl \
-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
<ph_app_host>/api/projects/:project_id/vision/alerts/

Example response

Status 200
RESPONSE
{
"count": 123,
"next": "http://api.example.org/accounts/?offset=400&limit=100",
"previous": "http://api.example.org/accounts/?offset=200&limit=100",
"results": [
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"scanner_id": "43593f58-da3f-45f0-a7bf-8763ef29bdf1",
"name": "Untitled alert",
"enabled": true,
"kind": "metric",
"selection": {
"verdict": [
"string"
],
"tags": [
"string"
],
"min_score": 0.1,
"max_score": 0.1
},
"metric": "count",
"direction": "above",
"threshold": 0,
"window_days": 0,
"check_interval_minutes": 15,
"state": "not_firing",
"evaluation_periods": 1,
"datapoints_to_alarm": 1,
"cooldown_minutes": 0,
"schedule_restriction": {
"blocked_windows": [
{
"start": "string",
"end": "string"
}
]
},
"snooze_until": "2019-08-24T14:15:22Z",
"next_check_at": "2019-08-24T14:15:22Z",
"last_notified_at": "2019-08-24T14:15:22Z",
"last_checked_at": "2019-08-24T14:15:22Z",
"consecutive_failures": 0,
"first_enabled_at": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"created_by": {
"id": 0,
"uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
"distinct_id": "string",
"first_name": "string",
"last_name": "string",
"email": "user@example.com",
"is_email_verified": true,
"hedgehog_config": {},
"role_at_organization": "engineering"
},
"updated_at": "2019-08-24T14:15:22Z"
}
]
}

Create vision alerts

Required API key scopes

vision_alert:writesession_recording:read

Request parameters

  • scanner_id
    string
  • name
    string
    Default: Untitled alert
  • enabled
    boolean
    Default: true
  • kind
  • selection
  • metric
  • direction
  • threshold
    number | null
  • window_days
    integer
  • check_interval_minutes
    integer
  • evaluation_periods
    integer
  • datapoints_to_alarm
    integer
  • cooldown_minutes
    integer
  • schedule_restriction
  • snooze_until
    string | null

Response


Example request

POST /api/projects/:project_id/vision/alerts
export POSTHOG_PERSONAL_API_KEY=[your personal api key]
curl
-H 'Content-Type: application/json'\
-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
<ph_app_host>/api/projects/:project_id/vision/alerts/\
-d scanner_id="string",\
-d kind=undefined

Example response

Status 201
RESPONSE
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"scanner_id": "43593f58-da3f-45f0-a7bf-8763ef29bdf1",
"name": "Untitled alert",
"enabled": true,
"kind": "metric",
"selection": {
"verdict": [
"string"
],
"tags": [
"string"
],
"min_score": 0.1,
"max_score": 0.1
},
"metric": "count",
"direction": "above",
"threshold": 0,
"window_days": 0,
"check_interval_minutes": 15,
"state": "not_firing",
"evaluation_periods": 1,
"datapoints_to_alarm": 1,
"cooldown_minutes": 0,
"schedule_restriction": {
"blocked_windows": [
{
"start": "string",
"end": "string"
}
]
},
"snooze_until": "2019-08-24T14:15:22Z",
"next_check_at": "2019-08-24T14:15:22Z",
"last_notified_at": "2019-08-24T14:15:22Z",
"last_checked_at": "2019-08-24T14:15:22Z",
"consecutive_failures": 0,
"first_enabled_at": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"created_by": {
"id": 0,
"uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
"distinct_id": "string",
"first_name": "string",
"last_name": "string",
"email": "user@example.com",
"is_email_verified": true,
"hedgehog_config": {},
"role_at_organization": "engineering"
},
"updated_at": "2019-08-24T14:15:22Z"
}

Retrieve vision alerts

Required API key scopes

vision_alert:read

Path parameters

  • id
    string

Response


Example request

GET /api/projects/:project_id/vision/alerts/:id
export POSTHOG_PERSONAL_API_KEY=[your personal api key]
curl \
-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
<ph_app_host>/api/projects/:project_id/vision/alerts/:id/

Example response

Status 200
RESPONSE
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"scanner_id": "43593f58-da3f-45f0-a7bf-8763ef29bdf1",
"name": "Untitled alert",
"enabled": true,
"kind": "metric",
"selection": {
"verdict": [
"string"
],
"tags": [
"string"
],
"min_score": 0.1,
"max_score": 0.1
},
"metric": "count",
"direction": "above",
"threshold": 0,
"window_days": 0,
"check_interval_minutes": 15,
"state": "not_firing",
"evaluation_periods": 1,
"datapoints_to_alarm": 1,
"cooldown_minutes": 0,
"schedule_restriction": {
"blocked_windows": [
{
"start": "string",
"end": "string"
}
]
},
"snooze_until": "2019-08-24T14:15:22Z",
"next_check_at": "2019-08-24T14:15:22Z",
"last_notified_at": "2019-08-24T14:15:22Z",
"last_checked_at": "2019-08-24T14:15:22Z",
"consecutive_failures": 0,
"first_enabled_at": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"created_by": {
"id": 0,
"uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
"distinct_id": "string",
"first_name": "string",
"last_name": "string",
"email": "user@example.com",
"is_email_verified": true,
"hedgehog_config": {},
"role_at_organization": "engineering"
},
"updated_at": "2019-08-24T14:15:22Z",
"destinations": [
{
"hog_function_ids": [
"497f6eca-6276-4993-bfeb-53cbbbba6f08"
],
"type": "slack",
"enabled": true,
"slack_workspace_id": 0,
"slack_channel_id": "string",
"webhook_url": "string"
}
]
}

Update vision alerts

Required API key scopes

vision_alert:writesession_recording:read

Path parameters

  • id
    string

Request parameters

  • scanner_id
    string
  • name
    string
    Default: Untitled alert
  • enabled
    boolean
    Default: true
  • kind
  • selection
  • metric
  • direction
  • threshold
    number | null
  • window_days
    integer
  • check_interval_minutes
    integer
  • evaluation_periods
    integer
  • datapoints_to_alarm
    integer
  • cooldown_minutes
    integer
  • schedule_restriction
  • snooze_until
    string | null

Response


Example request

PATCH /api/projects/:project_id/vision/alerts/:id
export POSTHOG_PERSONAL_API_KEY=[your personal api key]
curl -X PATCH \
-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
<ph_app_host>/api/projects/:project_id/vision/alerts/:id/\
-d scanner_id="string"

Example response

Status 200
RESPONSE
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"scanner_id": "43593f58-da3f-45f0-a7bf-8763ef29bdf1",
"name": "Untitled alert",
"enabled": true,
"kind": "metric",
"selection": {
"verdict": [
"string"
],
"tags": [
"string"
],
"min_score": 0.1,
"max_score": 0.1
},
"metric": "count",
"direction": "above",
"threshold": 0,
"window_days": 0,
"check_interval_minutes": 15,
"state": "not_firing",
"evaluation_periods": 1,
"datapoints_to_alarm": 1,
"cooldown_minutes": 0,
"schedule_restriction": {
"blocked_windows": [
{
"start": "string",
"end": "string"
}
]
},
"snooze_until": "2019-08-24T14:15:22Z",
"next_check_at": "2019-08-24T14:15:22Z",
"last_notified_at": "2019-08-24T14:15:22Z",
"last_checked_at": "2019-08-24T14:15:22Z",
"consecutive_failures": 0,
"first_enabled_at": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"created_by": {
"id": 0,
"uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
"distinct_id": "string",
"first_name": "string",
"last_name": "string",
"email": "user@example.com",
"is_email_verified": true,
"hedgehog_config": {},
"role_at_organization": "engineering"
},
"updated_at": "2019-08-24T14:15:22Z"
}

Delete vision alerts

Required API key scopes

vision_alert:write

Path parameters

  • id
    string

Example request

DELETE /api/projects/:project_id/vision/alerts/:id
export POSTHOG_PERSONAL_API_KEY=[your personal api key]
curl -X DELETE \
-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
<ph_app_host>/api/projects/:project_id/vision/alerts/:id/

Example response

Status 204 No response body

Create vision alerts destinations

Create a notification destination for this alert. One HogFunction is created per alert event kind atomically.

Required API key scopes

vision_alert:writesession_recording:read

Path parameters

  • id
    string

Request parameters

  • type
  • slack_workspace_id
    integer
  • slack_channel_id
    string
  • slack_channel_name
    string
  • webhook_url
    string

Response


Example request

POST /api/projects/:project_id/vision/alerts/:id/destinations
export POSTHOG_PERSONAL_API_KEY=[your personal api key]
curl
-H 'Content-Type: application/json'\
-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
<ph_app_host>/api/projects/:project_id/vision/alerts/:id/destinations/\
-d type=undefined

Example response

Status 201
RESPONSE
{
"hog_function_ids": [
"497f6eca-6276-4993-bfeb-53cbbbba6f08"
]
}

Create vision alerts destinations delete

Delete a notification destination by deleting its HogFunction group atomically.

Required API key scopes

vision_alert:write

Path parameters

  • id
    string

Request parameters

  • hog_function_ids
    array

Example request

POST /api/projects/:project_id/vision/alerts/:id/destinations/delete
export POSTHOG_PERSONAL_API_KEY=[your personal api key]
curl
-H 'Content-Type: application/json'\
-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
<ph_app_host>/api/projects/:project_id/vision/alerts/:id/destinations/delete/\
-d hog_function_ids="array"

Example response

Status 204 No response body

List all vision alerts events

Paginated event history for this alert, newest first. Quiet no-op check rows (no state change, no error) are filtered out. Optional ?kind=... narrows to one kind.

Required API key scopes

vision_alert:read

Path parameters

  • id
    string

Query parameters

  • kind
    string
    One of: "check""disable""enable""reset""snooze""threshold_change""unsnooze"
  • limit
    integer
  • offset
    integer

Response


Example request

GET /api/projects/:project_id/vision/alerts/:id/events
export POSTHOG_PERSONAL_API_KEY=[your personal api key]
curl \
-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
<ph_app_host>/api/projects/:project_id/vision/alerts/:id/events/

Example response

Status 200
RESPONSE
{
"count": 123,
"next": "http://api.example.org/accounts/?offset=400&limit=100",
"previous": "http://api.example.org/accounts/?offset=200&limit=100",
"results": [
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"created_at": "2019-08-24T14:15:22Z",
"kind": "check",
"state_before": "string",
"state_after": "string",
"threshold_breached": true,
"metric_value": 0,
"error_message": "string"
}
]
}

Create vision alerts reset

Reset a broken alert. Clears the consecutive-failure counter and schedules an immediate recheck.

Required API key scopes

vision_alert:write

Path parameters

  • id
    string

Response


Example request

POST /api/projects/:project_id/vision/alerts/:id/reset
export POSTHOG_PERSONAL_API_KEY=[your personal api key]
curl
-H 'Content-Type: application/json'\
-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
<ph_app_host>/api/projects/:project_id/vision/alerts/:id/reset/

Example response

Status 200
RESPONSE
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"scanner_id": "43593f58-da3f-45f0-a7bf-8763ef29bdf1",
"name": "Untitled alert",
"enabled": true,
"kind": "metric",
"selection": {
"verdict": [
"string"
],
"tags": [
"string"
],
"min_score": 0.1,
"max_score": 0.1
},
"metric": "count",
"direction": "above",
"threshold": 0,
"window_days": 0,
"check_interval_minutes": 15,
"state": "not_firing",
"evaluation_periods": 1,
"datapoints_to_alarm": 1,
"cooldown_minutes": 0,
"schedule_restriction": {
"blocked_windows": [
{
"start": "string",
"end": "string"
}
]
},
"snooze_until": "2019-08-24T14:15:22Z",
"next_check_at": "2019-08-24T14:15:22Z",
"last_notified_at": "2019-08-24T14:15:22Z",
"last_checked_at": "2019-08-24T14:15:22Z",
"consecutive_failures": 0,
"first_enabled_at": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z",
"created_by": {
"id": 0,
"uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
"distinct_id": "string",
"first_name": "string",
"last_name": "string",
"email": "user@example.com",
"is_email_verified": true,
"hedgehog_config": {},
"role_at_organization": "engineering"
},
"updated_at": "2019-08-24T14:15:22Z"
}

List all vision observations

A session's observations across every scanner the caller can read, plus the team-level semantic search action, which resolves its own scanner scope instead of this queryset.

Required API key scopes

replay_scanner:readsession_recording:read

Query parameters

  • limit
    integer
  • offset
    integer
  • order_by
    string
    One of: "-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"
  • session_id
    string

Response


Example request

GET /api/projects/:project_id/vision/observations
export POSTHOG_PERSONAL_API_KEY=[your personal api key]
curl \
-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
<ph_app_host>/api/projects/:project_id/vision/observations/

Example response

Status 200
RESPONSE
{
"count": 123,
"next": "http://api.example.org/accounts/?offset=400&limit=100",
"previous": "http://api.example.org/accounts/?offset=200&limit=100",
"results": [
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"scanner_id": "43593f58-da3f-45f0-a7bf-8763ef29bdf1",
"scanner_origin": "configured",
"session_id": "string",
"status": "pending",
"error_reason": "string",
"workflow_id": "string",
"scanner_snapshot": {
"name": "string",
"scanner_type": "monitor",
"scanner_version": 0,
"model": "string",
"provider": "string",
"emits_signals": true,
"scanner_config": null,
"variant_sampling_rates": {
"property1": 0.1,
"property2": 0.1
}
},
"scanner_result": {
"model_output": null,
"signals_count": 0,
"experiment_variant": "string",
"session_duration_s": 0
},
"prompt_question": "string",
"prompt_valence": "good",
"triggered_by": "schedule",
"triggered_by_user": {
"id": 0,
"uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
"distinct_id": "string",
"first_name": "string",
"last_name": "string",
"email": "user@example.com",
"is_email_verified": true,
"hedgehog_config": {},
"role_at_organization": "engineering"
},
"backfill_id": "724334b4-c968-4355-bf48-120b6dce0c58",
"distinct_id": "string",
"recording_subject_email": "string",
"previous_observation_id": "bdc4be48-ad44-4150-aaf7-80ca533d4bac",
"next_observation_id": "67a517e1-9b1d-4c86-8d8e-6ec9b5738f26",
"label": {
"is_correct": true,
"feedback": ""
},
"viewed": true,
"media": [
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"kind": "thumbnail",
"position": 0,
"asset_id": 0,
"video_start_ms": 0
}
],
"summary_line": "string",
"started_at": "2019-08-24T14:15:22Z",
"completed_at": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z"
}
]
}

Retrieve vision observations

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.

Required API key scopes

replay_scanner:readsession_recording:read

Path parameters

  • id
    string

Query parameters

  • backfill_id
    string
  • date_from
    string
  • date_to
    string
  • labeled
    string
  • max_score
    number
  • min_score
    number
  • order_by
    string
    One of: "-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"
  • recording_subject
    string
  • session_id
    string
  • status
    string
  • tags
    string
  • triggered_by
    string
  • variant
    string
  • verdict
    string

Response


Example request

GET /api/projects/:project_id/vision/observations/:id
export POSTHOG_PERSONAL_API_KEY=[your personal api key]
curl \
-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
<ph_app_host>/api/projects/:project_id/vision/observations/:id/

Example response

Status 200
RESPONSE
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"scanner_id": "43593f58-da3f-45f0-a7bf-8763ef29bdf1",
"scanner_origin": "configured",
"session_id": "string",
"status": "pending",
"error_reason": "string",
"workflow_id": "string",
"scanner_snapshot": {
"name": "string",
"scanner_type": "monitor",
"scanner_version": 0,
"model": "string",
"provider": "string",
"emits_signals": true,
"scanner_config": null,
"variant_sampling_rates": {
"property1": 0.1,
"property2": 0.1
}
},
"scanner_result": {
"model_output": null,
"signals_count": 0,
"experiment_variant": "string",
"session_duration_s": 0
},
"prompt_question": "string",
"prompt_valence": "good",
"triggered_by": "schedule",
"triggered_by_user": {
"id": 0,
"uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
"distinct_id": "string",
"first_name": "string",
"last_name": "string",
"email": "user@example.com",
"is_email_verified": true,
"hedgehog_config": {},
"role_at_organization": "engineering"
},
"backfill_id": "724334b4-c968-4355-bf48-120b6dce0c58",
"distinct_id": "string",
"recording_subject_email": "string",
"previous_observation_id": "bdc4be48-ad44-4150-aaf7-80ca533d4bac",
"next_observation_id": "67a517e1-9b1d-4c86-8d8e-6ec9b5738f26",
"label": {
"is_correct": true,
"feedback": ""
},
"viewed": true,
"media": [
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"kind": "thumbnail",
"position": 0,
"asset_id": 0,
"video_start_ms": 0
}
],
"summary_line": "string",
"started_at": "2019-08-24T14:15:22Z",
"completed_at": "2019-08-24T14:15:22Z",
"created_at": "2019-08-24T14:15:22Z"
}

Create vision observations create task

Create a PostHog Task from this observation's finding so it can be triaged and fixed. Title and description are derived from the scanner and its result. Record-only: this does not start the coding agent. Idempotent per observation: once a task exists, repeat calls return its id with a 200 instead of creating a duplicate.

Required API key scopes

replay_scanner:writesession_recording:readtask:write

Path parameters

  • id
    string

Response


Example request

POST /api/projects/:project_id/vision/observations/:id/create_task
export POSTHOG_PERSONAL_API_KEY=[your personal api key]
curl
-H 'Content-Type: application/json'\
-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
<ph_app_host>/api/projects/:project_id/vision/observations/:id/create_task/

Example response

Status 200
RESPONSE
{
"task_id": "736fde4d-9029-4915-8189-01353d6982cb"
}
Status 201
RESPONSE
{
"task_id": "736fde4d-9029-4915-8189-01353d6982cb"
}

Create vision observations feed dismissal

Mark this observation not useful for the calling user, with an optional reason. What to watch stops showing it to that user. Sending it again replaces the reason.

Required API key scopes

replay_scanner:readsession_recording:read

Path parameters

  • id
    string

Request parameters

  • reason

Example request

POST /api/projects/:project_id/vision/observations/:id/feed_dismissal
export POSTHOG_PERSONAL_API_KEY=[your personal api key]
curl
-H 'Content-Type: application/json'\
-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
<ph_app_host>/api/projects/:project_id/vision/observations/:id/feed_dismissal/\
-d reason=undefined

Example response

Status 204 No response body

Delete vision observations feed dismissal

Undo the calling user's not-useful mark, so What to watch can show the observation again.

Required API key scopes

replay_scanner:readsession_recording:read

Path parameters

  • id
    string

Example request

DELETE /api/projects/:project_id/vision/observations/:id/feed_dismissal
export POSTHOG_PERSONAL_API_KEY=[your personal api key]
curl -X DELETE \
-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
<ph_app_host>/api/projects/:project_id/vision/observations/:id/feed_dismissal/

Example response

Status 204 No response body

Create vision observations label

Set or update the observation's shared label: whether the scanner scored the session correctly, plus optional feedback on what it got wrong. One label per observation, shared across the team; these labels feed prompt improvement. Requires editor access to the scanner.

Required API key scopes

replay_scanner:writesession_recording:read

Path parameters

  • id
    string

Request parameters

  • is_correct
    boolean
  • feedback
    string
    Default:

Response


Example request

POST /api/projects/:project_id/vision/observations/:id/label
export POSTHOG_PERSONAL_API_KEY=[your personal api key]
curl
-H 'Content-Type: application/json'\
-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
<ph_app_host>/api/projects/:project_id/vision/observations/:id/label/\
-d is_correct="boolean"

Example response

Status 200
RESPONSE
{
"is_correct": true,
"feedback": ""
}

Delete vision observations label

Remove the observation's shared label. Requires editor access to the scanner.

Required API key scopes

replay_scanner:writesession_recording:read

Path parameters

  • id
    string

Example request

DELETE /api/projects/:project_id/vision/observations/:id/label
export POSTHOG_PERSONAL_API_KEY=[your personal api key]
curl -X DELETE \
-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
<ph_app_host>/api/projects/:project_id/vision/observations/:id/label/

Example response

Status 204 No response body

Create vision observations retry

Delete a failed or ineligible observation and re-run its scanner on the same recording. Returns 202 with the workflow handle.

Required API key scopes

replay_scanner:writesession_recording:read

Path parameters

  • id
    string

Response


Example request

POST /api/projects/:project_id/vision/observations/:id/retry
export POSTHOG_PERSONAL_API_KEY=[your personal api key]
curl
-H 'Content-Type: application/json'\
-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
<ph_app_host>/api/projects/:project_id/vision/observations/:id/retry/

Example response

Status 202
RESPONSE
{
"workflow_id": "string"
}
Status 409 The previous run is still finishing.
RESPONSE
{
"detail": "string"
}
Status 503 The retry couldn't be started.
RESPONSE
{
"detail": "string"
}

List all vision observations signal reports

The inbox reports this observation's emitted signals were grouped into, newest first.

Required API key scopes

replay_scanner:readsession_recording:readtask:read

Path parameters

  • id
    string

Example request

GET /api/projects/:project_id/vision/observations/:id/signal_reports
export POSTHOG_PERSONAL_API_KEY=[your personal api key]
curl \
-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
<ph_app_host>/api/projects/:project_id/vision/observations/:id/signal_reports/

Example response

Status 200
RESPONSE
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"title": "string",
"status": "string",
"created_at": "2019-08-24T14:15:22Z"
}

Retrieve vision observations thumbnail

Redirect to the frame that illustrates this observation, so a caller with only the observation id can show it.

Required API key scopes

replay_scanner:readsession_recording:read

Path parameters

  • id
    string

Query parameters

  • chapter
    integer

Example request

GET /api/projects/:project_id/vision/observations/:id/thumbnail
export POSTHOG_PERSONAL_API_KEY=[your personal api key]
curl \
-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
<ph_app_host>/api/projects/:project_id/vision/observations/:id/thumbnail/

Example response

Status 302 Redirect to the image.
Status 404 The observation has no such frame, or its render has not landed yet.
RESPONSE
{
"detail": "string"
}