Helm ChartMuseum API

Extended API endpoints provided by ChartMuseum and compatible chart repository servers for JSON-based chart management.

OpenAPI Specification

helm-chartmuseum-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Helm Chart Repository ChartMuseum 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: ChartMuseum
  description: Extended API endpoints provided by ChartMuseum and compatible chart repository servers for JSON-based chart management.
paths:
  /api/charts:
    get:
      operationId: listAllCharts
      summary: Helm List all charts
      description: Returns a list of all charts available in the repository grouped by chart name. This endpoint is provided by ChartMuseum and other enhanced chart repository implementations supporting JSON-based management.
      tags:
      - ChartMuseum
      responses:
        '200':
          description: Chart list returned successfully
          content:
            application/json:
              schema:
                type: object
                description: Map of chart names to their available versions.
                additionalProperties:
                  type: array
                  items:
                    $ref: '#/components/schemas/ChartVersion'
        '401':
          description: Unauthorized
    post:
      operationId: uploadChart
      summary: Helm Upload chart package
      description: Uploads a new chart package to the repository. This endpoint is provided by ChartMuseum and other writable chart repository implementations. The chart archive is sent as multipart form data or as a raw binary body.
      tags:
      - ChartMuseum
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                chart:
                  type: string
                  format: binary
                  description: The chart package archive (.tgz file)
                prov:
                  type: string
                  format: binary
                  description: Optional PGP provenance file (.tgz.prov)
      responses:
        '201':
          description: Chart uploaded successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  saved:
                    type: boolean
                    description: Whether the chart was saved successfully
                    example: true
        '401':
          description: Unauthorized
        '409':
          description: Chart version already exists
  /api/charts/{chartName}:
    get:
      operationId: getChartVersions
      summary: Helm Get chart versions
      description: Returns all available versions for a specific chart. This endpoint is provided by ChartMuseum and other enhanced chart repository implementations.
      tags:
      - ChartMuseum
      parameters:
      - $ref: '#/components/parameters/ChartName'
      responses:
        '200':
          description: Chart versions returned successfully
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ChartVersion'
        '401':
          description: Unauthorized
        '404':
          description: Chart not found
  /api/charts/{chartName}/{version}:
    get:
      operationId: getChartVersion
      summary: Helm Get specific chart version
      description: Returns metadata for a specific version of a named chart. This endpoint is provided by ChartMuseum and other enhanced chart repository implementations.
      tags:
      - ChartMuseum
      parameters:
      - $ref: '#/components/parameters/ChartName'
      - $ref: '#/components/parameters/Version'
      responses:
        '200':
          description: Chart version metadata returned successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChartVersion'
        '401':
          description: Unauthorized
        '404':
          description: Chart version not found
    delete:
      operationId: deleteChartVersion
      summary: Helm Delete chart version
      description: Deletes a specific version of a chart from the repository. This endpoint is provided by ChartMuseum and other writable chart repository implementations.
      tags:
      - ChartMuseum
      parameters:
      - $ref: '#/components/parameters/ChartName'
      - $ref: '#/components/parameters/Version'
      responses:
        '200':
          description: Chart version deleted successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  deleted:
                    type: boolean
                    description: Whether the chart version was deleted
                    example: true
        '401':
          description: Unauthorized
        '404':
          description: Chart version not found
  /api/prov:
    post:
      operationId: uploadProvenance
      summary: Helm Upload provenance file
      description: Uploads a PGP provenance file to the repository independently of a chart package. This endpoint is provided by ChartMuseum for cases where chart and provenance files are uploaded separately.
      tags:
      - ChartMuseum
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                prov:
                  type: string
                  format: binary
                  description: The PGP provenance file (.tgz.prov)
      responses:
        '201':
          description: Provenance file uploaded successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  saved:
                    type: boolean
                    description: Whether the provenance file was saved
                    example: true
        '401':
          description: Unauthorized
        '409':
          description: Provenance file already exists
components:
  schemas:
    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.
    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.
    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.
  parameters:
    Version:
      name: version
      in: path
      required: true
      description: The SemVer 2 version of the chart
      schema:
        type: string
        example: 1.2.3
    ChartName:
      name: chartName
      in: path
      required: true
      description: The name of the chart
      schema:
        type: string
        example: nginx
externalDocs:
  description: Helm Chart Repository Guide
  url: https://helm.sh/docs/topics/chart_repository/