/
NA
nanohype
/
portal API
Search skmtc…
⌘K
Changes
Docs
Sign in
Docs
History
Schema
Filter operations
get
/health
App-level health surface the UI reads
get
/auth/github
Start the GitHub OAuth flow (browser redirect)
get
/auth/github/callback
GitHub OAuth callback (browser redirect)
post
/auth/handoff
Exchange the HttpOnly login-handoff cookie for the JWT (one-time)
get
/auth/me
The authenticated user
post
/webhooks/github
GitHub push webhook (public, HMAC-verified)
get
/users
List org users (admin)
put
/users/{userId}/role
Change a user's role (owner)
get
/audit-logs
List audit logs (admin)
get
/variables
List org variables
post
/variables
Create an org variable (admin)
put
/variables/{variableId}
Update an org variable (admin)
delete
/variables/{variableId}
Delete an org variable (admin)
get
/variables/{variableId}/value
Reveal an org variable's decrypted value (admin)
get
/teams
List teams
post
/teams
Create a team (admin)
get
/teams/{teamId}
Get a team
delete
/teams/{teamId}
Delete a team (admin)
get
/teams/{teamId}/members
List team members
post
/teams/{teamId}/members
Add a team member (admin)
put
/teams/{teamId}/members/{userId}
Update a team member (admin)
delete
/teams/{teamId}/members/{userId}
Remove a team member (admin)
get
/accounts
List AWS accounts (admin)
post
/accounts
Register an AWS account (admin)
get
/accounts/{accountId}
Get an account (admin)
put
/accounts/{accountId}
Update an account (admin)
delete
/accounts/{accountId}
Delete an account (admin)
get
/clusters
List clusters
post
/clusters
Register a cluster (admin)
get
/clusters/{clusterId}
Get a cluster
put
/clusters/{clusterId}
Update a cluster (admin)
delete
/clusters/{clusterId}
Delete a cluster (admin)
post
/clusters/{clusterId}/test-connection
Re-run the async connection test (admin)
get
/cluster-orders
Recent cluster operations across the org (admin)
post
/cluster-orders
Order a cluster vend (admin)
delete
/cluster-orders/{environment}/{name}
Order a cluster teardown (admin)
get
/cluster-orders/{environment}/{name}/operations
Vend log for one cluster, newest first (admin)
post
/cluster-orders/{environment}/{name}/unwedge
Break-glass teardown for a wedged spoke (owner)
get
/ops/feed
Org-wide operations feed (admin)
get
/templates
List tenant templates
post
/templates
Create a template (admin)
get
/templates/{templateID}
Get a template
put
/templates/{templateID}
Update a template (admin)
delete
/templates/{templateID}
Delete a template (admin)
get
/templates/{templateID}/access
List team-access grants on a template
post
/templates/{templateID}/access
Grant a team access to a template (admin)
delete
/templates/{templateID}/access/{teamId}
Revoke a team's template access (admin)
get
/tenants
List tenants (watcher-observed inventory)
post
/tenants
Request a tenant deploy (operator)
get
/tenants/{tenantId}
Get a tenant
delete
/tenants/{tenantId}
Request a tenant delete (operator)
get
/tenants/{tenantId}/operations
Per-tenant operation log
get
/tenants/{tenantId}/access
List team-access grants on a tenant
post
/tenants/{tenantId}/access
Grant a team access to a tenant (admin)
delete
/tenants/{tenantId}/access/{teamId}
Revoke a team's tenant access (admin)
get
/pipelines
List pipelines
post
/pipelines
Create a pipeline (operator; a stage auto_apply on a gated workspace needs admin)
get
/pipelines/{pipelineId}
Get a pipeline with its stages
put
/pipelines/{pipelineId}
Update a pipeline (operator; a stage auto_apply on a gated workspace needs admin)
delete
/pipelines/{pipelineId}
Delete a pipeline (admin)
get
/pipelines/{pipelineId}/runs
List pipeline runs
post
/pipelines/{pipelineId}/runs
Start a pipeline run (operator)
get
/pipelines/{pipelineId}/runs/{runId}
Get a pipeline run with its stage progress
post
/pipelines/{pipelineId}/runs/{runId}/cancel
Cancel a pipeline run (operator)
get
/pipelines/{pipelineId}/variables
List pipeline variables
post
/pipelines/{pipelineId}/variables
Create a pipeline variable (admin)
put
/pipelines/{pipelineId}/variables/{variableId}
Update a pipeline variable (admin)
delete
/pipelines/{pipelineId}/variables/{variableId}
Delete a pipeline variable (admin)
get
/pipelines/{pipelineId}/variables/{variableId}/value
Reveal a pipeline variable's decrypted value (admin)
get
/workspaces
List workspaces
post
/workspaces
Create a workspace (operator; auto_apply needs admin)
get
/workspaces/{workspaceId}
Get a workspace
put
/workspaces/{workspaceId}
Update a workspace (operator; turning auto_apply on or requires_approval off needs admin)
delete
/workspaces/{workspaceId}
Delete a workspace (admin on the workspace; deleting the last workspace requiring approval on a repository + working directory needs org admin)
post
/workspaces/{workspaceId}/upload
Upload a configuration archive (operator)
post
/workspaces/{workspaceId}/clone
Clone a workspace with its variables (operator; an auto-applying source needs admin)
post
/workspaces/{workspaceId}/lock
Lock a workspace (operator)
post
/workspaces/{workspaceId}/unlock
Unlock a workspace (operator)
get
/workspaces/{workspaceId}/variables
List workspace variables
post
/workspaces/{workspaceId}/variables
Create a workspace variable (admin)
get
/workspaces/{workspaceId}/variables/effective
Merged org → pipeline → workspace variable view
post
/workspaces/{workspaceId}/variables/discover
Discover the config's variable surface (viewer)
post
/workspaces/{workspaceId}/variables/bulk
Create up to 50 variables in one call (admin)
post
/workspaces/{workspaceId}/variables/import-outputs
Import another workspace's outputs as variables (admin on both workspaces)
post
/workspaces/{workspaceId}/variables/copy
Copy another workspace's variables into this one (admin on both workspaces)
put
/workspaces/{workspaceId}/variables/{variableId}
Update a workspace variable (admin)
delete
/workspaces/{workspaceId}/variables/{variableId}
Delete a workspace variable (admin)
get
/workspaces/{workspaceId}/variables/{variableId}/value
Reveal a workspace variable's decrypted value (admin)
get
/workspaces/{workspaceId}/state
List state versions
get
/workspaces/{workspaceId}/state/current
The latest state version
get
/workspaces/{workspaceId}/state/current/resources
Parsed resources from the latest state
get
/workspaces/{workspaceId}/state/current/outputs
Parsed outputs from the latest state
get
/workspaces/{workspaceId}/state/diff
Diff two state versions by serial
get
/workspaces/{workspaceId}/state/{stateId}
Get a state version
get
/workspaces/{workspaceId}/state/{stateId}/download
Download the raw tfstate blob (admin)
delete
/workspaces/{workspaceId}/state/serial/{serial}
Drop one state version + its S3 objects (admin)
get
/workspaces/{workspaceId}/access
List team-access grants on a workspace
post
/workspaces/{workspaceId}/access
Grant/replace a team's workspace access (admin)
delete
/workspaces/{workspaceId}/access/{teamId}
Revoke a team's workspace access (admin)
get
/workspaces/{workspaceId}/runs
List a workspace's runs
post
/workspaces/{workspaceId}/runs
Create a run (role elevates per operation; apply/destroy on a workspace that requires approval needs admin)
Copy Markdown
Copied
Copy failed
Changes to Get a workspace
get
/workspaces/{workspaceId}
Jul 21, 2026
a73b76a9c8c6
Revision changes
info
added the optional property
effective_role
to the response with the
200
status