Replicated externalRegistries API

The externalRegistries API from Replicated — 6 operation(s) for externalregistries.

Operations 7

GET /external_registries List external registries for a team. #
POST /external_registry Creates an external registry with the specified parameters. #
GET /external_registry/iam Get team OIDC IAM configuration for ECR. #
GET /external_registry/logs Get the logs for a specific external registry either by endpoint or slug, or both. #
PUT /external_registry/test Test external registry for a team. #
PUT /external_registry/{slug} Updates an external registry with the specified parameters. #
DELETE /external_registry/{slug} Deletes an external registry by slug. #

Work with this as data

Every API 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 apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • 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 API
curl "https://apis.io/api/v1/apis/replicated-externalregistries-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

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

Get an API key

Free tier, no email required.

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

OpenAPI Specification

replicated-externalregistries-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: Manage enterprise portal users, install options, branding, documentation, email templates, and access control.
  title: Vendor API V3 apps External Registries API
  contact:
    name: Replicated, Inc.
    url: http://www.replicated.com/
    email: info@replicated.com
  version: 3.0.0
servers:
- url: https://api.replicated.com/vendor/v3
tags:
- name: externalRegistries
paths:
  /external_registries:
    get:
      security:
      - api_key: []
      description: 'Required RBAC Policy: kots/externalregistry/list'
      tags:
      - externalRegistries
      summary: List external registries for a team.
      operationId: listExternalRegistries
      responses:
        '200':
          $ref: '#/components/responses/listExternalRegistriesResponse'
        '400':
          $ref: '#/components/responses/responseErrBadRequest'
        '401':
          $ref: '#/components/responses/responseErrUnauthorized'
        '403':
          $ref: '#/components/responses/responseErrForbidden'
        '404':
          $ref: '#/components/responses/responseErrNotFound'
      servers:
      - url: https://api.replicated.com/vendor/v3
  /external_registry:
    post:
      security:
      - api_key: []
      description: 'Required RBAC Policy: kots/externalregistry/create'
      tags:
      - externalRegistries
      summary: Creates an external registry with the specified parameters.
      operationId: createExternalRegistry
      responses:
        '201':
          $ref: '#/components/responses/createExternalRegistryResponse'
        '400':
          $ref: '#/components/responses/responseErrBadRequest'
        '401':
          $ref: '#/components/responses/responseErrUnauthorized'
        '403':
          $ref: '#/components/responses/responseErrForbidden'
      servers:
      - url: https://api.replicated.com/vendor/v3
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - endpoint
              - username
              - password
              properties:
                appIds:
                  description: AppIds is a list of app IDs that can access this registry. If null or empty, registry is shared across all apps. (optional)
                  type: array
                  items:
                    type: string
                  x-go-name: AppIds
                authType:
                  description: Auth type for the upstream registry (optional)
                  type: string
                  x-go-name: AuthType
                copyPassword:
                  description: CopyPassword flag to indicate if password should be copied from original registry (optional)
                  type: boolean
                  x-go-name: CopyPassword
                endpoint:
                  description: Endpoint of the upstream registry.
                  type: string
                  x-go-name: Endpoint
                originalSlug:
                  description: OriginalSlug is used when duplicating a registry to copy passwords if they're unchanged (optional)
                  type: string
                  x-go-name: OriginalSlug
                password:
                  description: Password for authentication with the upstream registry.
                  type: string
                  x-go-name: Password
                provider:
                  description: Provider of the upstream registry. (optional)
                  type: string
                  x-go-name: Provider
                skipValidation:
                  description: SkipValidation just saves the values without checking if the registry is valid.
                  type: boolean
                  x-go-name: SkipValidation
                slug:
                  description: Slug (registry name) for the upstream registry. If not provided, the endpoint will be used as the slug. (optional)
                  type: string
                  x-go-name: Slug
                username:
                  description: Username for authentication with the upstream registry.
                  type: string
                  x-go-name: Username
        description: ExternalRegistry create parameters.
  /external_registry/iam:
    get:
      security:
      - api_key: []
      description: 'Required RBAC Policy: kots/externalregistry/read'
      tags:
      - externalRegistries
      summary: Get team OIDC IAM configuration for ECR.
      operationId: getECRIAMConfig
      responses:
        '200':
          $ref: '#/components/responses/getECRIAMConfigResponse'
        '401':
          $ref: '#/components/responses/responseErrUnauthorized'
        '403':
          $ref: '#/components/responses/responseErrForbidden'
      servers:
      - url: https://api.replicated.com/vendor/v3
  /external_registry/logs:
    get:
      security:
      - api_key: []
      description: 'Required RBAC Policy: kots/externalregistry/logs/read'
      tags:
      - externalRegistries
      summary: Get the logs for a specific external registry either by endpoint or slug, or both.
      operationId: externalRegistryLogs
      parameters:
      - description: The endpoint of the external registry to get logs for
        name: Endpoint
        in: query
        schema:
          type: string
      - description: The slug of the external registry to get logs for
        name: Slug
        in: query
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/externalRegistryLogsResponse'
        '400':
          $ref: '#/components/responses/responseErrBadRequest'
        '401':
          $ref: '#/components/responses/responseErrUnauthorized'
        '403':
          $ref: '#/components/responses/responseErrForbidden'
        '404':
          $ref: '#/components/responses/responseErrNotFound'
      servers:
      - url: https://api.replicated.com/vendor/v3
  /external_registry/test:
    put:
      security:
      - api_key: []
      description: 'Required RBAC Policy: kots/externalregistry/test'
      tags:
      - externalRegistries
      summary: Test external registry for a team.
      operationId: testExternalRegistry
      responses:
        '200':
          $ref: '#/components/responses/testExternalRegistryResponse'
        '400':
          $ref: '#/components/responses/responseErrBadRequest'
        '401':
          $ref: '#/components/responses/responseErrUnauthorized'
        '403':
          $ref: '#/components/responses/responseErrForbidden'
        '404':
          $ref: '#/components/responses/responseErrNotFound'
      servers:
      - url: https://api.replicated.com/vendor/v3
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - endpoint
              - image
              properties:
                authType:
                  description: Auth type for the registry (optional)
                  type: string
                  x-go-name: AuthType
                copyPassword:
                  description: Whether to copy password from original registry when testing
                  type: boolean
                  x-go-name: CopyPassword
                endpoint:
                  description: Endpoint of the external registry.
                  type: string
                  x-go-name: Endpoint
                image:
                  description: Image to test pulling.
                  type: string
                  x-go-name: Image
                originalSlug:
                  description: Original registry slug to copy password from when testing during duplication
                  type: string
                  x-go-name: OriginalSlug
                password:
                  description: Password to use, provide only when testing before saving
                  type: string
                  x-go-name: Password
                slug:
                  description: 'Slug of the external registry.

                    Will default to the endpoint if not provided.'
                  type: string
                  x-go-name: Slug
                username:
                  description: Username to use, provide only when testing before saving
                  type: string
                  x-go-name: Username
        description: ExternalRegistry create parameters.
  /external_registry/{slug}:
    put:
      security:
      - api_key: []
      description: 'Required RBAC Policy: kots/externalregistry/update'
      tags:
      - externalRegistries
      summary: Updates an external registry with the specified parameters.
      operationId: updateExternalRegistry
      parameters:
      - x-go-name: Slug
        description: Registry slug - can not be changed
        name: slug
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/updateExternalRegistryResponse'
        '400':
          $ref: '#/components/responses/responseErrBadRequest'
        '401':
          $ref: '#/components/responses/responseErrUnauthorized'
        '403':
          $ref: '#/components/responses/responseErrForbidden'
        '404':
          $ref: '#/components/responses/responseErrNotFound'
      servers:
      - url: https://api.replicated.com/vendor/v3
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                appIds:
                  description: 'AppIds is a list of app IDs that can access this registry.

                    If null/omitted, existing appIds are preserved

                    If empty array [], registry becomes shared across all apps

                    If contains values, registry is scoped to those apps (optional)'
                  type: array
                  items:
                    type: string
                  x-go-name: AppIds
                authType:
                  description: Authentication type for the registry (e.g., "password", "token"). (optional)
                  type: string
                  x-go-name: AuthType
                endpoint:
                  description: Endpoint of the external registry. (optional)
                  type: string
                  x-go-name: Endpoint
                password:
                  description: Password for authentication with the upstream registry. (optional)
                  type: string
                  x-go-name: Password
                provider:
                  description: Provider of the external registry (e.g., "dockerhub", "gcr", "ecr", etc.). (optional)
                  type: string
                  x-go-name: Provider
                username:
                  description: Username for authentication with the upstream registry. (optional)
                  type: string
                  x-go-name: Username
        description: ExternalRegistry update parameters.
    delete:
      security:
      - api_key: []
      description: 'Required RBAC Policy: kots/externalregistry/[:slug]/delete'
      tags:
      - externalRegistries
      summary: Deletes an external registry by slug.
      operationId: deleteExternalRegistry
      parameters:
      - x-go-name: Slug
        description: Slug identifier
        name: slug
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          $ref: '#/components/responses/responseNoContent'
        '400':
          $ref: '#/components/responses/responseErrBadRequest'
        '401':
          $ref: '#/components/responses/responseErrUnauthorized'
        '403':
          $ref: '#/components/responses/responseErrForbidden'
      servers:
      - url: https://api.replicated.com/vendor/v3
