# GitLab Keys API

**Canonical:** https://apis.io/apis/gitlab/gitlab-keys-api/  
**Provider:** GitLab — https://apis.io/providers/gitlab/  
**Base URL:** https://gitlab.com/api/v4  
**Documentation:** https://docs.gitlab.com/api/rest/

GitLab Keys API is one of 189 APIs that [GitLab](https://apis.io/providers/gitlab/) publishes on the [APIs.io](https://apis.io/) network, described by a machine-readable OpenAPI specification and an AsyncAPI event-driven specification. This API exposes 16 JSON Schema definitions. Tagged areas include Keys. The published artifact set on APIs.io includes an OpenAPI specification, API documentation, authentication docs, an API reference, rate-limit docs, an AsyncAPI specification, and 16 JSON Schemas.

Use this API to retrieve information about [SSH keys](https://docs.gitlab.com/user/ssh/), manage a user's SSH and [GPG keys](https://docs.gitlab.com/user/project/repository/signed_commits/gpg/), and manage SSH certificates for [top-level groups](https://docs.gitlab.com/user/group/ssh_certificates/) and [the instance](https://docs.gitlab.com/api/instance_ssh_certificates/). Queries about deploy key fingerprints also retrieve information about the projects using that key. If you use a SHA256 fingerprint in an API call, URL-encode the fingerprint. Managing group SSH certificates requires the Owner role for a top-level group. Managing instance SSH certificates requires administrator access.

## Operations (23)

| Method | Path | Summary |
|---|---|---|
| POST | `/api/v4/users/{user_id}/keys` | Add an SSH key for a user |
| GET | `/api/v4/users/{user_id}/keys` | List all SSH keys for a user |
| GET | `/api/v4/users/{id}/keys/{key_id}` | Retrieve an SSH key for a user |
| DELETE | `/api/v4/users/{id}/keys/{key_id}` | Delete an SSH key for a user |
| POST | `/api/v4/users/{id}/gpg_keys` | Add a GPG key for a user |
| GET | `/api/v4/users/{id}/gpg_keys` | List all GPG keys for a user |
| GET | `/api/v4/users/{id}/gpg_keys/{key_id}` | Retrieve a GPG key for a user |
| DELETE | `/api/v4/users/{id}/gpg_keys/{key_id}` | Delete a GPG key for a user |
| POST | `/api/v4/users/{id}/gpg_keys/{key_id}/revoke` | Revoke a GPG key for a user |
| GET | `/api/v4/user/keys` | List all SSH keys |
| POST | `/api/v4/user/keys` | Add an SSH key |
| GET | `/api/v4/user/keys/{key_id}` | Retrieve an SSH key |
| DELETE | `/api/v4/user/keys/{key_id}` | Delete an SSH key |
| GET | `/api/v4/user/gpg_keys` | List all GPG keys |
| POST | `/api/v4/user/gpg_keys` | Add a GPG key |
| GET | `/api/v4/user/gpg_keys/{key_id}` | Retrieve a GPG key |
| DELETE | `/api/v4/user/gpg_keys/{key_id}` | Delete a GPG key |
| POST | `/api/v4/user/gpg_keys/{key_id}/revoke` | Revoke a GPG key |
| GET | `/api/v4/keys/{id}` | Retrieve user by SSH key ID |
| GET | `/api/v4/keys` | Retrieve user by SSH key fingerprint |
| GET | `/api/v4/groups/{id}/ssh_certificates` | List all group SSH certificates |
| POST | `/api/v4/groups/{id}/ssh_certificates` | Add a group SSH certificate |
| DELETE | `/api/v4/groups/{id}/ssh_certificates/{ssh_certificates_id}` | Delete a group SSH certificate |

## Machine-readable artifacts (65)

- **OpenAPI** — https://artifacts.apis.io/gitlab/openapi/gitlab-keys-api-openapi.yml
- **Documentation** — https://docs.gitlab.com/api/openapi/
- **Documentation** — https://docs.gitlab.com/api/issues/
- **Authentication** — https://docs.gitlab.com/api/rest/authentication/
- **JSONSchema** — https://artifacts.apis.io/gitlab/json-schema/gitlab-put-api-v4-application-settings-request-schema.json
- **JSONSchema** — https://artifacts.apis.io/gitlab/json-schema/gitlab-apientities-geo-node-status-schema.json
- **JSONSchema** — https://artifacts.apis.io/gitlab/json-schema/gitlab-apientities-geo-site-status-schema.json
- **JSONSchema** — https://artifacts.apis.io/gitlab/json-schema/gitlab-apientities-application-setting-schema.json
- **JSONSchema** — https://artifacts.apis.io/gitlab/json-schema/gitlab-post-api-v4-geo-status-request-schema.json
- **JSONSchema** — https://artifacts.apis.io/gitlab/json-schema/gitlab-put-api-v4-projects-id-request-schema.json
- **Documentation** — https://docs.gitlab.com/api/merge_requests/
- **Documentation** — https://docs.gitlab.com/api/pipelines/
- **Documentation** — https://docs.gitlab.com/api/jobs/
- **Documentation** — https://docs.gitlab.com/api/runners/
- **Documentation** — https://docs.gitlab.com/api/users/
- **Documentation** — https://docs.gitlab.com/api/repositories/
- **Documentation** — https://docs.gitlab.com/api/commits/
- **Documentation** — https://docs.gitlab.com/api/branches/
- **Documentation** — https://docs.gitlab.com/api/tags/
- **Documentation** — https://docs.gitlab.com/api/releases/
- **Documentation** — https://docs.gitlab.com/api/environments/
- **Documentation** — https://docs.gitlab.com/api/deployments/
- **Documentation** — https://docs.gitlab.com/api/pipeline_schedules/
- **Documentation** — https://docs.gitlab.com/api/labels/
- **Documentation** — https://docs.gitlab.com/api/milestones/
- **Documentation** — https://docs.gitlab.com/api/notes/
- **Documentation** — https://docs.gitlab.com/api/snippets/
- **Documentation** — https://docs.gitlab.com/api/packages/
- **Documentation** — https://docs.gitlab.com/api/container_registry/
- **Documentation** — https://docs.gitlab.com/api/vulnerabilities/
- **Documentation** — https://docs.gitlab.com/api/deploy_keys/
- **Documentation** — https://docs.gitlab.com/api/protected_branches/
- **Documentation** — https://docs.gitlab.com/api/wikis/
- **Documentation** — https://docs.gitlab.com/api/events/
- **Documentation** — https://docs.gitlab.com/api/search/
- **Documentation** — https://docs.gitlab.com/api/namespaces/
- **Documentation** — https://docs.gitlab.com/api/groups/
- **Documentation** — https://docs.gitlab.com/api/projects/
- **Documentation** — https://docs.gitlab.com/api/applications/
- **Documentation** — https://docs.gitlab.com/api/avatar/
- …and 25 more, listed in full on the page.

## Other GitLab APIs (12)

- [GitLab Orbit gRPC API](https://apis.io/apis/gitlab/gitlab-orbit-api/)
- [GitLab GraphQL API](https://apis.io/apis/gitlab/gitlab-graphql-api/)
- [GitLab Applications API](https://apis.io/apis/gitlab/gitlab-applications-api/)
- [GitLab Authorization API](https://apis.io/apis/gitlab/gitlab-authorization-api/)
- [GitLab Broadcast Messages API](https://apis.io/apis/gitlab/gitlab-broadcast-messages-api/)
- [GitLab Groups API](https://apis.io/apis/gitlab/gitlab-groups-api/)
- [GitLab Metadata API](https://apis.io/apis/gitlab/gitlab-metadata-api/)
- [GitLab Project Webhooks API](https://apis.io/apis/gitlab/gitlab-project-webhooks-api/)
- [GitLab Projects API](https://apis.io/apis/gitlab/gitlab-projects-api/)
- [GitLab Tokens API](https://apis.io/apis/gitlab/gitlab-tokens-api/)
- [GitLab User Info API](https://apis.io/apis/gitlab/gitlab-user-info-api/)
- [GitLab Webhook Configuration API](https://apis.io/apis/gitlab/gitlab-webhook-configuration-api/)

## Tags

Keys

---

Profiled by [API Evangelist](https://apievangelist.com) and published on [APIs.io](https://apis.io/apis/gitlab/gitlab-keys-api/). The API's provider profile, Kin Score and agent-readiness rating are at https://apis.io/providers/gitlab/.
