Python Platform SDK bulk user creation rate limiting and serialization issues

I am writing a Python script to bulk-create users from a CSV file using the Genesys Cloud Platform SDK. The goal is to automate onboarding for a new shift. I have the CSV parsed and the user objects constructed, but I am hitting two issues. First, the CreateUser method seems to serialize the user_profile incorrectly when I pass a custom JSON string for the user_profile field. The API expects a specific structure, and the SDK is wrapping it in extra quotes, causing a 400 Bad Request. Second, I am getting 429 Too Many Requests errors after about 10 calls. I know there is a rate limit, but I am not sure how to implement exponential backoff cleanly with the SDK’s async client. Here is a snippet of how I am calling the API:

from genesyscloud.platform_client import PlatformClient
from genesyscloud.platform_client.models import CreateUserRequest

client = PlatformClient.init_from_credentials_file('config.json')
users_api = client.users()

for row in csv_data:
 user_req = CreateUserRequest(
 name=row['name'],
 email=row['email'],
 user_profile={'department': row['dept']}, # This part is failing
 roles=[row['role_id']]
 )
 try:
 response = users_api.post_users(body=user_req)
 except Exception as e:
 print(f"Failed: {e}")

The error message says invalid type for user_profile. I tried passing a dict, but the SDK validator complains. Also, how do I handle the 429s without blocking the main thread? I tried a simple time.sleep(1) but it’s too slow for 500 users. Is there a built-in retry policy in the Python SDK I can configure? I don’t want to write my own retry logic if it’s already there. Any help on the correct payload structure and rate limit handling would be appreciated.