API Reference
Index of the main public ZopNight API endpoints, grouped by domain.
An index of the main public API endpoints, grouped by domain. Request and response examples live on each feature’s page. For the machine-readable spec, see openapi.json.
Paths are relative to the base URL. Do not add /orgs/{orgId} to a path: the gateway reads the
organization from your token and adds it for you.
Base URL: https://api.zop.dev
Authentication
/auth/login Authenticate and receive tokens
/auth/{provider}/callback Complete Google, GitHub or Microsoft (azure) sign-in with an authorization code (?code=)
/auth/signup Create a new user account
/auth/refresh Refresh access token
/auth/logout Invalidate session
/auth/email/verify Request email verification OTP
/auth/otp/validate Validate OTP code
/auth/password/forget Initiate password reset
/auth/password/reset Complete password reset
/auth/saml/initiate Begin SAML SSO flow
/organisations Create organization
/organisations List the organizations you belong to
Cloud Accounts
/cloud-accounts List cloud accounts
/cloud-accounts Connect cloud account
/cloud-accounts/{accountID} Get cloud account
/cloud-accounts/{accountID} Update cloud account
/cloud-accounts/{accountID} Delete cloud account
/connect/gcp/oauth-url Get GCP OAuth URL
/connect/gcp/oauth-exchange Exchange GCP OAuth code
/connect/gcp/oauth-finalize Finalize GCP OAuth
/cloud-accounts/{accountID}/clusters List clusters in a cloud account
/cloud-accounts/{accountID}/clusters/{region}/{clusterName}/access Register a cluster for kubeconfig access
/cloud-accounts/{accountID}/clusters/{region}/{clusterName}/access Deregister a cluster
Resources
/resources List resources with filtering
/resources/count Count resources matching filters
/resources/{resourceID} Get resource detail
/resources/by-ids Get resources by IDs
/resources/by-uids Get resources by cloud UIDs (query)
/resources/by-uids Get resources by cloud UIDs (body)
/resources/discovery-summary Per-provider discovery rollup
/resources/{id}/access Check IAM + network access to a managed Kubernetes cluster
/resources/last-synced Most recent discovery timestamp per provider/account
/resources/filter-fields Get available filter options
/resources/refresh Trigger discovery refresh
/resources/refresh/status Check refresh status
Schedules
/schedules List schedules
/schedules Create schedule
/schedules/{scheduleID} Get schedule
/schedules/{scheduleID} Update schedule
/schedules/{scheduleID} Delete schedule
/schedules/{scheduleID}/resources/{resourceID} Attach resource
/schedules/{scheduleID}/resources/{resourceID} Detach resource
/schedules/{scheduleID}/groups/{groupID} Attach group
/schedules/{scheduleID}/groups/{groupID} Detach group
Resource Groups
/resource-groups List resource groups
/resource-groups Create resource group
/resource-groups/{groupID} Get resource group
/resource-groups/{groupID} Update resource group
/resource-groups/{groupID} Delete resource group
/resource-groups/{groupID}/schedules Get group schedules
/resource-groups/{groupID}/resources/{resourceID} Add member
/resource-groups/{groupID}/resources/{resourceID}/sequence Update execution order
/resource-groups/{groupID}/resources/{resourceID} Remove member
Overrides
/overrides List overrides
/overrides Create override
/overrides/{overrideID} Get override
/overrides/{overrideID} Delete override
/resource-groups/{groupID}/overrides List group overrides
/resource-groups/{groupID}/overrides Create group override
Actions & Execution
/actions Submit manual action
/actions/bulk Submit bulk action
/actions/{actionID} Get action status
/actions/bulk/{bulkActionID} Get bulk action status
/actions/bulk/latest Get the most recent bulk action
/state-history Get state history
Reports & Analytics
/reports/summary Dashboard summary
/reports/trends Cost trends
/reports/cost-history Long-range cost history
/reports/metrics Aggregate utilization metrics
/reports/costs/resources Resource costs
/reports/costs/breakdown Cost breakdown by dimensions (Sankey)
/reports/providers/summary Provider summary
/resources/summary Resource summary
/reports/resources/metrics Per-resource utilization metrics
/resources/{resourceID}/metrics/live Live container state of a VM: scope=vm, optional container=<name>. source is backend or exec
/resources/{resourceID}/metrics/range Usage history for one VM container from the attached metrics backend: scope=vm, container=<name>, range=15m|1h|6h|24h. 404 without a backend; 409 backend_host_unresolvable when the host of the stored URL does not resolve
/resources/{resourceID}/logs/range Log history for one VM container from the attached logs backend, newest first: scope=vm, container=<name>, range=15m|1h|6h|24h, limit (default 200, max 1000), optional q and cursor. Returns items, hasMore, nextCursor, provider. 404 without a logs backend; 409 backend_host_unresolvable when the host of the stored URL does not resolve
/resources/{resourceID}/traces/range Traces for one VM container from the attached traces backend (Tempo, Jaeger or Zipkin), newest first: scope=vm, container=<name>, range=15m|1h|6h|24h, limit (default 20, max 100), optional q (span name) and cursor. Returns items (traceId, rootService, rootName, startTime, durationMs, spanCount, errorCount), hasMore, nextCursor, provider. 409 traces_not_configured without a traces backend; 409 backend_host_unresolvable when the host of the stored URL does not resolve
/resources/{resourceID}/traces/{traceID} One trace's spans for one VM container from the attached traces backend: scope=vm, container=<name>. Returns traceId, provider and spans (spanId, parentSpanId, name, service, kind, startTime, durationMs, status, attributes). 404 when the trace has none of the container's spans; 409 traces_not_configured without a traces backend
/reports/resources/activity Per-resource activity timeline
/reports/snapshots Monthly snapshots
/reports/anomalies List anomaly records
/reports/export Export a report as CSV/JSON
Showback (Cost Attribution)
/reports/teams Cost per team
/reports/teams/{teamID} Team breakdown
/reports/teams/{teamID}/resources Per-resource cost for a team
/reports/teams/trends Team cost trends
/reports/tags Tag keys with attributed cost
/reports/tags/{tagKey} Tag values for a key
/reports/tags/{tagKey}/values/{tagValue}/resources Resources by tag
/reports/tags/trends Tag cost trends
Budgets
/budgets/summary Budget summary
/budgets List budgets
/budgets Create budget
/budgets/{budgetID} Update budget
/budgets/{budgetID} Delete budget
/events List scheduler events
/events Record scheduler event
/currency-exchange-rate Current foreign-exchange rates used by reports
Billing
/billing/sync-status Billing sync status for every cloud account in the org
/billing/verify Verify billing access for one cloud account. Body: {cloudAccountId, provider}
Recommendations
/recommendations/resources List resources with recommendation summaries
/recommendations/rules List rules with recommendation summaries
/recommendations List individual recommendations
/recommendations/summary Recommendation summary
/recommendations/summary/providers Provider breakdown
/recommendations/filter-fields Get available filter fields
/recommendations/resources/{resourceUID} Resource recommendations (deprecated)
/recommendations/{recID}/detail Recommendation detail
/recommendations/{recommendationID} Update recommendation
/recommendations/refresh Refresh recommendations
Smart Tags
/smart-tags List derived/accepted virtual tags + org-wide counts
/smart-tags Accept or revoke tags (body: resourceUid, keys, all, accepted)
/tagging/policies/catalog Tagging-policy form vocabulary
/tagging/policies/validations Validate a tagging-policy spec before create
VM Autoscaling
/autoscaler-policies List autoscaler policies
/autoscaler-policies Create policy
/autoscaler-policies/count Count policies by status
/autoscaler-policies/filters Distinct filter values
/autoscaler-policies/smart-defaults Smart defaults for a target
/autoscaler/cloud-scaling-policies Inspect the scaling policies already configured on a target in your cloud account
/autoscaler-policies/required-permissions IAM permissions to provision infra
/autoscaler-policies/create-infrastructure Provision autoscaler infrastructure
/autoscaler-policies/infrastructure-status Provisioning status for a cloud account
/autoscaler-policies/{policyID} Get policy
/autoscaler-policies/{policyID} Update policy
/autoscaler-policies/{policyID} Delete policy
/autoscaler-policies/{policyID}/apply Apply latest recommendation
/autoscaler-policies/{policyID}/pause Pause evaluation
/autoscaler-policies/{policyID}/resume Resume evaluation
/autoscaler-policies/{policyID}/remove Soft-delete the policy
/autoscaler-policies/{policyID}/events Per-policy event log
Event Readiness
/event-readiness List plans
/event-readiness Create a plan
/event-readiness/calculate Preview scaled capacity
/event-readiness/calculate-db Preview database tier change
/event-readiness/preview-readiness Preview a full plan without saving
/event-readiness/count Count plans
/event-readiness/filters Filter values
/event-readiness/{eventID} Get a plan
/event-readiness/{eventID} Update a plan
/event-readiness/{eventID} Delete a plan
/event-readiness/{eventID}/db-impact Estimated DB impact
/event-readiness/{eventID}/cost-estimate Estimated extra cost
/event-readiness/{eventID}/readiness-check Re-validate the plan
/event-readiness/{eventID}/schedule Dispatch the plan to executor
/event-readiness/{eventID}/cancel Cancel an active plan
/event-readiness/{eventID}/logs Plan audit log
Dashboards
/dashboards List dashboards (system presets + user-created)
/dashboards Create a dashboard
/dashboards/{dashboardID} Get a dashboard
/dashboards/{dashboardID} Update a dashboard
/dashboards/{dashboardID} Delete a dashboard
/dashboards/default Set the org default dashboard
Notifications
/notifications List notifications (legacy)
/notifications Create notification (legacy)
/notifications/{notificationID} Update notification (legacy)
/notifications/{notificationID} Delete notification (legacy)
/notifications/channels List notification channels
/notifications/channels Create notification channel
/notifications/channels/{channelID} Update notification channel
/notifications/channels/{channelID} Delete notification channel
/notifications/subscriptions List subscriptions
/notifications/subscriptions Create subscription
/notifications/subscriptions/{subID} Update subscription
/notifications/subscriptions/{subID} Delete subscription
/notifications/subscriptions/bulk Bulk create/update subscriptions
/notifications/event-types List event types
/notifications/email-preferences Get email preferences
/notifications/email-preferences/{eventKey} Update email preference
/notifications/share/recommendation/{recID} Share recommendation
/notifications/channels/{channelID}/test Test channel delivery
Users & Teams
/users List users
/users Invite user
/users/{email} Update user
/users/{email} Remove user
/teams List teams
/teams Create team
/teams/{teamID} Get team
/teams/{teamID} Update team
/teams/{teamID} Delete team
/teams/{teamID}/members List team members
/teams/{teamID}/members Add team member. Body: {email, roleId}
/teams/{teamID}/members/{email} Change a member's team role. Body: {roleId}
/teams/{teamID}/members/{email} Remove team member
/teams/{teamID}/resources List team resources
/teams/{teamID}/resources Assign resource to team
/teams/{teamID}/resources Unassign a resource. Body: {resourceUid}
Roles & Permissions
/roles List roles
/roles Create role
/roles/{roleID} Get role
/roles/{roleID} Update role
/roles/{roleID} Delete role
/roles/policies List policies
/assignments List role assignments
/assignments Create assignment
/assignments/{assignmentID} Update assignment
/assignments/{assignmentID} Delete assignment
/permissions Get current user permissions
/users/{email}/permissions Get user permissions
/users/{email}/permissions/verify Verify permission
Organizations
/organisations List organizations
/organisations Create organization
/organisations List the organizations you belong to
/organisation Get current organization
/organisation Update organization
/organisation Delete organization
Audit Logs
/audit-logs List audit logs
/audit-logs/export Export audit logs as CSV
Deployment Spaces
/spaces List deployment spaces
/spaces Register an existing cluster as a space
/spaces/{spaceID} Get a space
/spaces/{spaceID}/status Toggle a space active/inactive
/spaces/{spaceID} Update the space config, e.g. { config: { observability: { metrics: '<integrationID>' | null, logs: '<integrationID>' | null, traces: '<integrationID>' | null } } } to attach or detach a metrics, logs or traces backend
/components Install or re-apply a cluster or VM component, e.g. { spaceId, targetType: 'vm', component: 'observability-agent' }. Returns an actionId to poll
/components List the component catalog (?targetType=) or poll an install (?actionId=)
/spaces/{spaceID} Delete a space
/space-discovery/{spaceID}/namespaces List namespaces on a space’s cluster
/space-discovery/{spaceID}/namespaces Create a namespace on a space’s cluster
/cloud-accounts/{accountID}/clusters List clusters discovered on a cloud account
/cloud-accounts/{accountID}/clusters/{region}/{clusterName}/access Register cluster access for kubeconfig minting
/cloud-accounts/{accountID}/clusters/{region}/{clusterName}/access Deregister cluster access
Provisioning
/provisioning-jobs Create a provisioning job
/provisioning-jobs List provisioning jobs
/provisioning-jobs/{jobID} Get a job
/provisioning-jobs/{jobID} Update lightweight job fields
/provisioning-jobs/{jobID} Delete a job
/provisioning-jobs/{jobID}/retry Retry a failed job
/provisioning-jobs/{jobID}/databases Create a database on the parent datastore
/provisioning-jobs/{jobID}/databases List databases
/provisioning-jobs/{jobID}/databases/{dbID} Get a database
/provisioning-jobs/{jobID}/databases/{dbID} Delete a database
/provisioning-jobs/{jobID}/connections Create a job-scoped connection
/provisioning-jobs/{jobID}/connections List job-scoped connections
/provisioning-jobs/{jobID}/connections/{connID} Get a job-scoped connection
/provisioning-jobs/{jobID}/connections/{connID} Delete a job-scoped connection
/provisioning-jobs/{jobID}/databases/{dbID}/connections Create a database-scoped connection
/provisioning-jobs/{jobID}/databases/{dbID}/connections List database-scoped connections
/provisioning-jobs/{jobID}/databases/{dbID}/connections/{connID} Get a database-scoped connection
/provisioning-jobs/{jobID}/databases/{dbID}/connections/{connID} Delete a database-scoped connection
Remediation Workflows
/recommendations/{recID}/workflow Preview the remediation workflow for a recommendation
/recommendations/{recID}/workflow Start the remediation workflow for a recommendation
/workflows/pending-approval List workflow steps waiting for approval
/workflows/pending-confirmation List workflow steps waiting for confirmation
/workflows/{jobID} Get a workflow and its steps
/workflows/{jobID}/cancel Cancel a running workflow
/workflows/{jobID}/steps-by-id/{stepID} Approve, reject or advance a step. Body: {action: approve | reject | advance}
Deployments
/deployments List deployments
/deployments Create a deployment
/deployments/{id} Get a deployment
/deployments/{id} Delete a deployment and tear down what it runs
/deployments/{id}/configs Update configs (creates a revision on next deploy)
/deployments/{id}/canvas-position Persist canvas (x, y) coordinate
/deployments/{id}/analyze Re-run deploy-readiness checks
/deployments/{id}/revisions Create a revision
/deployments/{id}/revisions List revisions
/deployments/{id}/revisions/{revID} Get a revision
/deployments/{id}/rollback Roll back to a prior revision
/deployments/{id}/events Deployment event timeline
/deployments/{id}/loadbalancer LoadBalancer status
/environments/{envID}/deployments List deployments in env
/environments/{envID}/deployments Create deployment in env
Builds
/analyze Analyze a repo for deploy readiness (wizard pre-create)
/repositories List connected repositories
/branches List branches in a repository. Connected: integrationId + repo. Public: repoUrl (github.com only)
Projects & Environments
/projects Create a project
/projects List projects
/projects/stats Batch project stats (env count, status buckets)
/projects/{projectID} Get a project
/projects/{projectID} Update a project
/projects/{projectID} Delete a project
/projects/{projectID}/environments Create environment
/projects/{projectID}/environments List environments
/projects/{projectID}/environments/{envID} Get env (nested)
/projects/{projectID}/environments/{envID} Update env
/projects/{projectID}/environments/{envID} Delete env
/environments/{envID} Get env (flat lookup)
/environments/{envID}/cluster-discovery Live cluster discovery (ingress + cert-manager)
Integrations
/integrations List integrations
/integrations Create an integration
/integrations/test Observability backends only: run the write/read connection probe against the given backend without saving it
/integrations/{id} Get an integration
/integrations/{id} Update an integration
/integrations/{id} Delete an integration
/integrations/github/install Begin GitHub App install flow. Optional ?role=read|write selects the App to install (write for IaC-CI orgs; defaults to read)
/integrations/github/callback GitHub install/OAuth callback
Webhooks
/webhooks/github GitHub event delivery (HMAC-signed; duplicate deliveries are ignored)
/build-callbacks/{revisionID} Build runner reports image readiness (authenticated by the callback JWT in the body)