Vision
For instructions on how to authenticate to use this endpoint, see API overview.
Endpoints
POST | |
GET | |
GET | |
POST | |
GET | |
GET | |
POST | |
GET | |
GET | |
POST | |
GET | |
PATCH | |
DELETE | |
POST | |
POST | |
POST | |
POST | |
GET | |
POST | |
GET |
Create vision observations viewed
Record that the calling user opened this observation. Idempotent.
Required API key scopes
replay_scanner:readsession_recording:readPath parameters
- idstring
Example request
POST /api /projects /:project_id /vision /observations /:id /viewedExample response
Status 204 No response body
Retrieve vision observations search
Rank observations by semantic similarity to the search text, optionally filtered by exact outcome (verdict, score, tags).
Required API key scopes
replay_scanner:readsession_recording:readQuery parameters
- date_fromstring
- date_tostring
- limitintegerDefault:
20 - max_scorenumber
- min_scorenumber
- qstring
- scanner_idstring
- tagsstring
- verdictstring
Response
Example request
GET /api /projects /:project_id /vision /observations /searchExample response
Status 200
Status 503 The embedding service did not respond.
Retrieve vision observations search suggestions
Example searches drawn from recent observations, for the Search tab's empty state. Reads what the
scheduled refresher stored; search_viewed records the view separately so this GET has no side effect.
Required API key scopes
replay_scanner:readsession_recording:readQuery parameters
- scanner_idstring
Response
Example request
GET /api /projects /:project_id /vision /observations /search_suggestionsExample response
Status 200
Create vision observations search viewed
Record that the Search tab showed suggestions for this scope. The scheduled refresher serves viewed scanners first, so the stamp lives on a CSRF-protected POST rather than the read.
Required API key scopes
replay_scanner:readsession_recording:readRequest parameters
- scanner_idstring
Example request
POST /api /projects /:project_id /vision /observations /search_viewedExample response
Status 204 No response body
Retrieve environment vision quota
Required API key scopes
replay_scanner:readResponse
Example request
GET /api /projects /:project_id /vision /quotaExample response
Status 200
Retrieve environment vision quota spend series
Required API key scopes
replay_scanner:readResponse
Example request
GET /api /projects /:project_id /vision /quota /spend_seriesExample response
Status 200
Create vision requests
Scan sessions with a saved scanner or an inline question. Poll the returned request for results.
Required API key scopes
replay_scanner:writesession_recording:readRequest parameters
- session_idsarray
- scanner_idstring
- inline
- idempotency_keystring
- referencestringDefault:
- wait_for_session_endbooleanDefault:
false
Response
Example request
POST /api /projects /:project_id /vision /requestsExample response
Status 200 A request with this `idempotency_key` already exists. Nothing new was started.
Status 202
Status 409 This `idempotency_key` already names a request made by another caller.
Retrieve vision requests
Start scans for named sessions from code, and read their results back through one request id.
Required API key scopes
replay_scanner:writesession_recording:readPath parameters
- idstring
Response
Example request
GET /api /projects /:project_id /vision /requests /:idExample response
Status 200
List all vision scanners
CRUD for Replay Vision scanners.
Required API key scopes
replay_scanner:readQuery parameters
- created_bystring
- emits_signalsboolean
- enabledstring
- experiment_idstring
- limitinteger
- offsetinteger
- order_bystringOne of:
"-created_at""-created_by""-credits_this_month""-enabled""-name""-sampling_rate""-scanner_type""-updated_at""created_at""created_by""credits_this_month""enabled""name""sampling_rate""scanner_type""updated_at" - scanner_typestring
- searchstring
- tagsstring
Response
Example request
GET /api /projects /:project_id /vision /scannersExample response
Status 200
Create vision scanners
CRUD for Replay Vision scanners.
Required API key scopes
replay_scanner:writesession_recording:readRequest parameters
- namestring
- descriptionstring
- tagsarray
- scanner_type
- goalstring | null
- creation_method
- scanner_config
- query
- sampling_ratenumber
- sampling_mode
- credit_limitinteger | null
- free_onlyboolean
- provider
- model
- enabledboolean
- emits_signalsboolean
- experiment_targeting
Response
Example request
POST /api /projects /:project_id /vision /scannersExample response
Status 201
Retrieve vision scanners
CRUD for Replay Vision scanners.
Required API key scopes
replay_scanner:readPath parameters
- idstring
Response
Example request
GET /api /projects /:project_id /vision /scanners /:idExample response
Status 200
Update vision scanners
CRUD for Replay Vision scanners.
Required API key scopes
replay_scanner:writesession_recording:readPath parameters
- idstring
Request parameters
- namestring
- descriptionstring
- tagsarray
- scanner_type
- goalstring | null
- creation_method
- scanner_config
- query
- sampling_ratenumber
- sampling_mode
- credit_limitinteger | null
- free_onlyboolean
- provider
- model
- enabledboolean
- emits_signalsboolean
- experiment_targeting
Response
Example request
PATCH /api /projects /:project_id /vision /scanners /:idExample response
Status 200
Delete vision scanners
CRUD for Replay Vision scanners.
Required API key scopes
replay_scanner:writePath parameters
- idstring
Example request
DELETE /api /projects /:project_id /vision /scanners /:idExample response
Status 204 No response body
Create vision scanners affected cohort
Save the users this scanner matched as a static cohort, for surveys, funnels, and retention analysis.
Required API key scopes
replay_scanner:readsession_recording:readcohort:writePath parameters
- idstring
Request parameters
- window_daysintegerDefault:
30 - verdict
- tagstring | null
- min_scorenumber | null
- max_scorenumber | null
Response
Example request
POST /api /projects /:project_id /vision /scanners /:id /affected_cohortExample response
Status 201
Create vision scanners bulk observe
Apply this scanner to many sessions on demand. Starts as many as fit under the in-flight caps and monthly credit quota, reporting the rest as skipped rather than failing the batch.
Required API key scopes
replay_scanner:writesession_recording:readPath parameters
- idstring
Request parameters
- session_idsarray
Response
Example request
POST /api /projects /:project_id /vision /scanners /:id /bulk_observeExample response
Status 202
Create vision scanners create dashboard
Create a dashboard that charts this scanner's observations, and link it to the scanner.
The tiles depend on the scanner type: who the scanner matched, which accounts they belong to, type-specific breakdowns, and the latest matching recordings. Calling it again returns the existing dashboard rather than a second one.
Required API key scopes
replay_scanner:readsession_recording:readdashboard:writeinsight:writePath parameters
- idstring
Response
Example request
POST /api /projects /:project_id /vision /scanners /:id /create_dashboardExample response
Status 200 The scanner already had a dashboard.
Status 201
Create vision scanners duplicate
Copy a scanner into a new disabled scanner named "<name> (copy)".
Copies the stored model row rather than the serializer's read representation, so a query that no longer validates survives the copy; duplicating through the create endpoint would silently drop it. Experiment targeting is the exception and follows the read path instead. Unlike create, no digest is provisioned: the copy starts disabled and unreviewed.
Required API key scopes
replay_scanner:writesession_recording:readPath parameters
- idstring
Response
Example request
POST /api /projects /:project_id /vision /scanners /:id /duplicateExample response
Status 201
Retrieve vision scanners impact
Affected sessions and users for this scanner over the trailing window.
Required API key scopes
replay_scanner:readsession_recording:readPath parameters
- idstring
Query parameters
- max_scorenumber | null
- min_scorenumber | null
- tagstring | null
- verdictstring | nullOne of:
"yes""no""inconclusive" - window_daysintegerDefault:
30
Response
Example request
GET /api /projects /:project_id /vision /scanners /:id /impactExample response
Status 200
Create vision scanners observe
Apply this scanner to one specific session, on demand. Returns 202 with the workflow handle.
Required API key scopes
replay_scanner:writesession_recording:readPath parameters
- idstring
Request parameters
- session_idstring
Response
Example request
POST /api /projects /:project_id /vision /scanners /:id /observeExample response
Status 200
Status 202
Status 503 The observation workflow couldn't be started.
Retrieve vision scanners self driving stats
What self-driving did with this scanner's signals: reports contributed to and PRs opened.
Required API key scopes
replay_scanner:readtask:readPath parameters
- idstring
Response
Example request
GET /api /projects /:project_id /vision /scanners /:id /self_driving_stats