components:
  responses:
    testExternalRegistryResponse:
      description: TestExternalRegistriesResponse contains the JSON external registries test
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: string
                x-go-name: Error
              status:
                type: integer
                format: int64
                x-go-name: Status
    responseNoContent:
      description: On success, no payload returned
    responseErrUnauthorized:
      description: Return if the caller is not authorized
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
                x-go-name: Message
    getECRIAMConfigResponse:
      description: GetECRIAMConfigResponse contains the team OIDC configuration.
      content:
        application/json:
          schema:
            type: object
            properties:
              audience:
                type: string
                x-go-name: Audience
              issuer_url:
                type: string
                x-go-name: IssuerURL
              subject_type:
                type: string
                x-go-name: SubjectType
              thumbprint:
                type: string
                x-go-name: Thumbprint
    updateExternalRegistryResponse:
      description: UpdateExternalRegistryResponse represents an updated external registry.
      content:
        application/json:
          schema:
            type: object
            properties:
              external_registry:
                $ref: '#/components/schemas/ExternalRegistry'
    responseErrForbidden:
      description: Returned if the caller does not have the needed permission
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: object
                properties:
                  message:
                    type: string
                    x-go-name: Message
                  messageCode:
                    type: string
                    x-go-name: MessageCode
                x-go-name: Error
    responseErrNotFound:
      description: Returned on resource not found
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
                x-go-name: Message
    responseErrBadRequest:
      description: Returned on bad input
      content:
        application/json:
          schema:
            type: object
            properties:
              error_code:
                description: Error code if available
                type: string
                x-go-name: ErrorCode
              message:
                description: Error message text if available
                type: string
                x-go-name: Message
    createExternalRegistryResponse:
      description: CreateExternalRegistryResponse represents an external registry.
      content:
        application/json:
          schema:
            type: object
            properties:
              external_registry:
                $ref: '#/components/schemas/ExternalRegistry'
    listExternalRegistriesResponse:
      description: ListExternalRegistriesResponse contains the JSON external registries list
      content:
        application/json:
          schema:
            type: object
            properties:
              available_registries:
                description: Available registries (only present when app_id query parameter is provided)
                type: array
                items:
                  $ref: '#/components/schemas/ExternalRegistry'
                x-go-name: AvailableRegistries
              external_registries:
                type: array
                items:
                  $ref: '#/components/schemas/ExternalRegistry'
                x-go-name: ExternalRegistries
              unavailable_registries:
                description: Unavailable registries (only present when app_id query parameter is provided)
                type: array
                items:
                  $ref: '#/components/schemas/ExternalRegistry'
                x-go-name: UnavailableRegistries
    externalRegistryLogsResponse:
      description: ExternalRegistryLogsResponse contains the JSON external registry logs
      content:
        application/json:
          schema:
            type: object
            properties:
              logs:
                type: array
                items:
                  $ref: '#/components/schemas/ExternalRegistryLog'
                x-go-name: Logs
  schemas:
    ExternalRegistry:
      type: object
      properties:
        appIds:
          type: array
          items:
            type: string
          x-go-name: AppIDs
        authType:
          type: string
          x-go-name: AuthType
        createdAt:
          type: string
          format: date-time
          x-go-name: CreatedAt
        endpoint:
          type: string
          x-go-name: Endpoint
        isReplicated:
          type: boolean
          x-go-name: IsReplicated
        provider:
          type: string
          x-go-name: Provider
        slug:
          type: string
          x-go-name: Slug
        teamId:
          type: string
          x-go-name: TeamID
        updatedAt:
          type: string
          format: date-time
          x-go-name: UpdatedAt
        username:
          type: string
          x-go-name: Username
      x-go-package: github.com/replicatedhq/vandoor/pkg/vendor-api/kots
    ExternalRegistryLog:
      type: object
      properties:
        action:
          type: string
          x-go-name: Action
        createdAt:
          type: string
          format: date-time
          x-go-name: CreatedAt
        customerName:
          type: string
          x-go-name: CustomerName
        endpoint:
          type: string
          x-go-name: Endpoint
        image:
          type: string
          x-go-name: Image
        isSuccess:
          type: boolean
          x-go-name: IsSuccess
        slug:
          type: string
          x-go-name: Slug
        statusCode:
          type: integer
          format: int64
          x-go-name: StatusCode
        tag:
          type: string
          x-go-name: Tag
      x-go-package: github.com/replicatedhq/vandoor/pkg/vendor-api/kots
  securitySchemes:
    api_key:
      type: apiKey
      name: Authorization
      in: header