Create a Service User in PrecisionLender Administration tab
import http.client
import getpass
import json
from io import StringIO
import os
clientid = "a9cdadd4-1324-4a7a-842e-fe8fc9fe37f1"
username = "L3_Workbench_Service_User"
password = getpass.getpass()
········
Connect to L3 Workbench as Service User
conn = http.client.HTTPSConnection("api.precisionlender.com")
headers = {
'clientid': clientid,
'username': username,
'password': password
}
conn.request("POST", "/L3/v1/workbench/auth", headers=headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
{"token_type":"Bearer","expires_in":3599,"ext_expires_in":3599,"access_token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6ImtnMkxZczJUMENUaklmajRydDZKSXluZW4zOCIsImtpZCI6ImtnMkxZczJUMENUaklmajRydDZKSXluZW4zOCJ9.eyJhdWQiOiJodHRwczovL3N0b3JhZ2UuYXp1cmUuY29tIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvZjA2ZDQ1OWItZDkzNS00YWQ3LWE5ZDMtYTgyMzQzYzRjOWRhLyIsImlhdCI6MTYwNjkyNTA1MiwibmJmIjoxNjA2OTI1MDUyLCJleHAiOjE2MDY5Mjg5NTIsImFpbyI6IkUyUmdZRGl5T0p2bGpkaXBSOWFXUFBkVEdJL05Cd0E9IiwiYXBwaWQiOiIwN2JlNDJlYS0xY2Y2LTQ5YTYtYmIzYy1lMTVmOGU2Y2U2MTciLCJhcHBpZGFjciI6IjEiLCJpZHAiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC9mMDZkNDU5Yi1kOTM1LTRhZDctYTlkMy1hODIzNDNjNGM5ZGEvIiwib2lkIjoiNDhlYzMyMzgtYTZjZi00NTYwLWE4MjAtYzBiNjgzOGE1NGI5IiwicmgiOiIwLkFBQUFtMFZ0OERYWjEwcXAwNmdqUThUSjJ1cEN2Z2YySEtaSnV6emhYNDVzNWhkYkFBQS4iLCJzdWIiOiI0OGVjMzIzOC1hNmNmLTQ1NjAtYTgyMC1jMGI2ODM4YTU0YjkiLCJ0aWQiOiJmMDZkNDU5Yi1kOTM1LTRhZDctYTlkMy1hODIzNDNjNGM5ZGEiLCJ1dGkiOiJuejU5d1pURzJrQzEya1pSWjhzVUFBIiwidmVyIjoiMS4wIn0.nKZdCxxwjE3ErGE5wK9oTu_wV2IW2rgjDZylcwcN76CCdSumoqVUHtBFCzF4eHrWtmExR_a7gqkXr9QxVuWIluh3HWi3fryj8iFcDLopkbFMSFPIWK3c4knJlRNt0mLnsytGGqLAF3ZZ0ia0mRJ5BCaZ0g5W-X9wMt9hx3lcac-1an82U6CBpue-K40pS1VnQ96vm6m1DE4QxBjfUbf6pD6ZSSiijHx78Juxwcm_vWpGpQIpS-aENtnzDQ_JknsilsO138Bey5zFhiXbCEuMLvb_PLtWyVw3kBrVKDgieUMpEk-X4L_84NWLwFBl4q99RVz7YXmhKVidjARYaJCs8A"}
access_token = eval(data.decode("utf-8"))["access_token"]
print(access_token)
eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6ImtnMkxZczJUMENUaklmajRydDZKSXluZW4zOCIsImtpZCI6ImtnMkxZczJUMENUaklmajRydDZKSXluZW4zOCJ9.eyJhdWQiOiJodHRwczovL3N0b3JhZ2UuYXp1cmUuY29tIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvZjA2ZDQ1OWItZDkzNS00YWQ3LWE5ZDMtYTgyMzQzYzRjOWRhLyIsImlhdCI6MTYwNjkyNTA1MiwibmJmIjoxNjA2OTI1MDUyLCJleHAiOjE2MDY5Mjg5NTIsImFpbyI6IkUyUmdZRGl5T0p2bGpkaXBSOWFXUFBkVEdJL05Cd0E9IiwiYXBwaWQiOiIwN2JlNDJlYS0xY2Y2LTQ5YTYtYmIzYy1lMTVmOGU2Y2U2MTciLCJhcHBpZGFjciI6IjEiLCJpZHAiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC9mMDZkNDU5Yi1kOTM1LTRhZDctYTlkMy1hODIzNDNjNGM5ZGEvIiwib2lkIjoiNDhlYzMyMzgtYTZjZi00NTYwLWE4MjAtYzBiNjgzOGE1NGI5IiwicmgiOiIwLkFBQUFtMFZ0OERYWjEwcXAwNmdqUThUSjJ1cEN2Z2YySEtaSnV6emhYNDVzNWhkYkFBQS4iLCJzdWIiOiI0OGVjMzIzOC1hNmNmLTQ1NjAtYTgyMC1jMGI2ODM4YTU0YjkiLCJ0aWQiOiJmMDZkNDU5Yi1kOTM1LTRhZDctYTlkMy1hODIzNDNjNGM5ZGEiLCJ1dGkiOiJuejU5d1pURzJrQzEya1pSWjhzVUFBIiwidmVyIjoiMS4wIn0.nKZdCxxwjE3ErGE5wK9oTu_wV2IW2rgjDZylcwcN76CCdSumoqVUHtBFCzF4eHrWtmExR_a7gqkXr9QxVuWIluh3HWi3fryj8iFcDLopkbFMSFPIWK3c4knJlRNt0mLnsytGGqLAF3ZZ0ia0mRJ5BCaZ0g5W-X9wMt9hx3lcac-1an82U6CBpue-K40pS1VnQ96vm6m1DE4QxBjfUbf6pD6ZSSiijHx78Juxwcm_vWpGpQIpS-aENtnzDQ_JknsilsO138Bey5zFhiXbCEuMLvb_PLtWyVw3kBrVKDgieUMpEk-X4L_84NWLwFBl4q99RVz7YXmhKVidjARYaJCs8A
filesystem = "datamart"
path = "/L3/v1.0/Documentation/L3/Data/Dictionary/InstancePartition=7d8cd6f2-0dbe-4c10-9e05-9beccee6614a/VersionPartition=v1.0/DatePartition=20200312/DataDictionary.html"
headers = {
'clientid': clientid,
'authorization': "Bearer " + access_token
}
conn.request("GET", "/L3/v1/workbench/" + filesystem + path, headers=headers)
# conn.request("GET", path, headers=headers)
res = conn.getresponse()
data = res.read()
Write as CSV file into Downloads folder
os.chdir('C:\\Users\\THepner\\Downloads\\')
with open("DataDictionary.html", 'wb') as outfile:
outfile.write(data)