{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/portainer/main/json-schema/portainer-portainer-endpoint-schema.json", "title": "portainer.Endpoint", "x-generated": "2026-10-03", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/portainer-endpoints-api-openapi.yml#/components/schemas/portainer.Endpoint", "properties": { "AMTDeviceGUID": { "description": "The identifier of the AMT Device associated with this environment(endpoint)", "type": "string" }, "Agent": { "properties": { "Version": { "type": "string" } }, "type": "object" }, "AuthorizedTeams": { "items": { "type": "integer" }, "type": "array" }, "AuthorizedUsers": { "description": "Deprecated in DBVersion == 18", "items": { "type": "integer" }, "type": "array" }, "AzureCredentials": { "$ref": "#/$defs/portainer.AzureCredentials" }, "ComposeSyntaxMaxVersion": { "description": "Maximum version of docker-compose", "type": "string" }, "ContainerEngine": { "description": "ContainerEngine represents the container engine type. This can be 'docker' or 'podman' when interacting directly with these environmentes, otherwise '' for kubernetes environments.", "type": "string" }, "Edge": { "$ref": "#/$defs/portainer.EnvironmentEdgeSettings" }, "EdgeCheckinInterval": { "description": "The check in interval for edge agent (in seconds)", "type": "integer" }, "EdgeID": { "description": "The identifier of the edge agent associated with this environment(endpoint)", "type": "string" }, "EdgeKey": { "description": "The key which is used to map the agent to Portainer", "type": "string" }, "EnableGPUManagement": { "type": "boolean" }, "Gpus": { "items": { "$ref": "#/$defs/portainer.Pair" }, "type": "array" }, "GroupId": { "description": "Environment(Endpoint) group identifier", "type": "integer" }, "Heartbeat": { "description": "Heartbeat indicates the heartbeat status of an edge environment", "type": "boolean" }, "Id": { "description": "Environment(Endpoint) Identifier", "type": "integer" }, "IsEdgeDevice": { "description": "Deprecated v2.18", "type": "boolean" }, "Kubernetes": { "allOf": [ { "$ref": "#/$defs/portainer.KubernetesData" } ], "description": "Associated Kubernetes data" }, "LastCheckInDate": { "description": "LastCheckInDate mark last check-in date on checkin", "type": "integer" }, "Name": { "description": "Environment(Endpoint) name", "type": "string" }, "PostInitMigrations": { "allOf": [ { "$ref": "#/$defs/portainer.EndpointPostInitMigrations" } ], "description": "Whether we need to run any \"post init migrations\"." }, "PublicURL": { "description": "URL or IP address where exposed containers will be reachable", "type": "string" }, "SecuritySettings": { "allOf": [ { "$ref": "#/$defs/portainer.EndpointSecuritySettings" } ], "description": "Environment(Endpoint) specific security settings" }, "Snapshots": { "description": "List of snapshots", "items": { "$ref": "#/$defs/portainer.DockerSnapshot" }, "type": "array" }, "Status": { "allOf": [ { "$ref": "#/$defs/portainer.EndpointStatus" } ], "description": "The status of the environment(endpoint) (1 - up, 2 - down)" }, "TLS": { "description": "Deprecated fields\nDeprecated in DBVersion == 4", "type": "boolean" }, "TLSCACert": { "type": "string" }, "TLSCert": { "type": "string" }, "TLSConfig": { "$ref": "#/$defs/portainer.TLSConfiguration" }, "TLSKey": { "type": "string" }, "TagIds": { "description": "List of tag identifiers to which this environment(endpoint) is associated", "items": { "type": "integer" }, "type": "array" }, "Tags": { "description": "Deprecated in DBVersion == 22", "items": { "type": "string" }, "type": "array" }, "TeamAccessPolicies": { "allOf": [ { "$ref": "#/$defs/portainer.TeamAccessPolicies" } ], "description": "List of team identifiers authorized to connect to this environment(endpoint)" }, "Type": { "allOf": [ { "$ref": "#/$defs/portainer.EndpointType" } ], "description": "Environment(Endpoint) environment(endpoint) type. 1 for a Docker environment(endpoint), 2 for an agent on Docker environment(endpoint) or 3 for an Azure environment(endpoint)." }, "URL": { "description": "URL or IP address of the Docker host associated to this environment(endpoint)", "type": "string" }, "UserAccessPolicies": { "allOf": [ { "$ref": "#/$defs/portainer.UserAccessPolicies" } ], "description": "List of user identifiers authorized to connect to this environment(endpoint)" }, "UserTrusted": { "description": "Whether the device has been trusted or not by the user", "type": "boolean" } }, "type": "object", "$defs": { "portainer.AccessPolicy": { "properties": { "Namespaces": { "description": "Namespaces is a list of namespaces that this access policy applies to. Only used for namespaced level roles", "items": { "type": "string" }, "type": "array" }, "RoleId": { "description": "Role identifier. Reference the role that will be associated to this access policy", "type": "integer" } }, "type": "object" }, "portainer.AzureCredentials": { "properties": { "ApplicationID": { "description": "Azure application ID", "type": "string" }, "AuthenticationKey": { "description": "Azure authentication key", "type": "string" }, "TenantID": { "description": "Azure tenant ID", "type": "string" } }, "type": "object" }, "portainer.DiagnosticsData": { "properties": { "DNS": { "additionalProperties": { "type": "string" }, "type": "object" }, "Log": { "type": "string" }, "Proxy": { "additionalProperties": { "type": "string" }, "type": "object" }, "Telnet": { "additionalProperties": { "type": "string" }, "type": "object" } }, "type": "object" }, "portainer.DockerSnapshot": { "properties": { "ContainerCount": { "type": "integer" }, "DiagnosticsData": { "$ref": "#/$defs/portainer.DiagnosticsData" }, "DockerSnapshotRaw": { "$ref": "#/$defs/portainer.DockerSnapshotRaw" }, "DockerVersion": { "type": "string" }, "GpuUseAll": { "type": "boolean" }, "GpuUseList": { "items": { "type": "string" }, "type": "array" }, "HealthyContainerCount": { "type": "integer" }, "ImageCount": { "type": "integer" }, "IsPodman": { "type": "boolean" }, "NodeCount": { "type": "integer" }, "PerformanceMetrics": { "$ref": "#/$defs/portainer.PerformanceMetrics" }, "RunningContainerCount": { "type": "integer" }, "ServiceCount": { "type": "integer" }, "StackCount": { "type": "integer" }, "StoppedContainerCount": { "type": "integer" }, "Swarm": { "type": "boolean" }, "Time": { "type": "integer" }, "TotalCPU": { "type": "integer" }, "TotalMemory": { "type": "integer" }, "UnhealthyContainerCount": { "type": "integer" }, "VolumeCount": { "type": "integer" } }, "type": "object" }, "portainer.DockerSnapshotRaw": { "type": "object" }, "portainer.EndpointPostInitMigrations": { "properties": { "MigrateGPUs": { "type": "boolean" }, "MigrateIngresses": { "type": "boolean" } }, "type": "object" }, "portainer.EndpointSecuritySettings": { "properties": { "allowBindMountsForRegularUsers": { "description": "Whether non-administrator should be able to use bind mounts when creating containers", "type": "boolean" }, "allowContainerCapabilitiesForRegularUsers": { "description": "Whether non-administrator should be able to use container capabilities", "type": "boolean" }, "allowDeviceMappingForRegularUsers": { "description": "Whether non-administrator should be able to use device mapping", "type": "boolean" }, "allowHostNamespaceForRegularUsers": { "description": "Whether non-administrator should be able to use the host pid", "type": "boolean" }, "allowPrivilegedModeForRegularUsers": { "description": "Whether non-administrator should be able to use privileged mode when creating containers", "type": "boolean" }, "allowStackManagementForRegularUsers": { "description": "Whether non-administrator should be able to manage stacks", "type": "boolean" }, "allowSysctlSettingForRegularUsers": { "description": "Whether non-administrator should be able to use sysctl settings", "type": "boolean" }, "allowVolumeBrowserForRegularUsers": { "description": "Whether non-administrator should be able to browse volumes", "type": "boolean" }, "enableHostManagementFeatures": { "description": "Whether host management features are enabled", "type": "boolean" } }, "type": "object" }, "portainer.EndpointStatus": { "enum": [ 0, 1, 2 ], "type": "integer", "x-enum-varnames": [ "_", "EndpointStatusUp", "EndpointStatusDown" ] }, "portainer.EndpointType": { "enum": [ 0, 1, 2, 3, 4, 5, 6, 7 ], "type": "integer", "x-enum-varnames": [ "_", "DockerEnvironment", "AgentOnDockerEnvironment", "AzureEnvironment", "EdgeAgentOnDockerEnvironment", "KubernetesLocalEnvironment", "AgentOnKubernetesEnvironment", "EdgeAgentOnKubernetesEnvironment" ] }, "portainer.EnvironmentEdgeSettings": { "properties": { "AsyncMode": { "description": "Whether the device has been started in edge async mode", "type": "boolean" }, "CommandInterval": { "description": "The command list interval for edge agent - used in edge async mode [seconds]", "type": "integer" }, "PingInterval": { "description": "The ping interval for edge agent - used in edge async mode [seconds]", "type": "integer" }, "SnapshotInterval": { "description": "The snapshot interval for edge agent - used in edge async mode [seconds]", "type": "integer" } }, "type": "object" }, "portainer.KubernetesConfiguration": { "properties": { "AllowNoneIngressClass": { "type": "boolean" }, "EnableResourceOverCommit": { "type": "boolean" }, "IngressAvailabilityPerNamespace": { "type": "boolean" }, "IngressClasses": { "items": { "$ref": "#/$defs/portainer.KubernetesIngressClassConfig" }, "type": "array" }, "ResourceOverCommitPercentage": { "type": "integer" }, "RestrictDefaultNamespace": { "type": "boolean" }, "StorageClasses": { "items": { "$ref": "#/$defs/portainer.KubernetesStorageClassConfig" }, "type": "array" }, "UseLoadBalancer": { "type": "boolean" }, "UseServerMetrics": { "type": "boolean" } }, "type": "object" }, "portainer.KubernetesData": { "properties": { "Configuration": { "$ref": "#/$defs/portainer.KubernetesConfiguration" }, "Flags": { "$ref": "#/$defs/portainer.KubernetesFlags" }, "Snapshots": { "items": { "$ref": "#/$defs/portainer.KubernetesSnapshot" }, "type": "array" } }, "type": "object" }, "portainer.KubernetesFlags": { "properties": { "IsServerIngressClassDetected": { "type": "boolean" }, "IsServerMetricsDetected": { "type": "boolean" }, "IsServerStorageDetected": { "type": "boolean" } }, "type": "object" }, "portainer.KubernetesIngressClassConfig": { "properties": { "Blocked": { "type": "boolean" }, "BlockedNamespaces": { "items": { "type": "string" }, "type": "array" }, "Name": { "type": "string" }, "Type": { "type": "string" } }, "type": "object" }, "portainer.KubernetesSnapshot": { "properties": { "DiagnosticsData": { "$ref": "#/$defs/portainer.DiagnosticsData" }, "KubernetesVersion": { "type": "string" }, "NodeCount": { "type": "integer" }, "PerformanceMetrics": { "$ref": "#/$defs/portainer.PerformanceMetrics" }, "Time": { "type": "integer" }, "TotalCPU": { "type": "integer" }, "TotalMemory": { "type": "integer" } }, "type": "object" }, "portainer.KubernetesStorageClassConfig": { "properties": { "AccessModes": { "items": { "type": "string" }, "type": "array" }, "AllowVolumeExpansion": { "type": "boolean" }, "Name": { "type": "string" }, "Provisioner": { "type": "string" } }, "type": "object" }, "portainer.Pair": { "properties": { "name": { "type": "string" }, "value": { "type": "string" } }, "type": "object" }, "portainer.PerformanceMetrics": { "properties": { "CPUUsage": { "type": "number" }, "MemoryUsage": { "type": "number" }, "NetworkUsage": { "type": "number" } }, "type": "object" }, "portainer.TLSConfiguration": { "properties": { "TLS": { "description": "Use TLS", "type": "boolean" }, "TLSCACert": { "description": "Path to the TLS CA certificate file", "type": "string" }, "TLSCert": { "description": "Path to the TLS client certificate file", "type": "string" }, "TLSKey": { "description": "Path to the TLS client key file", "type": "string" }, "TLSSkipVerify": { "description": "Skip the verification of the server TLS certificate", "type": "boolean" } }, "type": "object" }, "portainer.TeamAccessPolicies": { "additionalProperties": { "$ref": "#/$defs/portainer.AccessPolicy" }, "type": "object" }, "portainer.UserAccessPolicies": { "additionalProperties": { "$ref": "#/$defs/portainer.AccessPolicy" }, "type": "object" } } }