Skip to main content


8x8 Support

Cloud Storage Service Public API, Creating keys and authenticating


Create keys and authenticate to use the Cloud Storage Service Public API.

Applies To

  • Admin Console
  • Cloud Storage Service Public API


Assign the Storage API Role to a User

Note: The user will need both Application Credentials and Storage API permissions to create a Cloud Storage Service Public API. This assignment must be granted by the Super Admin. You can add Application Credentials to the user by creating a new custom role and assigning it to the user or assigning an existing role that has this permission in Admin Console.

  1. Log in to 8x8 Admin Console as the Super/Primary administrator.
  2. From the upper left hamburger menu, select Roles & Permissions.
  3. Select Assignments.
  4. Select + Create Assignment.
  5. Select the user to whom you wish to assign the Storage API role.
  6. Under Role, select Storage API.
  7. Select the appropriate Scope.
  8. Select Save.

Admin Console Create assignments storage api.png

Admin Console Role Assignment Storage Api.png

Create an API Key for Call Recordings & Storage

  1. Have the user with the Storage API role log in to 8x8 Admin Console.
  2. Select API Keys.
  3. Select Create App.
  4. Enter a name for the app.
  5. Under API Products, select Call Recordings & Storage.
  6. Select Save.

Admin Console API Keys Call recordings Storage.png

Authentication for 8x8 Cloud Storage Service Public API

Request an access token from the 8x8 Authorization Server using Basic Authorization with your key and secret as the username and password, respectively.

  1. Combine and then encode your client credentials as a Base64 string.
  2. Make a POST request to the 8x8 Authorization Server using your encoded credentials string in the Authorization header.
  3. Obtain your access token from the server response.

Example Request (cURL)

In this example, we have provided cURL with the key and secret (cURL will generate the Authorization header)

curl --request POST --url -u 'key:secret' --header 'Content-type: application/x-www-form-urlencoded' --data grant_type=client_credentials

In this example, we have manually encoded the client credentials as a Base64 string and added the Authorization header

curl --request POST \
  --url \
  --header 'Authorization: Basic am9**********w=='\
  --header 'Content-type: application/x-www-form-urlencoded' \
  --data grant_type=client_credentials

Example Response

  "expires_in": "3599",
  "token_type": "BearerToken",
  "issued_at": "1583852755661",
  "access_token": "KyD***********************fa",
  "application_name": "059f3e8d-e624-4f98-be6c-4f2616db52cf",
  "scope": "",
  "expires_in": "3599",
  "status": "approved"

In the Example Response, the access token is KyD***********************fa and the indicated expiration time is indicated by "expires_in": "3599" (3599 seconds or slightly less than 1 hour).

Example Request & Response (Postman)

Postman API Authentication.png

8x8 Cloud Storage Service Public API

Use the access token as the Bearer Token when making requests to the 8x8 Cloud Storage Service Public API.


These examples use the us-west region in the URL, you will need to use the correct region for your PBX/Tenant.

Please see knowledge base article: Cloud Storage Service Public API, Region Discovery.

Example Request to Get All Objects (cURL)

curl --location --request GET '' \
--header 'Authorization: Bearer KyD***********************fa'

Example Request & Response to Get All Objects (Postman)

Postman 8x8 Cloud Storage Service Public API Object.png