Viewport daemon, relay, and hosted runtime are available in alpha. Surfaces may change.
VIEWPORT
ReferenceAPI reference

Agent Sessions

33 operations in the Agent Sessions group.

GET /api/resources/{workspace}/sessions

List Product20 agent sessions for a workspace

Operation ID: listAgentSessions

Parameters

NameInRequiredTypeDescription
workspacepathyesstring
statusquerynostring
source_kindquerynostring
limitquerynointeger

Responses

StatusDescriptionSchema
200Agent sessionsAgentSessionCollectionResponse
403Forbidden.

POST /api/resources/{workspace}/sessions

Create a Product20 agent session

Operation ID: createAgentSession

Parameters

NameInRequiredTypeDescription
workspacepathyesstring

Request bodyapplication/json · AgentSessionCreateRequest (required)

FieldTypeRequired
titlestringyes
summary`stringnull`
source_kindstringyes
source_ref`stringnull`
primary_surfacestringno
selected_target_repo_idsarray<string>no
primary_owning_team_id`stringnull`
budget_owner_team_id`stringnull`
visibility_scopeenum(workspace, team, private)no
effective_policy_hash`stringnull`
policy_source_refsarray<string>no
data_plane_profile_id`stringnull`
metadataobjectno
routing_candidatesarray<RoutingCandidateInput>no
team_scopesarray<SessionTeamScopeInput>no

Responses

StatusDescriptionSchema
201Created agent sessionAgentSessionResponse
403Forbidden.
422Validation error.

GET /api/resources/{workspace}/sessions/{agentSession}

Get a Product20 agent session aggregate

Operation ID: getAgentSession

Parameters

NameInRequiredTypeDescription
workspacepathyesstring
agentSessionpathyesstring

Responses

StatusDescriptionSchema
200Agent sessionAgentSessionResponse
403Forbidden.

POST /api/resources/{workspace}/sessions/{agentSession}/access

Grant or update access to a Product20 session

Operation ID: shareAgentSessionAccess

Parameters

NameInRequiredTypeDescription
workspacepathyesstring
agentSessionpathyesstring

Request bodyapplication/json · AgentSessionAccessShareRequest (required)

FieldTypeRequired
subject_typeenum(user, team, share_group)yes
subject_idintegeryes
roleenum(viewer, commenter, steerer, approver, owner)yes

Responses

StatusDescriptionSchema
200Agent session access updatedAgentSessionAccessShareResponse
201Agent session access grantedAgentSessionAccessShareResponse
403Forbidden.
404Share principal not available.

POST /api/resources/{workspace}/sessions/{agentSession}/access-requests

Request access to a Product20 session

Operation ID: requestAgentSessionAccess

Parameters

NameInRequiredTypeDescription
workspacepathyesstring
agentSessionpathyesstring

Request bodyapplication/json · AgentSessionAccessRequestCreateRequest (required)

FieldTypeRequired
requested_roleenum(viewer, commenter, steerer, approver)yes
reason`stringnull`

Responses

StatusDescriptionSchema
201Agent session access requestedAgentSessionAccessRequestResponse
403Forbidden.

POST /api/resources/{workspace}/sessions/{agentSession}/access-requests/{accessRequestId}/decision

Approve or deny a Product20 session access request

Operation ID: decideAgentSessionAccessRequest

Parameters

NameInRequiredTypeDescription
workspacepathyesstring
agentSessionpathyesstring
accessRequestIdpathyesstring

Request bodyapplication/json · AgentSessionAccessRequestDecisionRequest (required)

FieldTypeRequired
decisionenum(approve, deny)yes
role`stringnull`
reason`stringnull`

Responses

StatusDescriptionSchema
200Agent session access request decidedAgentSessionAccessRequestDecisionResponse
403Forbidden.
404Access request not found.
409Access request already decided.

DELETE /api/resources/{workspace}/sessions/{agentSession}/access/{aclEntry}

Revoke access to a Product20 session

Operation ID: revokeAgentSessionAccess

Parameters

