Getting Tokens for the Performance API

 

The performance API requires a ThingSpace Oauth token and a VZ-M2M token for access and use. The following instructions cover how to get these tokens.

Note: This Performance API is for MEC associated  and TS onboarded devices only. You must register for ThingSpace and sign in to be able to get keys and generate tokens to work with devices in your Verizon account.

 

Step 1: Obtaining a ThingSpace Token (bearer token) Programmatically

 

Your application must send an API token in the header of every API request. We use the OAuth2 “client credentials” grant type, and we require that the application key and secret are Base64 encoded. To obtain an API token:

  1. Sign in to thingspace.verizon.com.
  2. Click your name, select Account settings and click Key Management.
  3. Copy the key and the secret and store them in a secure place for your application to use.
  4. Concatenate the key and the secret, with a colon between them, like this:
    my_key_value:my_secret_value
  5. Encode the entire string in Base64 format. (To learn more about encoding in Base64 format, visit https://www.base64encode.org/.)
  6. Send a POST request to https://thingspace.verizon.com/api/ts/v1/oauth2/token with the encoded string in the header. 

example:

curl -X POST -d "grant_type=client_credentials" -H "Authorization: Basic BASE64_ENCODED_APP_KEY_AND_SECRET" -H "Content-Type: application/x-www-form-urlencoded" "https://thingspace.verizon.com/api/ts/v1/oauth2/token"

The response will contain a token that you must include in the header of all API requests. The token will be valid for one hour from when it was first issued, and any further token requests during that hour will return the same token.

You can revoke a token with this request format (use your token in place of TokenToRevoke) and then the next token request will return a new token:

curl -i -X POST -H "Authorization: Basic BASE64_ENCODED_APP_KEY_AND_SECRET" -H "Content-Type: application/x-www-form-urlencoded" -d "grant_type=client_credentials&token=TokenToRevoke" "https://thingspace.verizon.com/api/ts/v1/oauth2/revoke"

 

Step 2: UWS Login credentials (VZ-M2M token)

 

This API requires a special set of credentials that are associated with one or more Verizon business accounts and allow you to manage M2M and IoT devices through an API. These credentials are sometimes called “UWS credentials” or a “UWS account.”

  • If you don’t have a Verizon Enterprise account, you can request a trial account when you are ready to test with active devices on the Verizon Wireless network.
  • If your company is an existing Verizon Enterprise Customer, you can contact your sales team to request UWS credentials.

 

Obtaining a VZ-M2M Session Token Programmatically

 

To send API requests, you must use your UWS credentials to authenticate with the POST https://thingspace.verizon.com/develop/api/m2m/v1/session/login endpoint at the beginning of each API session. You must put the VZ-M2M session token from the response in the header of all other API requests. To obtain a VZ-M2M session token:

  1. Follow the instructions above to get a ThingSpace token.
  2. Send a POST /api/m2m/v1/session/login request with the ThingSpace token in the header and your UWS username and password in the body.

Example:

curl --request POST 'https://thingspace.verizon.com/api/m2m/v1/session/login' \
--header ‘Content-Type: application/json’ \
--header ‘Authorization: Bearer <token from step 1’ \
--data-raw ‘{“username”:“username here”, “password”:“credentials”}’

The response will contain a sessionToken, which you can use for the VZ-M2M-Token value in the header of all subsequent requests. The token will remain valid as long as your application continues to use it, but it will expire after 20 minutes of inactivity.

Note: All API calls after the session/login request must have both the ThingSpace token and the sessionToken in the header.