Documentation

API Reference

Complete list of all public API endpoints. Click any endpoint to view detailed documentation with request/response examples.

Base URL: https://zopnight.com/api
MethodEndpointDescription
Authentication
POST/auth/loginAuthenticate and receive tokens
POST/auth/signupCreate a new user account
POST/auth/refreshRefresh access token
POST/auth/logoutInvalidate session
POST/auth/email/verifyRequest email verification OTP
PATCH/auth/email/otp/validateValidate OTP code
POST/auth/password/forgetInitiate password reset
POST/auth/password/resetComplete password reset
POST/auth/saml/initiateBegin SAML SSO flow
POST/auth/v2/organisationCreate organization
Cloud Accounts
GET/cloud-accountsList cloud accounts
POST/cloud-accountsConnect cloud account
GET/cloud-accounts/{accountID}Get cloud account
PUT/cloud-accounts/{accountID}Update cloud account
DELETE/cloud-accounts/{accountID}Delete cloud account
GET/connect/gcp/oauth-urlGet GCP OAuth URL
POST/connect/gcp/oauth-exchangeExchange GCP OAuth code
POST/connect/gcp/oauth-finalizeFinalize GCP OAuth
GET/cloud-accounts/{accountID}/clustersList clusters in a cloud account
PUT/cloud-accounts/{accountID}/clusters/{region}/{clusterName}/accessRegister a cluster for kubeconfig access
DELETE/cloud-accounts/{accountID}/clusters/{region}/{clusterName}/accessDeregister a cluster
Resources
GET/resourcesList resources with filtering
GET/resources/countCount resources matching filters
GET/resources/{resourceID}Get resource detail
GET/resources/by-idsGet resources by IDs
GET/resources/by-uidsGet resources by cloud UIDs (query)
POST/resources/by-uidsGet resources by cloud UIDs (body)
GET/resources/discovery-summaryPer-provider discovery rollup
GET/resources/access-checkVerify cloud credentials still have list/describe access
GET/resources/last-syncedMost recent discovery timestamp per provider/account
GET/resources/filter-fieldsGet available filter options
POST/resources/refreshTrigger discovery refresh
GET/resources/refresh/statusCheck refresh status
Schedules
GET/schedulesList schedules
POST/schedulesCreate schedule
GET/schedules/{scheduleID}Get schedule
PUT/schedules/{scheduleID}Update schedule
DELETE/schedules/{scheduleID}Delete schedule
POST/schedules/{scheduleID}/resources/{resourceID}Attach resource
DELETE/schedules/{scheduleID}/resources/{resourceID}Detach resource
POST/schedules/{scheduleID}/groups/{groupID}Attach group
DELETE/schedules/{scheduleID}/groups/{groupID}Detach group
Resource Groups
GET/resource-groupsList resource groups
POST/resource-groupsCreate resource group
GET/resource-groups/{groupID}Get resource group
PUT/resource-groups/{groupID}Update resource group
DELETE/resource-groups/{groupID}Delete resource group
GET/resource-groups/{groupID}/schedulesGet group schedules
POST/resource-groups/{groupID}/resources/{resourceID}Add member
PATCH/resource-groups/{groupID}/resources/{resourceID}/sequenceUpdate execution order
DELETE/resource-groups/{groupID}/resources/{resourceID}Remove member
Overrides
GET/overridesList overrides
POST/overridesCreate override
GET/overrides/{overrideID}Get override
DELETE/overrides/{overrideID}Delete override
GET/resource-groups/{groupID}/overridesList group overrides
POST/resource-groups/{groupID}/overridesCreate group override
Actions & Execution
POST/actionsSubmit manual action
POST/actions/bulkSubmit bulk action
GET/actions/{actionID}Get action status
GET/actions/bulk/{bulkActionID}Get bulk action status
GET/actions/bulk/latestGet the most recent bulk action
GET/state-historyGet state history
Reports & Analytics
GET/reports/summaryDashboard summary
GET/reports/trendsCost trends
GET/reports/cost-historyLong-range cost history
GET/reports/metricsAggregate utilization metrics
GET/reports/costs/resourcesResource costs
GET/reports/costs/breakdownCost breakdown by dimensions (Sankey)
GET/reports/providers/summaryProvider summary
GET/reports/resources/summaryResource summary
GET/reports/resources/metricsPer-resource utilization metrics
GET/reports/resources/activityPer-resource activity timeline
GET/reports/snapshotsMonthly snapshots
GET/reports/anomaliesList anomaly records
POST/reports/exportExport a report as CSV/JSON
Showback (Cost Attribution)
GET/reports/teamsCost per team
GET/reports/teams/{teamID}Team breakdown
GET/reports/teams/{teamID}/resourcesPer-resource cost for a team
GET/reports/teams/trendsTeam cost trends
GET/reports/tagsTag keys with attributed cost
GET/reports/tags/{tagKey}Tag values for a key
GET/reports/tags/{tagKey}/values/{tagValue}/resourcesResources by tag
GET/reports/tags/trendsTag cost trends
Budgets
GET/budgets/summaryBudget summary
GET/budgetsList budgets
POST/budgetsCreate budget
PUT/budgets/{budgetID}Update budget
DELETE/budgets/{budgetID}Delete budget
GET/eventsList scheduler events
POST/eventsRecord scheduler event
GET/currency-exchange-rateCurrent foreign-exchange rates used by reports
Billing
GET/billing/sync-statusOrg-wide billing sync status
POST/billing/verifyTrigger an org-wide billing sync
POST/cloud-accounts/{accountID}/billing/verifyStart a per-account verification
GET/cloud-accounts/{accountID}/billing/verify/{verifyID}Poll a verification job
Recommendations
GET/recommendations/resourcesList resources with recommendation summaries
GET/recommendations/rulesList rules with recommendation summaries
GET/recommendationsList individual recommendations
GET/recommendations/summaryRecommendation summary
GET/recommendations/summary/providersProvider breakdown
GET/recommendations/filter-fieldsGet available filter fields
GET/recommendations/resources/{resourceUID}Resource recommendations (deprecated)
GET/recommendations/{recID}/detailRecommendation detail
PATCH/recommendations/{recommendationID}Update recommendation
POST/recommendations/refreshRefresh recommendations
Auto-Tagging
GET/autotaggingList auto-tag suggestions
GET/autotagging/countCount auto-tag suggestions by status
PATCH/autotagging/{resourceUID}Accept or reject a suggestion
POST/autotagging/acceptAccept auto-tag (legacy, deprecated 2026-07-01)
POST/autotagging/rejectReject auto-tag (legacy, deprecated 2026-07-01)
VM Autoscaling
GET/autoscaler-policiesList autoscaler policies
POST/autoscaler-policiesCreate policy
GET/autoscaler-policies/countCount policies by status
GET/autoscaler-policies/filtersDistinct filter values
GET/autoscaler-policies/smart-defaultsSmart defaults for a target
GET/autoscaler-policies/required-permissionsIAM permissions to provision infra
POST/autoscaler-policies/create-infrastructureProvision autoscaler infrastructure
GET/autoscaler-policies/infrastructure-statusProvisioning status for a cloud account
GET/autoscaler-policies/{policyID}Get policy
PUT/autoscaler-policies/{policyID}Update policy
DELETE/autoscaler-policies/{policyID}Delete policy
POST/autoscaler-policies/{policyID}/applyApply latest recommendation
POST/autoscaler-policies/{policyID}/pausePause evaluation
POST/autoscaler-policies/{policyID}/resumeResume evaluation
POST/autoscaler-policies/{policyID}/removeSoft-delete the policy
GET/autoscaler-policies/{policyID}/eventsPer-policy event log
Event Readiness
GET/event-readinessList plans
POST/event-readinessCreate a plan
GET/event-readiness/calculatePreview scaled capacity
GET/event-readiness/calculate-dbPreview database tier change
POST/event-readiness/preview-readinessPreview a full plan without saving
GET/event-readiness/countCount plans
GET/event-readiness/filtersFilter values
GET/event-readiness/{eventID}Get a plan
PUT/event-readiness/{eventID}Update a plan
DELETE/event-readiness/{eventID}Delete a plan
GET/event-readiness/{eventID}/db-impactEstimated DB impact
GET/event-readiness/{eventID}/cost-estimateEstimated extra cost
GET/event-readiness/{eventID}/readiness-checkRe-validate the plan
POST/event-readiness/{eventID}/scheduleDispatch the plan to executor
POST/event-readiness/{eventID}/cancelCancel an active plan
GET/event-readiness/{eventID}/logsPlan audit log
Dashboards
GET/dashboardsList dashboards (system presets + user-created)
POST/dashboardsCreate a dashboard
GET/dashboards/{dashboardID}Get a dashboard
PATCH/dashboards/{dashboardID}Update a dashboard
DELETE/dashboards/{dashboardID}Delete a dashboard
PUT/dashboards/defaultSet the org default dashboard
Notifications
GET/notificationsList notifications (legacy)
POST/notificationsCreate notification (legacy)
PUT/notifications/{notificationID}Update notification (legacy)
DELETE/notifications/{notificationID}Delete notification (legacy)
GET/notifications/channelsList notification channels
POST/notifications/channelsCreate notification channel
PUT/notifications/channels/{channelID}Update notification channel
DELETE/notifications/channels/{channelID}Delete notification channel
GET/notifications/subscriptionsList subscriptions
POST/notifications/subscriptionsCreate subscription
PUT/notifications/subscriptions/{subID}Update subscription
DELETE/notifications/subscriptions/{subID}Delete subscription
POST/notifications/subscriptions/bulkBulk create/update subscriptions
GET/notifications/event-typesList event types
GET/notifications/email-preferencesGet email preferences
PUT/notifications/email-preferences/{eventKey}Update email preference
POST/notifications/share/recommendation/{recID}Share recommendation
POST/notifications/channels/{channelID}/testTest channel delivery
Users & Teams
GET/usersList users
POST/usersInvite user
PATCH/users/{email}Update user
DELETE/users/{email}Remove user
GET/teamsList teams
POST/teamsCreate team
GET/teams/{teamID}Get team
PUT/teams/{teamID}Update team
DELETE/teams/{teamID}Delete team
GET/teams/{teamID}/membersList team members
POST/teams/{teamID}/membersAdd team member
DELETE/teams/{teamID}/members/{email}Remove team member
GET/teams/{teamID}/resourcesList team resources
POST/teams/{teamID}/resourcesAssign resource to team
DELETE/teams/{teamID}/resources/{resourceUID}Unassign resource
Roles & Permissions
GET/rolesList roles
POST/rolesCreate role
GET/roles/{roleID}Get role
PUT/roles/{roleID}Update role
DELETE/roles/{roleID}Delete role
GET/policiesList policies
GET/assignmentsList role assignments
POST/assignmentsCreate assignment
PUT/assignments/{assignmentID}Update assignment
DELETE/assignments/{assignmentID}Delete assignment
GET/permissionsGet current user permissions
GET/users/{email}/permissionsGet user permissions
GET/users/{email}/permissions/verifyVerify permission
Organizations
GET/organisationsList organizations
POST/organisationsCreate organization
GET/organisationGet current organization
PUT/organisationUpdate organization
DELETE/organisationDelete organization
Audit Logs
GET/audit-logsList audit logs
POST/audit-logs/exportExport audit logs as CSV
Deployment Spaces
GET/spacesList deployment spaces. (config)
POST/spacesRegister an existing cluster as a space. (config)
GET/spaces/{spaceID}Get a space. (config)
PATCH/spaces/{spaceID}/statusToggle a space active/inactive. (config)
DELETE/spaces/{spaceID}Delete a space. (config)
GET/space-discovery/{spaceID}/namespacesList namespaces on a space’s cluster. (deployer)
POST/space-discovery/{spaceID}/namespacesCreate a namespace on a space’s cluster. (deployer)
GET/cloud-accounts/{accountID}/clustersList clusters discovered on a cloud account. (config)
PUT/cloud-accounts/{accountID}/clusters/{region}/{clusterName}/accessRegister cluster access for kubeconfig minting. (config)
DELETE/cloud-accounts/{accountID}/clusters/{region}/{clusterName}/accessDeregister cluster access. (config)
Provisioning
POST/provisioning-jobsCreate a provisioning job. (provisioner)
GET/provisioning-jobsList provisioning jobs. (provisioner)
GET/provisioning-jobs/{jobID}Get a job. (provisioner)
PATCH/provisioning-jobs/{jobID}Update lightweight job fields. (provisioner)
DELETE/provisioning-jobs/{jobID}Delete a job. (provisioner)
POST/provisioning-jobs/{jobID}/retryRetry a failed job. (provisioner)
POST/provisioning-jobs/{jobID}/databasesCreate a database on the parent datastore. (provisioner)
GET/provisioning-jobs/{jobID}/databasesList databases. (provisioner)
GET/provisioning-jobs/{jobID}/databases/{dbID}Get a database. (provisioner)
DELETE/provisioning-jobs/{jobID}/databases/{dbID}Delete a database. (provisioner)
POST/provisioning-jobs/{jobID}/connectionsCreate a job-scoped connection. (provisioner)
GET/provisioning-jobs/{jobID}/connectionsList job-scoped connections. (provisioner)
GET/provisioning-jobs/{jobID}/connections/{connID}Get a job-scoped connection. (provisioner)
DELETE/provisioning-jobs/{jobID}/connections/{connID}Delete a job-scoped connection. (provisioner)
POST/provisioning-jobs/{jobID}/databases/{dbID}/connectionsCreate a database-scoped connection. (provisioner)
GET/provisioning-jobs/{jobID}/databases/{dbID}/connectionsList database-scoped connections. (provisioner)
GET/provisioning-jobs/{jobID}/databases/{dbID}/connections/{connID}Get a database-scoped connection. (provisioner)
DELETE/provisioning-jobs/{jobID}/databases/{dbID}/connections/{connID}Delete a database-scoped connection. (provisioner)
POST/provisioning-jobs/install-componentInstall a catalog component. (provisioner)
GET/catalog/componentsList available catalog components. (provisioner)
Remediation Jobs
POST/remediation-jobsStart a remediation workflow for a recommendation. (provisioner)
POST/remediation-jobs/{id}/cancelCancel a running remediation. (provisioner)
POST/remediation-jobs/{jobID}/steps-by-id/{stepID}/approveApprove an approval-gated step (by stable step ID). (provisioner)
POST/remediation-jobs/{jobID}/steps-by-id/{stepID}/rejectReject an approval-gated step (by stable step ID). (provisioner)
POST/remediation-jobs/{id}/steps/{stepName}/approveApprove an approval-gated step (by step name, legacy). (provisioner)
POST/remediation-jobs/{id}/steps/{stepName}/rejectReject an approval-gated step (by step name, legacy). (provisioner)
GET/remediation-jobs/{id}/auditStep-level audit timeline. (provisioner)
Deployments
GET/deploymentsList deployments. (config)
POST/deploymentsCreate a deployment. (config)
GET/deployments/{id}Get a deployment. (config)
DELETE/deployments/{id}Delete a deployment (invokes deployer Teardown gRPC before soft-delete). (config)
PATCH/deployments/{id}/configsUpdate configs (creates a revision on next deploy). (config)
PATCH/deployments/{id}/canvas-positionPersist canvas (x, y) coordinate. (config)
POST/deployments/{id}/analyzeRe-run deploy-readiness checks. (deployer)
POST/deployments/{id}/revisionsCreate a revision. (deployer)
GET/deployments/{id}/revisionsList revisions. (deployer)
GET/deployments/{id}/revisions/{revID}Get a revision. (deployer)
POST/deployments/{id}/rollbackRoll back to a prior revision. (deployer)
GET/deployments/{id}/eventsDeployment event timeline. (deployer)
GET/deployments/{id}/loadbalancerLoadBalancer status. (deployer)
GET/environments/{envID}/deploymentsList deployments in env. (config)
POST/environments/{envID}/deploymentsCreate deployment in env. (config)
Builds
POST/analyzeAnalyze a repo for deploy readiness (wizard pre-create). (deployer)
GET/repositoriesList connected repositories. (deployer)
GET/branchesList branches in a repository. (deployer)
Projects & Environments
POST/projectsCreate a project. (config)
GET/projectsList projects. (config)
GET/projects/statsBatch project stats (env count, status buckets). (config)
GET/projects/{projectID}Get a project. (config)
PATCH/projects/{projectID}Update a project. (config)
DELETE/projects/{projectID}Delete a project. (config)
POST/projects/{projectID}/environmentsCreate environment. (config)
GET/projects/{projectID}/environmentsList environments. (config)
GET/projects/{projectID}/environments/{envID}Get env (nested). (config)
PATCH/projects/{projectID}/environments/{envID}Update env. (config)
DELETE/projects/{projectID}/environments/{envID}Delete env. (config)
GET/environments/{envID}Get env (flat lookup). (config)
GET/environments/{envID}/statsEnv stats (live cluster query). (deployer)
GET/environments/{envID}/cluster-discoveryLive cluster discovery (ingress + cert-manager). (deployer)
Service Connections
POST/environments/{envID}/deployments/connectionsCreate a service connection. (deployer)
GET/environments/{envID}/deployments/connectionsList service connections in env. (deployer)
GET/environments/{envID}/deployments/connections/{connectionID}Get a service connection. (deployer)
DELETE/environments/{envID}/deployments/connections/{connectionID}Soft-delete a service connection. (deployer)
Integrations
GET/integrationsList integrations
POST/integrationsCreate an integration
GET/integrations/{id}Get an integration
PUT/integrations/{id}Update an integration
DELETE/integrations/{id}Delete an integration
GET/integrations/github/installBegin GitHub App install flow
GET/integrations/github/callbackGitHub install/OAuth callback
Webhooks
POST/webhooks/githubGitHub event delivery (HMAC-authenticated; idempotent via delivery_id UUID v5). (deployer)
POST/build-callbacks/{revisionID}Build runner reports image readiness (JWT-authenticated in body, secret = BUILD_CALLBACK_SECRET). (deployer)