Metadata API
- Tier: Free, Premium, Ultimate
- Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
Retrieves metadata information for a specified GitLab instance.
GET /metadata
GET /versionResponse body attributes:
| Attribute | Type | Description |
|---|---|---|
version | string | Version of the GitLab instance. |
revision | string | Revision of the GitLab instance. |
kas | object | Metadata about the GitLab agent server for Kubernetes (KAS). |
kas.enabled | boolean | Indicates whether KAS is enabled. |
kas.externalUrl | string or null | URL used by the agents to communicate with KAS. It’s null if kas.enabled is false. |
kas.externalK8sProxyUrl | string or null | URL used by the Kubernetes tooling to communicate with the KAS Kubernetes API proxy. It’s null if kas.enabled is false. |
kas.version | string or null | Version of KAS. It’s null if kas.enabled is false or when the GitLab instance failed to fetch server info from KAS. |
enterprise | boolean | Indicates whether the GitLab instance is Enterprise Edition. |
plan | string or null | Plan of the license the instance runs under, for example, premium or ultimate. An active trial license reports its plan the same way as a paid license. free on an instance with no license or with an expired trial. An expired paid license still reports its plan, because its licensed features remain available. It’s null where subscriptions are scoped for each namespace rather than for an instance, such as GitLab.com. |
Example request:
curl --request GET \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/metadata"curl --request GET \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/version"Example response:
{
"version": "18.1.1-ee",
"revision": "ceb07b24cb0",
"kas": {
"enabled": true,
"externalUrl": "grpc://gitlab.example.com:8150",
"externalK8sProxyUrl": "https://gitlab.example.com:8150/k8s-proxy",
"version": "18.1.1"
},
"enterprise": true,
"plan": "ultimate"
}Was this page helpful?