import requests import Apikeys import pandas as pd BASEURL = "https://api2.northpass.com/v2/" APIKEY = Apikeys.SUPPLIERPROD HEADERS = {"X-Api-Key": APIKEY, "accept": "application/json"} LISTGROUPS = "groups/" FINALDICT = {} def get_groups(): count = 0 groups_list = [] while True: count += 1 groupsurl = f"{BASEURL}{LISTGROUPS}?limit=100&page={count}" groupsreq = requests.get(groupsurl, headers=HEADERS) groupson = groupsreq.json() nextlink = groupson["links"] for grous in groupson["data"]: grouple = (grous["id"], grous["attributes"]["name"]) groups_list.append(grouple) if "next" not in nextlink: break # get_memberships(groups_list) df = pd.DataFrame.from_records(groups_list) print(df) df.to_csv("~/Downloads/Supplier_Groups.csv") def get_memberships(groups_list): for gids, ginames in groups_list: count2 = 0 members_list = [] while True: count2 += 1 group_uuid = gids LISTMEMBERS = f"{group_uuid}/memberships" membersurl = f"{BASEURL}{LISTGROUPS}{LISTMEMBERS}?limit=100&page={count2}" memreq = requests.get(membersurl, headers=HEADERS) members = memreq.json() nextlink = members["links"] for person in members["included"]: email = person["attributes"]["email"] members_list.append(email) if "next" not in nextlink: break FINALDICT[ginames] = members_list df = pd.DataFrame.from_dict(FINALDICT, orient='index') print(df) df.to_csv("~/Downloads/Skan_Groups_Members.csv") if __name__ == "__main__": get_groups()