This page describes how to use the API key methods to:
- List API keys in a project
- Get metadata for an API key
- Get the key string
- Get the key name and project for a key string
Before you begin
The page uses curl and the Google Cloud CLI to send requests to the API Keys API. See Getting started with the API Keys for details on getting set up to experiment with the API.
Listing API keys in a project
You can get a list of all the keys owned by a Google Cloud project with the ListKeys method:
gcurl https://apikeys.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/keys
On success, you get a response similar to the following:
{ "keys": [ { "name": "projects/12345678/locations/global/keys/2885bf87-5b84-47fa-92af-08c3e9337349", "displayName": "API key 2", "createTime": "2019-05-29T22:07:22.036Z", "uid": "2885bf87-5b84-47fa-92af-08c3e9337349", "updateTime": "2019-05-29T22:07:22.058623Z", "restrictions": { "androidKeyRestrictions": {} }, "etag": "zHib8eXEMCxe4ayQEbIaZg==" }, { "name": "projects/12345678/locations/global/keys/a4db08b7-5729-4ba9-8c08-f2df493465a1", "displayName": "API key 1", "createTime": "2019-05-29T22:06:58.844Z", "uid": "a4db08b7-5729-4ba9-8c08-f2df493465a1", "updateTime": "2019-05-29T22:06:58.855103Z", "restrictions": { "androidKeyRestrictions": {} }, "etag": "0L5KcPMGoNi53K5+FqPxiw==" } ] }By default, the ListKeys method returns a list of the usable API keys. To view the list of all keys, including keys that are marked for deletion, add the query parameter show_deleted=true:
gcurl https://apikeys.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/keys?show_deleted=true
On success, you get a response similar to the following:
{ "keys": [ { "name": "projects/12345678/locations/global/keys/5d3564ad-f08e-48df-b0ca-0f50858ba3f2", "displayName": "Key 1", "createTime": "2019-06-12T04:47:30.214Z", "uid": "5d3564ad-f08e-48df-b0ca-0f50858ba3f2", "updateTime": "2021-03-05T22:35:37.387645Z", "deleteTime": "2021-03-05T22:35:37.290544Z", "etag": "V96UGAyyz+6sUHttzK42pQ==" }, { "name": "projects/12345678/locations/global/keys/7ad567fa-c11b-4903-99dc-88f89da7d73a", "displayName": "Key 2", "createTime": "2019-06-12T00:47:27.778Z", "uid": "7ad567fa-c11b-4903-99dc-88f89da7d73a", "updateTime": "2021-03-05T22:23:57.002187Z", "deleteTime": "2021-03-05T22:23:56.350234Z", "etag": "njPE6YjwHlrh6TLyxHibBg==" }, { "name": "projects/12345678/locations/global/keys/a4db08b7-5729-4ba9-8c08-f2df493465a1", "displayName": "API key 1", "createTime": "2019-05-29T22:06:58.844Z", "uid": "a4db08b7-5729-4ba9-8c08-f2df493465a1", "updateTime": "2019-05-29T22:06:58.855103Z", "restrictions": { "androidKeyRestrictions": {} }, "etag": "0L5KcPMGoNi53K5+FqPxiw==" } ] }The deleteTime field stores when the delete command was issued. Keys are permanently deleted 30 days after the delete command was issued.
If you have a lot of API keys in your project, you might prefer to page the results rather than having all of the keys returned. To control the number or results per page, add the pageSize query parameter set to the number of results that you want returned:
gcurl https://apikeys.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/keys?pageSize=25
The end of the response contains the nextPageToken field. To get the next page of results, include the token in the next call by adding the pageToken query parameter:
gcurl 'https://apikeys.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/keys?pageSize=25&pageToken=TOKEN'
Note that you have to surround the URL in single quotes because the & is a special Bash character.
Getting metadata for an API key
To get metadata about a specific API key, call the GetKey method with the Key.name:
gcurl https://apikeys.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/keys/KEY_ID
Getting the key string
For security, the ListKeys and GetKey methods don't return the Key.keyString. To get the keyString for an API key, call the GetKeyString method with the Key.name:
gcurl https://apikeys.googleapis.com/v2/Key.name/keyString
The calling user must have the apikeys.keys.getKeyString permission to call the GetKeyString method.
Looking up a key name and project by key string
If you have a keyString and you need to lookup the key name and the project that owns the API key, call the LookupKey method and specify the keyString query parameter:
gcurl https://apikeys.googleapis.com/v2/keys:lookupKey?keyString=KEY_STRING
The response is similar to the following:
{ "parent": "projects/12345678/locations/global", "name": "projects/12345678/locations/global/keys/2c437be3-1c77-417b-8f6f-748189760227" }In the response:
- The
parentfield contains the project number of the Google Cloud project in which the API key was created. - The
namefield contains the unique identifier for the API key.