Skip to main content

Authentication

Prerequisites

  • Your Bold Penguin project team will provide you with a unique client_id, client_secret, and API 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.