<p>Is there a way I can get a list of all helm releases, and then all resources that have been created by this release, using the Kubernetes REST API?</p>
<p>I mean something similar to helm and kubectl commands</p>
<p><code>helm list</code></p>
<p><code>kubectl get all --all-namespaces -l=release-name</code></p>
<p>but using REST - <a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/" rel="nofollow noreferrer">https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/</a></p>

Daria Domagała
<p>Helm is built on top of the Kubernetes API layer, in that it creates objects like Deployments and Services and stores its state in Secrets; but a Helm release is not itself a Kubernetes object and you can't directly use the Kubernetes API to access it.</p>
<p>If your application is in Go, then Helm 3 includes a <a href="https://docs.helm.sh/docs/topics/advanced/#go-sdk" rel="nofollow noreferrer">Go SDK</a>, which essentially exposes most of the <code>helm</code> binary as Go-native library calls.  This isn't a network-visible API, though, and if your application is in any other language you won't be able to integrate with it.</p>
<p>If instead it's more important to be able to manipulate your application using Kubernetes's REST API than to be using Helm proper, one alternative is to write a program (a Kubernetes <a href="https://kubernetes.io/docs/concepts/architecture/controller/" rel="nofollow noreferrer">controller</a>) that interacts with the Kubernetes API, and have it be driven by a <a href="https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/" rel="nofollow noreferrer">custom resource</a>, a Kubernetes object that would include your application-specific configuration.  This pair is commonly called an <a href="https://kubernetes.io/docs/concepts/extend-kubernetes/operator/" rel="nofollow noreferrer">operator</a>.  Much more so than a Helm chart, though, this involves actually writing code and not just dropping in bits of Kubernetes YAML.  (And, much more so than a Helm chart, you can unit-test more complex logic using your host language's native test tools.)</p>
<p>But in short, no, unless you can use the Helm Go SDK then there's not a good way to programmatically interact with a Helm chart beyond shelling out to the <code>helm</code> command.</p>
