I created a username checker against the Ubisoft api. However the requests are fairly slow so I wanted to speed it up, and one thing I thought of was multithreading. I know about pools and such but I've got no clue how to use it in an api request like here.
def check():
    global checkedCount
    global availableCount
    headers = {
                'Method':'GET',
                'Authority':'public-ubiservices.ubi.com',
                'referer':'https://lb-prod-acc_ount-pdc.ubisoft.com',
                'Ubi-AppId':'c5393f10-7ac7-4b4f-90fa-21f8f3451a04',
                'Authorization': authToken,
                'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36',
                'Ubi-RequestedPlatformType':'uplay'}
    for name in usernameList:
        r = requests.get("https://public-ubiservices.ubi.com/v3/profiles?nameOnPlatform=" + name + "&platformType=uplay", headers=headers)  
        while r.status_code != 200: #retry on rate limit
            r = requests.get("https://public-ubiservices.ubi.com/v3/profiles?nameOnPlatform=" + name + "&platformType=uplay", headers=headers)  
        if not r.json()['profiles']:
            availableCount += 1
            checkedCount += 1
            print(f"{Fore.CYAN}[$]{Fore.RESET} {name} is available")
        else: 
            checkedCount += 1
            print(f"{Fore.CYAN}[$]{Fore.RESET} {name} is unavailable")
Don't say it's a duplicate question. Because I'm not trying to use multiple url's like other questions.