NameInRequiredTypeDescription
workspacepathyesstring
agentSessionpathyesstring
aclEntrypathyesstring

Responses

StatusDescriptionSchema
200Agent session access revokedAgentSessionAccessRevokeResponse
403Forbidden.

GET /api/resources/{workspace}/sessions/{agentSession}/adapter-receipts

Export Product20 neutral-agent adapter receipt evidence

Operation ID: exportAgentSessionAdapterReceipts

Parameters

NameInRequiredTypeDescription
workspacepathyesstring
agentSessionpathyesstring

Responses

StatusDescriptionSchema
200Agent session adapter receipt evidenceAgentSessionAdapterReceiptsResponse
403Forbidden.

GET /api/resources/{workspace}/sessions/{agentSession}/approval-audit

Get a Product20 session approval audit feed

Operation ID: getAgentSessionApprovalAudit

Parameters

NameInRequiredTypeDescription
workspacepathyesstring
agentSessionpathyesstring

Responses

StatusDescriptionSchema
200Session approval audit feedAgentSessionApprovalAuditResponse
403Forbidden.

POST /api/resources/{workspace}/sessions/{agentSession}/attempt-graph

Compose a Product20 session attempt graph with conflict warnings

Operation ID: composeAgentSessionAttemptGraph

Parameters

NameInRequiredTypeDescription
workspacepathyesstring
agentSessionpathyesstring

Responses

StatusDescriptionSchema
201Session attempt graph composedAgentSessionAttemptGraphResponse
403Forbidden.

GET /api/resources/{workspace}/sessions/{agentSession}/collaboration

Return Product20 session collaboration projection

Operation ID: showAgentSessionCollaboration

Parameters

NameInRequiredTypeDescription
workspacepathyesstring
agentSessionpathyesstring

Responses

StatusDescriptionSchema
200Agent session collaboration projectionAgentSessionCollaborationResponse
403Forbidden.

POST /api/resources/{workspace}/sessions/{agentSession}/collaboration-events

Append a Product20 session collaboration event

Operation ID: storeAgentSessionCollaborationEvent

Parameters

NameInRequiredTypeDescription
workspacepathyesstring
agentSessionpathyesstring

Request bodyapplication/json · AgentSessionCollaborationEventStoreRequest (required)

FieldTypeRequired
event_kindenum(task_created, task_assigned, task_reassigned, task_status_changed, mailbox_message_sent, comment_created)yes
task_id`stringnull`
title`stringnull`
description`stringnull`
status`stringnull`
previous_status`stringnull`
dependencies`arraynull`
assignees`arraynull`
assignee`AgentSessionCollaborationActornull`
recipient`AgentSessionCollaborationActornull`
subject`stringnull`
target`AgentSessionCollaborationCommentTargetnull`
thread_id`stringnull`
body_ciphertext`stringnull`
body_digest`stringnull`
body_plaintext`stringnull`

Responses

StatusDescriptionSchema
201Agent session collaboration event recordedAgentSessionCollaborationEventResponse
403Forbidden.
422Validation error.

GET /api/resources/{workspace}/sessions/{agentSession}/compute-evidence

Export redacted Product20 managed compute evidence for a session

Operation ID: exportAgentSessionComputeEvidence

Parameters

NameInRequiredTypeDescription
workspacepathyesstring
agentSessionpathyesstring

Responses

StatusDescriptionSchema
200Agent session compute evidenceAgentSessionComputeEvidenceResponse
403Forbidden.

POST /api/resources/{workspace}/sessions/{agentSession}/context-corrections

Capture a reviewer context correction as a governed candidate

Operation ID: createAgentSessionContextCorrection

Parameters

NameInRequiredTypeDescription
workspacepathyesstring
agentSessionpathyesstring

Request bodyapplication/json · AgentSessionContextCorrectionCreateRequest (required)

