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.