---
title: "Update a registry"
method: PUT
path: "/registries/{id}"
tags: ["registries"]
---

# Update a registry

`PUT /registries/{id}`

Update a registry
**Access policy**: restricted

## Path parameters

- `id` integer, required

## Request body

- RegistriesRegistryUpdatePayload
  - `Authentication` boolean, required — Is authentication against this registry enabled
  - `BaseURL` string — BaseURL is used for quay registry
  - `Ecr` PortainerEcrData
    - `Region` string
  - `Name` string, required — Name that will be used to identify this registry
  - `Password` string — Password used to authenticate against this registry. required when Authentication is true
  - `Quay` PortainerQuayRegistryData
    - `OrganisationName` string
    - `UseOrganisation` boolean
  - `RegistryAccesses` PortainerRegistryAccesses
  - `URL` string, required — URL or IP address of the Docker registry
  - `Username` string — Username used to authenticate against this registry. Required when Authentication is true

## Response `200`

Success

- PortainerRegistry
  - `AccessToken` string — Stores temporary access token
  - `AccessTokenExpiry` integer
  - `Authentication` boolean — Is authentication against this registry enabled
  - `AuthorizedTeams` integer[] — Deprecated in DBVersion == 18
  - `AuthorizedUsers` integer[] — Deprecated in DBVersion == 18
  - `BaseURL` string — Base URL, introduced for ProGet registry
  - `Ecr` PortainerEcrData
    - `Region` string
  - `Github` PortainerGithubRegistryData
    - `OrganisationName` string
    - `UseOrganisation` boolean
  - `Gitlab` PortainerGitlabRegistryData
    - `InstanceURL` string
    - `ProjectId` integer
    - `ProjectPath` string
  - `Id` integer — Registry Identifier
  - `ManagementConfiguration` PortainerRegistryManagementConfiguration
    - `AccessToken` string
    - `AccessTokenExpiry` integer
    - `Authentication` boolean
    - `Ecr` PortainerEcrData
      - `Region` string
    - `Password` string
    - `TLSConfig` PortainerTLSConfiguration
      - `TLS` boolean, required — Use TLS
      - `TLSCACert` string — Path to the TLS CA certificate file
      - `TLSCert` string — Path to the TLS client certificate file
      - `TLSKey` string — Path to the TLS client key file
      - `TLSSkipVerify` boolean, required — Skip the verification of the server TLS certificate
    - `Type` 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8
    - `Username` string
  - `Name` string — Registry Name
  - `Password` string — Password or SecretAccessKey used to authenticate against this registry
  - `Quay` PortainerQuayRegistryData
    - `OrganisationName` string
    - `UseOrganisation` boolean
  - `RegistryAccesses` PortainerRegistryAccesses
  - `TeamAccessPolicies` PortainerTeamAccessPolicies
  - `Type` 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8
  - `URL` string — URL or IP address of the Docker registry
  - `UserAccessPolicies` PortainerUserAccessPolicies
  - `Username` string — Username or AccessKeyID used to authenticate against this registry

## Other responses

- `400` — Invalid request
- `404` — Registry not found
- `409` — Another registry with the same name or same URL & credentials already exists
- `500` — Server error

---

[API](https://skmtc.net/portainer/apis/portainerce-api.md) · [All operations](https://skmtc.net/portainer/apis/portainerce-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/portainer/portainerce-api/versions/ec51a8194ac0/schema)
