2021-07-07 20:17:29 -04:00
---
stage: Package
group: Package
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
---
2021-09-07 05:11:43 -04:00
# Helm API **(FREE)**
2021-07-07 20:17:29 -04:00
This is the API documentation for [Helm ](../../user/packages/helm_repository/index.md ).
WARNING:
This API is used by the Helm-related package clients such as [Helm ](https://helm.sh/ )
and [`helm-push` ](https://github.com/chartmuseum/helm-push/#readme ),
2021-07-20 17:09:52 -04:00
and is generally not meant for manual consumption.
2021-07-07 20:17:29 -04:00
For instructions on how to upload and install Helm packages from the GitLab
Package Registry, see the [Helm registry documentation ](../../user/packages/helm_repository/index.md ).
NOTE:
These endpoints do not adhere to the standard API authentication methods.
See the [Helm registry documentation ](../../user/packages/helm_repository/index.md )
for details on which headers and token types are supported.
## Download a chart index
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/62757) in GitLab 14.1.
Download a chart index:
```plaintext
GET projects/:id/packages/helm/:channel/index.yaml
```
| Attribute | Type | Required | Description |
| --------- | ------ | -------- | ----------- |
| `id` | string | yes | The ID or full path of the project. |
| `channel` | string | yes | Helm repository channel. |
```shell
curl --user < username > :< personal_access_token > \
2021-09-08 05:09:10 -04:00
"https://gitlab.example.com/api/v4/projects/1/packages/helm/stable/index.yaml"
2021-07-07 20:17:29 -04:00
```
Write the output to a file:
```shell
curl --user < username > :< personal_access_token > \
2021-09-08 05:09:10 -04:00
"https://gitlab.example.com/api/v4/projects/1/packages/helm/stable/index.yaml" \
2021-07-07 20:17:29 -04:00
--remote-name
```
## Download a chart
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/61014) in GitLab 14.0.
Download a chart:
```plaintext
GET projects/:id/packages/helm/:channel/charts/:file_name.tgz
```
| Attribute | Type | Required | Description |
| ----------- | ------ | -------- | ----------- |
| `id` | string | yes | The ID or full path of the project. |
| `channel` | string | yes | Helm repository channel. |
2021-09-23 18:34:10 -04:00
| `file_name` | string | yes | Chart filename. |
2021-07-07 20:17:29 -04:00
```shell
curl --user < username > :< personal_access_token > \
2021-09-08 05:09:10 -04:00
"https://gitlab.example.com/api/v4/projects/1/packages/helm/stable/charts/mychart.tgz" \
2021-07-07 20:17:29 -04:00
--remote-name
```
## Upload a chart
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/64814) in GitLab 14.1.
Upload a chart:
```plaintext
POST projects/:id/packages/helm/api/:channel/charts
```
| Attribute | Type | Required | Description |
| --------- | ------ | -------- | ----------- |
| `id` | string | yes | The ID or full path of the project. |
| `channel` | string | yes | Helm repository channel. |
| `chart` | file | yes | Chart (as `multipart/form-data` ). |
```shell
curl --request POST \
--form 'chart=@mychart.tgz' \
--user < username > :< personal_access_token > \
2021-09-08 05:09:10 -04:00
"https://gitlab.example.com/api/v4/projects/1/packages/helm/api/stable/charts"
2021-07-07 20:17:29 -04:00
```