How to generate an IBM Cloud token from an API Key

2/6/2020

I have generated an API key for IBM Cloud, how do I programmatically generate a token from the API key?

-- Jeff Sloyer
ibm-cloud
ibm-cloud-iam
ibm-cloud-infrastructure
ibm-cloud-kubernetes

1 Answer

2/6/2020

Here is a curl request to do that.

curl --location --request POST 'https://iam.cloud.ibm.com/identity/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: Basic Yng6Yng=' \
--data-urlencode 'apikey=xxx' \
--data-urlencode 'response_type=cloud_iam' \
--data-urlencode 'grant_type=urn:ibm:params:oauth:grant-type:apikey'

Replace xxx with your API key.

The basic authorization is base64 encoded with a username of bx and a password of bx.

The response looks like the following:

{
    "access_token": "bearer token",
    "refresh_token": "refresh token",
    "token_type": "Bearer",
    "expires_in": 3600,
    "expiration": 1581031424,
    "scope": "ibm openid"
}
-- Jeff Sloyer
Source: StackOverflow