--- stage: Create group: Source Code info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments" type: reference, api --- # Keys API **(FREE)** ## Get SSH key with user by ID of an SSH key Get SSH key with user by ID of an SSH key. Note only administrators can lookup SSH key with user by ID of an SSH key. ```plaintext GET /keys/:id ``` | Attribute | Type | Required | Description | |:----------|:--------|:---------|:---------------------| | `id` | integer | yes | The ID of an SSH key | Example request: ```shell curl --header "PRIVATE-TOKEN: " "https://gitlab.example.com/api/v4/keys/1" ``` ```json { "id": 1, "title": "Sample key 25", "key": "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt1256k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa++Oi7Qkr8prgHc4soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0=", "created_at": "2015-09-03T07:24:44.627Z", "expires_at": "2020-05-05T00:00:00.000Z" "user": { "name": "John Smith", "username": "john_smith", "id": 25, "state": "active", "avatar_url": "http://www.gravatar.com/avatar/cfa35b8cd2ec278026357769582fa563?s=40\u0026d=identicon", "web_url": "http://localhost:3000/john_smith", "created_at": "2015-09-03T07:24:01.670Z", "bio": null, "location": null, "public_email": "john@example.com", "skype": "", "linkedin": "", "twitter": "", "website_url": "", "organization": null, "last_sign_in_at": "2015-09-03T07:24:01.670Z", "confirmed_at": "2015-09-03T07:24:01.670Z", "last_activity_on": "2015-09-03", "email": "john@example.com", "theme_id": 2, "color_scheme_id": 1, "projects_limit": 10, "current_sign_in_at": null, "identities": [], "can_create_group": true, "can_create_project": true, "two_factor_enabled": false "external": false, "private_profile": null } } ``` ## Get user by fingerprint of SSH key You can search for a user that owns a specific SSH key. Note only administrators can lookup SSH key with the fingerprint of an SSH key. ```plaintext GET /keys ``` | Attribute | Type | Required | Description | |:--------------|:-------|:---------|:------------------------------| | `fingerprint` | string | yes | The fingerprint of an SSH key | Example request: ```shell curl --header "PRIVATE-TOKEN: " "https://gitlab.example.com/api/v4/keys?fingerprint=ba:81:59:68:d7:6c:cd:02:02:bf:6a:9b:55:4e:af:d1" ``` If using sha256 fingerprint API calls, make sure that the fingerprint is URL-encoded. For example, `/` is represented by `%2F` and `:` is represented by`%3A`: ```shell curl --header "PRIVATE-TOKEN: " "https://gitlab.example.com/api/v4/keys?fingerprint=SHA256%3AnUhzNyftwADy8AH3wFY31tAKs7HufskYTte2aXo%2FlCg" ``` Example response: ```json { "id": 1, "title": "Sample key 1", "key": "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt1016k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa++Oi7Qkr8prgHc4soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0=", "created_at": "2019-11-14T15:11:13.222Z", "expires_at": "2020-05-05T00:00:00.000Z" "user": { "id": 1, "name": "Administrator", "username": "root", "state": "active", "avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon", "web_url": "http://0.0.0.0:3000/root", "created_at": "2019-11-14T15:09:34.831Z", "bio": null, "location": null, "public_email": "", "skype": "", "linkedin": "", "twitter": "", "website_url": "", "organization": null, "last_sign_in_at": "2019-11-16T22:41:26.663Z", "confirmed_at": "2019-11-14T15:09:34.575Z", "last_activity_on": "2019-11-20", "email": "admin@example.com", "theme_id": 1, "color_scheme_id": 1, "projects_limit": 100000, "current_sign_in_at": "2019-11-19T14:42:18.078Z", "identities": [ ], "can_create_group": true, "can_create_project": true, "two_factor_enabled": false, "external": false, "private_profile": false, "shared_runners_minutes_limit": null, "extra_shared_runners_minutes_limit": null } } ``` ## Get user by deploy key fingerprint > [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/119209) in GitLab 12.7. Deploy keys are bound to the creating user, so if you query with a deploy key fingerprint you get additional information about the projects using that key. Example request: ```shell curl --header "PRIVATE-TOKEN: " "https://gitlab.example.com/api/v4/keys?fingerprint=SHA256%3AnUhzNyftwADy8AH3wFY31tAKs7HufskYTte2aXo%2FlCg" ``` Example response: ```json { "id": 1, "title": "Sample key 1", "key": "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt1016k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa++Oi7Qkr8prgHc4soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0=", "created_at": "2019-11-14T15:11:13.222Z", "user": { "id": 1, "name": "Administrator", "username": "root", "state": "active", "avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon", "web_url": "http://0.0.0.0:3000/root", "created_at": "2019-11-14T15:09:34.831Z", "bio": null, "location": null, "public_email": "", "skype": "", "linkedin": "", "twitter": "", "website_url": "", "organization": null, "last_sign_in_at": "2019-11-16T22:41:26.663Z", "confirmed_at": "2019-11-14T15:09:34.575Z", "last_activity_on": "2019-11-20", "email": "admin@example.com", "theme_id": 1, "color_scheme_id": 1, "projects_limit": 100000, "current_sign_in_at": "2019-11-19T14:42:18.078Z", "identities": [ ], "can_create_group": true, "can_create_project": true, "two_factor_enabled": false, "external": false, "private_profile": false, "shared_runners_minutes_limit": null, "extra_shared_runners_minutes_limit": null }, "deploy_keys_projects": [ { "id": 1, "deploy_key_id": 1, "project_id": 1, "created_at": "2020-01-09T07:32:52.453Z", "updated_at": "2020-01-09T07:32:52.453Z", "can_push": false } ] } ```