--- 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/product/ux/technical-writing/#assignments" type: reference, api --- # Keys API **(FREE)** If using a SHA256 fingerprint in an API call, you should URL-encode the fingerprint. ## 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", "usage_type": "auth", "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" ``` 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", "usage_type": "auth", "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 Deploy keys are bound to the creating user. If you query with a deploy key fingerprint, you get additional information about the projects using that key. Example request with an MD5 fingerprint: ```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" ``` In this SHA256 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", "usage_type": "auth", "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 } ] } ```