Portainer · Schema

portainer.Registry

Container ManagementContainersDockerKubernetesKubernetes ManagementEnterprise IdentityGitOps

Properties

Name Type Description
AccessToken string Stores temporary access token
AccessTokenExpiry integer
Authentication boolean Is authentication against this registry enabled
AuthorizedTeams array Deprecated in DBVersion == 18
AuthorizedUsers array Deprecated in DBVersion == 18
BaseURL string Base URL, introduced for ProGet registry
Ecr object
Github object
Gitlab object
Id integer Registry Identifier
ManagementConfiguration object
Name string Registry Name
Password string Password or SecretAccessKey used to authenticate against this registry
Quay object
RegistryAccesses object
TeamAccessPolicies object Deprecated in DBVersion == 31
Type object Registry Type (1 - Quay, 2 - Azure, 3 - Custom, 4 - Gitlab, 5 - ProGet, 6 - DockerHub, 7 - ECR)
URL string URL or IP address of the Docker registry
UserAccessPolicies object Deprecated fields Deprecated in DBVersion == 31
Username string Username or AccessKeyID used to authenticate against this registry
View JSON Schema on GitHub

JSON Schema

portainer-portainer-registry-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/portainer/main/json-schema/portainer-portainer-registry-schema.json",
  "title": "portainer.Registry",
  "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.Registry",
  "properties": {
    "AccessToken": {
      "description": "Stores temporary access token",
      "type": "string"
    },
    "AccessTokenExpiry": {
      "type": "integer"
    },
    "Authentication": {
      "description": "Is authentication against this registry enabled",
      "type": "boolean"
    },
    "AuthorizedTeams": {
      "description": "Deprecated in DBVersion == 18",
      "items": {
        "type": "integer"
      },
      "type": "array"
    },
    "AuthorizedUsers": {
      "description": "Deprecated in DBVersion == 18",
      "items": {
        "type": "integer"
      },
      "type": "array"
    },
    "BaseURL": {
      "description": "Base URL, introduced for ProGet registry",
      "type": "string"
    },
    "Ecr": {
      "$ref": "#/$defs/portainer.EcrData"
    },
    "Github": {
      "$ref": "#/$defs/portainer.GithubRegistryData"
    },
    "Gitlab": {
      "$ref": "#/$defs/portainer.GitlabRegistryData"
    },
    "Id": {
      "description": "Registry Identifier",
      "type": "integer"
    },
    "ManagementConfiguration": {
      "$ref": "#/$defs/portainer.RegistryManagementConfiguration"
    },
    "Name": {
      "description": "Registry Name",
      "type": "string"
    },
    "Password": {
      "description": "Password or SecretAccessKey used to authenticate against this registry",
      "type": "string"
    },
    "Quay": {
      "$ref": "#/$defs/portainer.QuayRegistryData"
    },
    "RegistryAccesses": {
      "$ref": "#/$defs/portainer.RegistryAccesses"
    },
    "TeamAccessPolicies": {
      "allOf": [
        {
          "$ref": "#/$defs/portainer.TeamAccessPolicies"
        }
      ],
      "description": "Deprecated in DBVersion == 31"
    },
    "Type": {
      "allOf": [
        {
          "$ref": "#/$defs/portainer.RegistryType"
        }
      ],
      "description": "Registry Type (1 - Quay, 2 - Azure, 3 - Custom, 4 - Gitlab, 5 - ProGet, 6 - DockerHub, 7 - ECR)",
      "enum": [
        1,
        2,
        3,
        4,
        5,
        6,
        7
      ]
    },
    "URL": {
      "description": "URL or IP address of the Docker registry",
      "type": "string"
    },
    "UserAccessPolicies": {
      "allOf": [
        {
          "$ref": "#/$defs/portainer.UserAccessPolicies"
        }
      ],
      "description": "Deprecated fields\nDeprecated in DBVersion == 31"
    },
    "Username": {
      "description": "Username or AccessKeyID used to authenticate against this registry",
      "type": "string"
    }
  },
  "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.EcrData": {
      "properties": {
        "Region": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "portainer.GithubRegistryData": {
      "properties": {
        "OrganisationName": {
          "type": "string"
        },
        "UseOrganisation": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "portainer.GitlabRegistryData": {
      "properties": {
        "InstanceURL": {
          "type": "string"
        },
        "ProjectId": {
          "type": "integer"
        },
        "ProjectPath": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "portainer.QuayRegistryData": {
      "properties": {
        "OrganisationName": {
          "type": "string"
        },
        "UseOrganisation": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "portainer.RegistryAccessPolicies": {
      "properties": {
        "Namespaces": {
          "description": "Kubernetes specific fields (with kubernetes, namespaces have access to a registry, if users/teams have access to the same namespace, they have access to the registry)",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "TeamAccessPolicies": {
          "$ref": "#/$defs/portainer.TeamAccessPolicies"
        },
        "UserAccessPolicies": {
          "allOf": [
            {
              "$ref": "#/$defs/portainer.UserAccessPolicies"
            }
          ],
          "description": "Docker specific fields (with docker, users/teams have access to a registry)"
        }
      },
      "type": "object"
    },
    "portainer.RegistryAccesses": {
      "additionalProperties": {
        "$ref": "#/$defs/portainer.RegistryAccessPolicies"
      },
      "type": "object"
    },
    "portainer.RegistryManagementConfiguration": {
      "properties": {
        "AccessToken": {
          "type": "string"
        },
        "AccessTokenExpiry": {
          "type": "integer"
        },
        "Authentication": {
          "type": "boolean"
        },
        "Ecr": {
          "$ref": "#/$defs/portainer.EcrData"
        },
        "Password": {
          "type": "string"
        },
        "TLSConfig": {
          "$ref": "#/$defs/portainer.TLSConfiguration"
        },
        "Type": {
          "$ref": "#/$defs/portainer.RegistryType"
        },
        "Username": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "portainer.RegistryType": {
      "enum": [
        0,
        1,
        2,
        3,
        4,
        5,
        6,
        7,
        8
      ],
      "type": "integer",
      "x-enum-varnames": [
        "_",
        "QuayRegistry",
        "AzureRegistry",
        "CustomRegistry",
        "GitlabRegistry",
        "ProGetRegistry",
        "DockerHubRegistry",
        "EcrRegistry",
        "GithubRegistry"
      ]
    },
    "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"
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/portainer-portainer-registry"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.