Authentication
Prerequisites
Your Bold Penguin project team will provide you with a unique
client_id
,client_secret
, andAPI Key
per Bold Penguin environment.Additional credentials will be provided once the connection in the UAT environment is validated.
client_id
: (Provided by Bold Penguin)client_secret
: (Provided by Bold Penguin)x-api-key
: (Provided by Bold Penguin)
Endpoint
Staging
https://api-smartdata.di-beta.boldpenguin.com/auth/token?grant_type=client_credentials
Production
https://api.ii.boldpenguin.com/auth/token?grant_type=client_credentials
Step 1: Get the Auth Token
- You must submit the shared credentials as a basic authentication header.
- Combine your Client ID and Client Secret separated by a colon, (client_id:client_secret), then apply Base64 encoding.
Sample Authentication Request
POST /auth/token?grant_type=client_credentials HTTP/1.1
Host: api-smartdata.di-beta.boldpenguin.com
Authorization: Basic OXlXUHY5NTlqV1laWEsxSzVncmRKaW9MbnlYAll4U3Y6TkRVNFFwZ1BaUmFTS0F0elFuNkN0VDd5UkIyakd0ZkNINFVRRUNvblJkaGhKM0t6OE5IMkJBTkVCMkw1a2FOZg==
x-api-key: xxxxxxxxxxxxxxxxxxxxx
Sample Authentication Response
{
"access_token": "5ZhAzSrQCuyYct367GqfSnwE",
"token_type": "bearer",
"expires_in": 43200,
"refresh_token": "7EWVgH9bVdwBQTmeXH1HXJmV",
"scope": "",
"uid": "jkasd789-45ty-xa34-12dc-a4a240bk141",
"info": {
"name": "SmartData Integrations Service Client",
"email": null,
"first_name": "SmartData Integrations",
"last_name": "Service Client"
},
"extra": {
"raw_info": {
"user_id": "jkasd789-45ty-xa34-12dc-a4a240bk141",
"tenant_id": "jkasd789-45ty-xa34-12dc-a4a240bk141",
"tenant_name": "kowalski",
"tenant_subdomain": "kowalski",
"tenant_theme": "default",
"tenant_type": null,
"primary_user_group_id": "jkasd789-45ty-xa34-12dc-a4a240bk141",
"user_group_ids": [
"jkasd789-45ty-xa34-12dc-a4a240bk141"
],
"name": "SmartData Integrations Service Client",
"email": null,
"first_name": "SmartData Integrations",
"last_name": "Service Client",
"phone": null,
"permissions": [
"::data/v2:get",
"::universal/v3/universal-submit:get",
"::universal/v3/universal-submit:post",
"::audit/v1/report:get",
"::location/v1/location_submit:post",
"::company/v1/quick_submit:post",
"::company/v1/company_submit:post"
],
"auth_uid": null,
"created_at": "2021-05-06T15:24:53.870Z",
"tenant_created_at": "2021-05-06T15:24:18.941Z",
"completed_steps": [],
"accepted_agreements": [],
"plan_sku": null,
"sub_status": null
}
}
}
Tokens expire after 12 hours, after this point you can use the refresh_token to refresh the token, or request a new access_token using the steps above.