FieldTypeRequired
context_source_id`integerstring
correction_kindenum(missing_context, stale_context, wrong_context, new_memory, promote_to_policy)yes
target_kindenum(memory_candidate, config_candidate)yes
titlestringyes
summary`stringnull`
proposed_text`stringnull`
metadataobjectno

Responses

StatusDescriptionSchema
201Created context correction candidateAgentSessionContextCorrectionResponse
403Forbidden.
422Validation error.

POST /api/resources/{workspace}/sessions/{agentSession}/context-working-set

Compose a governed Product20 session context working set receipt

Operation ID: composeAgentSessionContextWorkingSet

Parameters

NameInRequiredTypeDescription
workspacepathyesstring
agentSessionpathyesstring

Responses

StatusDescriptionSchema
200Context working set receiptAgentSessionContextWorkingSetResponse
403Forbidden.

GET /api/resources/{workspace}/sessions/{agentSession}/events

Return Product20 session event deltas for cursor backfill

Operation ID: listAgentSessionEvents

Parameters

NameInRequiredTypeDescription
workspacepathyesstring
agentSessionpathyesstring
after_sequencequerynointeger
limitquerynointeger

Responses

StatusDescriptionSchema
200Agent session event delta backfillAgentSessionEventDeltaResponse
403Forbidden.
422Validation error.

POST /api/resources/{workspace}/sessions/{agentSession}/fan-in-review

Compose a Product20 session fan-in review from attempt facts

Operation ID: composeAgentSessionFanInReview

Parameters

NameInRequiredTypeDescription
workspacepathyesstring
agentSessionpathyesstring

Responses

StatusDescriptionSchema
201Session fan-in review composedAgentSessionFanInReviewResponse
403Forbidden.

GET /api/resources/{workspace}/sessions/{agentSession}/governance

Get effective Product20 session budget and review governance

Operation ID: getAgentSessionGovernance

Parameters

NameInRequiredTypeDescription
workspacepathyesstring
agentSessionpathyesstring

Responses

StatusDescriptionSchema
200Effective session governanceAgentSessionGovernanceResponse
403Forbidden.

GET /api/resources/{workspace}/sessions/{agentSession}/guardrail-evidence

Export Product20 guardrail and quality evidence

Operation ID: exportAgentSessionGuardrailEvidence

Parameters

NameInRequiredTypeDescription
workspacepathyesstring
agentSessionpathyesstring

Responses

StatusDescriptionSchema
200Agent session guardrail and quality evidenceAgentSessionGuardrailEvidenceResponse
403Forbidden.

GET /api/resources/{workspace}/sessions/{agentSession}/mcp-tools

Export Product20 MCP tool governance receipts

Operation ID: exportAgentSessionMcpTools

Parameters

NameInRequiredTypeDescription
workspacepathyesstring
agentSessionpathyesstring

Responses

StatusDescriptionSchema
200Agent session MCP tool governance receiptsAgentSessionMcpToolsResponse
403Forbidden.

POST /api/resources/{workspace}/sessions/{agentSession}/memory-retrieval

Retrieve governed memory for a Product20 session from its fenced working set

Operation ID: retrieveAgentSessionMemory

Parameters

NameInRequiredTypeDescription
workspacepathyesstring
agentSessionpathyesstring

Request bodyapplication/json · AgentSessionMemoryRetrievalRequest (required)

FieldTypeRequired
querystringyes
limitintegerno
context_source_idsarray<string>no

Responses

StatusDescriptionSchema
200Memory retrieval receiptAgentSessionMemoryRetrievalResponse
403Forbidden.
422Requested source is outside the session working set.

POST /api/resources/{workspace}/sessions/{agentSession}/model-routing-decision

Compose a Product20 session model routing decision receipt

Operation ID: composeAgentSessionModelRoutingDecision

Parameters

NameInRequiredTypeDescription
workspacepathyesstring
agentSessionpathyesstring

Responses

StatusDescriptionSchema
200Session model routing decision composedAgentSessionModelRoutingResponse
403Forbidden.

GET /api/resources/{workspace}/sessions/{agentSession}/readiness

Export Product20 session readiness and cold-acceptance blockers

Operation ID: exportAgentSessionReadiness

Parameters

NameInRequiredTypeDescription
workspacepathyesstring
agentSessionpathyesstring

Responses

StatusDescriptionSchema
200Agent session readinessAgentSessionReadinessResponse
403Forbidden.

GET /api/resources/{workspace}/sessions/{agentSession}/receipt-export

Export a signed Product20 agent session receipt bundle

Operation ID: exportAgentSessionReceipt

Parameters

NameInRequiredTypeDescription
workspacepathyesstring
agentSessionpathyesstring

Responses

StatusDescriptionSchema
200Signed agent session receipt exportAgentSessionReceiptExportResponse
403Forbidden.

GET /api/resources/{workspace}/sessions/{agentSession}/room

Return Product20 session room aggregate

Operation ID: showAgentSessionRoom

Parameters

NameInRequiredTypeDescription
workspacepathyesstring
agentSessionpathyesstring

Responses

StatusDescriptionSchema
200Agent session room aggregateAgentSessionRoomResponse
403Forbidden.

POST /api/resources/{workspace}/sessions/{agentSession}/routing-decisions

Record a human routing confirmation or correction for a Product20 agent session

Operation ID: createAgentSessionRoutingDecision

Parameters

NameInRequiredTypeDescription
workspacepathyesstring
agentSessionpathyesstring

Request bodyapplication/json · RoutingDecisionCreateRequest (required)

FieldTypeRequired
selected_routing_candidate_id`stringnull`
decision_kindenum(confirmed, corrected, rejected, needs_more_info)yes
confidence`numbernull`
reason`stringnull`
metadataobjectno

Responses

StatusDescriptionSchema
201Created routing decisionRoutingDecisionResponse
403Forbidden.
422Validation error.

POST /api/resources/{workspace}/sessions/{agentSession}/run-attempts

Queue the first governed run attempt for a Product20 agent session

Operation ID: queueAgentSessionRunAttempt

Parameters

NameInRequiredTypeDescription
workspacepathyesstring
agentSessionpathyesstring

Request bodyapplication/json · AgentSessionRunAttemptRequest

FieldTypeRequired
managed_executor_id`stringnull`

Responses

StatusDescriptionSchema
201Queued session run attemptWorkflowRunResponse
403Forbidden.
422Validation error.

GET /api/resources/{workspace}/sessions/{agentSession}/spend

Export finalized Product20 session spend attribution

Operation ID: exportAgentSessionSpend

Parameters

NameInRequiredTypeDescription
workspacepathyesstring
agentSessionpathyesstring

Responses

StatusDescriptionSchema
200Agent session spend attributionAgentSessionSpendResponse
403Forbidden.

GET /api/resources/{workspace}/sessions/{agentSession}/support-debug

Get a redacted Product20 session support/debug view

Operation ID: getAgentSessionSupportDebug

Parameters

NameInRequiredTypeDescription
workspacepathyesstring
agentSessionpathyesstring

Responses

StatusDescriptionSchema
200Redacted session support/debug viewAgentSessionSupportDebugResponse
403Forbidden.

GET /api/resources/{workspace}/sessions/{agentSession}/trace-export

Export a signed Product20 agent session trace bundle

Operation ID: exportAgentSessionTrace

Parameters

NameInRequiredTypeDescription
workspacepathyesstring
agentSessionpathyesstring

Responses

StatusDescriptionSchema
200Signed agent session trace exportAgentSessionTraceExportResponse
403Forbidden.

POST /api/resources/{workspace}/sessions/{agentSession}/verification-attempts

Record a Product20 session verification attempt

Operation ID: createAgentSessionVerificationAttempt

Parameters

NameInRequiredTypeDescription
workspacepathyesstring
agentSessionpathyesstring

Request bodyapplication/json · SessionVerificationAttemptCreateRequest (required)

FieldTypeRequired
workflow_run_id`stringnull`
attempt_kindenum(verification, repair_verification, manual_review)no
statusenum(passed, failed, needs_review, error)yes
verification_packobjectno
summary`stringnull`
artifact_refsarray<string>no
repair_recommendationobjectno

Responses

StatusDescriptionSchema
201Recorded verification attemptSessionVerificationAttemptRecordedResponse
403Forbidden.
422Validation error.

POST /api/resources/{workspace}/sessions/{agentSession}/verification-pack

Resolve a Product20 session verification pack from policy receipts

Operation ID: resolveAgentSessionVerificationPack

Parameters

NameInRequiredTypeDescription
workspacepathyesstring
agentSessionpathyesstring

Request bodyapplication/json · SessionVerificationPackResolveRequest

FieldTypeRequired
workflow_run_id`stringnull`

Responses

StatusDescriptionSchema
201Resolved verification packSessionVerificationPackResolvedResponse
403Forbidden.
422Validation error.

POST /api/resources/{workspace}/sessions/{agentSession}/verification-repair-handoffs

Create a bounded repair or human-review handoff for a failed verification attempt

Operation ID: createAgentSessionVerificationRepairHandoff

Parameters

NameInRequiredTypeDescription
workspacepathyesstring
agentSessionpathyesstring

Request bodyapplication/json · SessionVerificationRepairHandoffCreateRequest (required)

FieldTypeRequired
verification_attempt_idstringyes
requested_actionenum(bounded_repair, human_review)no
reasonstringno

Responses

StatusDescriptionSchema
201Verification repair handoff createdSessionVerificationRepairHandoffResponse
403Forbidden.
422Validation error.

On this page

GET /api/resources/{workspace}/sessionsPOST /api/resources/{workspace}/sessionsGET /api/resources/{workspace}/sessions/{agentSession}POST /api/resources/{workspace}/sessions/{agentSession}/accessPOST /api/resources/{workspace}/sessions/{agentSession}/access-requestsPOST /api/resources/{workspace}/sessions/{agentSession}/access-requests/{accessRequestId}/decisionDELETE /api/resources/{workspace}/sessions/{agentSession}/access/{aclEntry}GET /api/resources/{workspace}/sessions/{agentSession}/adapter-receiptsGET /api/resources/{workspace}/sessions/{agentSession}/approval-auditPOST /api/resources/{workspace}/sessions/{agentSession}/attempt-graphGET /api/resources/{workspace}/sessions/{agentSession}/collaborationPOST /api/resources/{workspace}/sessions/{agentSession}/collaboration-eventsGET /api/resources/{workspace}/sessions/{agentSession}/compute-evidencePOST /api/resources/{workspace}/sessions/{agentSession}/context-correctionsPOST /api/resources/{workspace}/sessions/{agentSession}/context-working-setGET /api/resources/{workspace}/sessions/{agentSession}/eventsPOST /api/resources/{workspace}/sessions/{agentSession}/fan-in-reviewGET /api/resources/{workspace}/sessions/{agentSession}/governanceGET /api/resources/{workspace}/sessions/{agentSession}/guardrail-evidenceGET /api/resources/{workspace}/sessions/{agentSession}/mcp-toolsPOST /api/resources/{workspace}/sessions/{agentSession}/memory-retrievalPOST /api/resources/{workspace}/sessions/{agentSession}/model-routing-decisionGET /api/resources/{workspace}/sessions/{agentSession}/readinessGET /api/resources/{workspace}/sessions/{agentSession}/receipt-exportGET /api/resources/{workspace}/sessions/{agentSession}/roomPOST /api/resources/{workspace}/sessions/{agentSession}/routing-decisionsPOST /api/resources/{workspace}/sessions/{agentSession}/run-attemptsGET /api/resources/{workspace}/sessions/{agentSession}/spendGET /api/resources/{workspace}/sessions/{agentSession}/support-debugGET /api/resources/{workspace}/sessions/{agentSession}/trace-exportPOST /api/resources/{workspace}/sessions/{agentSession}/verification-attemptsPOST /api/resources/{workspace}/sessions/{agentSession}/verification-packPOST /api/resources/{workspace}/sessions/{agentSession}/verification-repair-handoffs