API Reference

Privileged Session Management API

Privileged session management — credential-injecting SSH/HTTPS brokers, recording, and audit. Auto-generated from the platform OpenAPI schema so it matches the running API.

REST API for this feature — 22 operations across 14 resource paths, auto-generated from the platform's live OpenAPI schema (drf-spectacular).

Base URL https://<your-versus-host>/api · Auth Authorization: Bearer <JWT> (from POST /api/auth/token/) · 📄 Download the OpenAPI spec for Postman/Insomnia/Swagger · see the API overview for pagination, filtering, and errors.

Policies

GET /api/psm/policies/

List policys

ParameterInRequiredTypeDescription
orderingquerynostringWhich field to use when ordering the results.
pagequerynointegerA page number within the paginated result set.
page_sizequerynointegerNumber of results to return per page.
searchquerynostringA search term.

Responses: 200 → PaginatedSessionPolicyList

POST /api/psm/policies/

Create policy

Request body (application/json): SessionPolicyRequest

Responses: 201 → SessionPolicy

GET /api/psm/policies/{id}/

Retrieve policy

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this session policy.

Responses: 200 → SessionPolicy

PUT /api/psm/policies/{id}/

Update policy

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this session policy.

Request body (application/json): SessionPolicyRequest

Responses: 200 → SessionPolicy

PATCH /api/psm/policies/{id}/

Update policy

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this session policy.

Request body (application/json): PatchedSessionPolicyRequest

Responses: 200 → SessionPolicy

DELETE /api/psm/policies/{id}/

Delete policy

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this session policy.

Responses: 204


Sessions

GET /api/psm/sessions/

List sessions

ParameterInRequiredTypeDescription
orderingquerynostringWhich field to use when ordering the results.
pagequerynointegerA page number within the paginated result set.
page_sizequerynointegerNumber of results to return per page.
searchquerynostringA search term.

Responses: 200 → PaginatedPrivilegedSessionList

POST /api/psm/sessions/

Create session

Request body (application/json): PrivilegedSessionRequest

Responses: 201 → PrivilegedSession

GET /api/psm/sessions/machine/

Read-only view of the collector machine/API sessions (TunnelSession)

Responses: 200 → PrivilegedSession

GET /api/psm/sessions/{id}/

Retrieve session

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this privileged session.

Responses: 200 → PrivilegedSession

PUT /api/psm/sessions/{id}/

Update session

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this privileged session.

Request body (application/json): PrivilegedSessionRequest

Responses: 200 → PrivilegedSession

PATCH /api/psm/sessions/{id}/

Update session

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this privileged session.

Request body (application/json): PatchedPrivilegedSessionRequest

Responses: 200 → PrivilegedSession

DELETE /api/psm/sessions/{id}/

Delete session

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this privileged session.

Responses: 204

POST /api/psm/sessions/{id}/approve/

Approve: session

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this privileged session.

Request body (application/json): PrivilegedSessionRequest

Responses: 200 → PrivilegedSession

POST /api/psm/sessions/{id}/close/

Close: session

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this privileged session.

Request body (application/json): PrivilegedSessionRequest

Responses: 200 → PrivilegedSession

GET /api/psm/sessions/{id}/connect/

Download the one-time .rdp for an RDP session (actor-owned).

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this privileged session.

Responses: 200 → PrivilegedSession

POST /api/psm/sessions/{id}/deny/

Deny: session

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this privileged session.

Request body (application/json): PrivilegedSessionRequest

Responses: 200 → PrivilegedSession

GET /api/psm/sessions/{id}/events/

Events: session

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this privileged session.

Responses: 200 → PrivilegedSession

POST /api/psm/sessions/{id}/exec/

SSH session: run a command through the broker (credential injected).

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this privileged session.

Request body (application/json): PrivilegedSessionRequest

Responses: 200 → PrivilegedSession

POST /api/psm/sessions/{id}/proxy/

HTTPS session: forward a request through the broker (credential injected).

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this privileged session.

Request body (application/json): PrivilegedSessionRequest

Responses: 200 → PrivilegedSession

GET /api/psm/sessions/{id}/recording/

Recording: session

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this privileged session.

Responses: 200 → PrivilegedSession

POST /api/psm/sessions/{id}/terminate/

Terminate: session

ParameterInRequiredTypeDescription
idpathyesstringA UUID string identifying this privileged session.

Request body (application/json): PrivilegedSessionRequest

Responses: 200 → PrivilegedSession


Auto-generated from drf-spectacular OpenAPI. Endpoint descriptions come from viewset docstrings/serializers; enriching those improves this page on the next generation.