The k8s REST API is the backbone of every cluster. Nothing can happen without first going through it. It is hosted on the kube-apiserver and all of its server data is stored in etcd.

The API is documented with Swagger 2.0. This allows users to predict its behaviour by introducing a uniform structure to follow when creating requests. Also, it gives concrete idea of what is expected when receiving a response.

As every API, this one exposes different kinds of resources for third party tools/services to interact with. All k8s api resources have a consistent OpenAPI Schema.

Resources are further grouped and versioned:

policy.k8s.io/v1    # group/version 

This allows updating the API without affecting other resources or resources reliant on older versions.