Helm Repository API

Standard Helm chart repository endpoints for index and chart download. These endpoints are required for any Helm-compatible chart repository.

OpenAPI Specification

helm-repository-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Helm Chart ChartMuseum Repository API
  description: The Helm Chart Repository API defines the HTTP endpoints used by Helm clients to discover and download charts from a repository server. A chart repository is an HTTP server that houses an index.yaml file listing all available charts and optionally packaged chart archives (.tgz files). ChartMuseum and compatible implementations extend this with a JSON-based management API for listing, uploading, and deleting charts programmatically.
  version: v3.17.0
  contact:
    name: Helm Project
    url: https://helm.sh
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
servers:
- url: https://{repository-host}
  description: Helm Chart Repository Server
  variables:
    repository-host:
      default: charts.example.com
      description: The hostname of the chart repository
tags:
- name: Repository
  description: Standard Helm chart repository endpoints for index and chart download. These endpoints are required for any Helm-compatible chart repository.
paths:
  /index.yaml:
    get:
      operationId: getRepositoryIndex
      summary: Helm Get repository index
      description: Retrieves the repository index file which contains metadata about all charts available in the repository. The index.yaml file lists every chart version along with its description, maintainers, download URLs, and content digests. Helm clients use this endpoint to search and resolve chart dependencies.
      tags:
      - Repository
      responses:
        '200':
          description: Repository index returned successfully
          content:
            application/x-yaml:
              schema:
                $ref: '#/components/schemas/RepositoryIndex'
            text/yaml:
              schema:
                $ref: '#/components/schemas/RepositoryIndex'
        '404':
          description: Repository index not found
  /health:
    get:
      operationId: getHealth
      summary: Helm Get repository health
      description: Returns the health status of the chart repository server. Useful for liveness and readiness probes in Kubernetes deployments.
      tags:
      - Repository
      responses:
        '200':
          description: Server is healthy
          content:
            application/json:
              schema:
                type: object
                properties:
                  healthy:
                    type: boolean
                    description: Whether the server is healthy
                    example: true
components:
  schemas:
    Maintainer:
      type: object
      description: Contact information for a chart maintainer.
      required:
      - name
      properties:
        name:
          type: string
          description: The maintainer name.
        email:
          type: string
          format: email
          description: The maintainer email address.
        url:
          type: string
          format: uri
          description: The maintainer URL.
    ChartVersion:
      type: object
      description: Metadata describing a specific version of a Helm chart as it appears in the repository index.
      required:
      - apiVersion
      - name
      - version
      properties:
        apiVersion:
          type: string
          description: The chart API version (v1 for Helm 2, v2 for Helm 3).
          enum:
          - v1
          - v2
          example: v2
        name:
          type: string
          description: The name of the chart.
          example: nginx
        version:
          type: string
          description: The SemVer 2 version of the chart.
          example: 1.2.3
        kubeVersion:
          type: string
          description: A SemVer range of compatible Kubernetes versions.
          example: '>= 1.19.0'
        description:
          type: string
          description: A single-sentence description of the chart.
        type:
          type: string
          description: The type of chart — application for installable charts, library for utility charts.
          enum:
          - application
          - library
          default: application
        keywords:
          type: array
          items:
            type: string
          description: Keywords associated with the chart for search and categorization.
        home:
          type: string
          format: uri
          description: The URL of the project home page.
        sources:
          type: array
          items:
            type: string
            format: uri
          description: URLs to source code for the chart.
        maintainers:
          type: array
          items:
            $ref: '#/components/schemas/Maintainer'
          description: List of chart maintainers.
        icon:
          type: string
          format: uri
          description: URL to an SVG or PNG icon for the chart.
        appVersion:
          type: string
          description: The version of the application contained in the chart.
          example: 1.21.0
        deprecated:
          type: boolean
          description: Whether this chart version is deprecated.
          default: false
        annotations:
          type: object
          additionalProperties:
            type: string
          description: Annotations are key-value pairs used by Artifact Hub and other tools for additional metadata.
        urls:
          type: array
          items:
            type: string
            format: uri
          description: Download URLs for the chart package.
        created:
          type: string
          format: date-time
          description: Timestamp when this version was added to the index.
        digest:
          type: string
          description: SHA-256 digest of the chart package for integrity verification.
          example: sha256:abc123def456
        dependencies:
          type: array
          items:
            $ref: '#/components/schemas/Dependency'
          description: List of chart dependencies declared in Chart.yaml.
    Dependency:
      type: object
      description: A chart dependency specifying another chart required by this chart.
      required:
      - name
      - version
      properties:
        name:
          type: string
          description: The name of the dependency chart.
        version:
          type: string
          description: The SemVer range for the dependency version.
        repository:
          type: string
          format: uri
          description: The URL of the chart repository where the dependency is hosted.
        condition:
          type: string
          description: A YAML path that resolves to a boolean to enable or disable the dependency.
        tags:
          type: array
          items:
            type: string
          description: Tags used to group dependencies for enable/disable.
        alias:
          type: string
          description: Alias name for the dependency chart.
    RepositoryIndex:
      type: object
      description: The repository index file listing all available charts and their versions. This is the primary discovery mechanism for Helm clients.
      required:
      - apiVersion
      - entries
      properties:
        apiVersion:
          type: string
          description: The API version of the index file format.
          example: v1
        generated:
          type: string
          format: date-time
          description: Timestamp when the index was last generated.
        entries:
          type: object
          description: Map of chart names to their available versions. Each key is a chart name and the value is an array of chart version metadata objects.
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/ChartVersion'
        serverInfo:
          type: object
          description: Optional server information included by some repository implementations.
          properties:
            contextPath:
              type: string
              description: Context path for the server.
externalDocs:
  description: Helm Chart Repository Guide
  url: https://helm.sh/docs/topics/chart_repository/