Files
Gainsight/Scripts/API_Tests/antho-map-domains-from-csv.py

53 lines
1.4 KiB
Python
Raw Normal View History

import pandas as pd
import requests
import Apikeys
MASTER = "~/Downloads/Anthology-Master-CSV-FirstChanges.csv"
BASEURL = "https://api.northpass.com/v2/people"
APIKEY = Apikeys.ANTHOLOGY
HEADERS = {
"accept": "*/*",
"X-Api-Key": APIKEY,
"content-type": "application/json",
}
df = pd.read_csv(MASTER)
df.dropna(how="all", axis=0, inplace=True)
COUNT = 0
for row in df.itertuples():
domain = row[1]
groups = row[2:]
# groups = list(groups)
tmplist = []
for group in groups:
group = str(group)
if "nan" not in group:
# Grab Group UUIDs
url = f"https://api.northpass.com/v2/groups?filter[name][eq]={group}"
response = requests.get(url, headers=HEADERS)
response = response.json()
data = response["data"]
for name in data:
id = name["id"]
tmplist.append(id)
rowdict = {domain: tmplist}
# Grab all people
personlist = []
COUNT += 1
url = BASEURL + f"?filter[email][cont]={domain}&limit=100"
response = requests.get(url, headers=HEADERS)
response = response.json()
nextlink = response["links"]
for data in response["data"]:
person = data["id"]
personlist.append(person)
# if "next" not in nextlink:
# break
# Construct Payload for Bulk API
payload = {"payload": {"person_ids": personlist, "group_ids": tmplist}}
print(payload)