Nombres de usuario Unicode

¿Qué estás usando? ¿El error parece de Python? Esto es compatible con requests, pero posiblemente no con las bibliotecas que estás usando.

In [1]: import requests

In [2]: api_key = '«redacted»'

In [3]: r = requests.get('https://try.discourse.org/u/运思/notifications.json', headers = {
  'api-key': api_key,
  'api-username': '运思'.encode()
})

In [4]: r.status_code
Out[4]: 200

In [5]: r.json()['users'][0]
Out[5]:
{'id': 41,
 'username': '运思',
 'name': 'Michael Brown',
 'avatar_template': '/user_avatar/try.discourse.org/运思/{size}/208_2.png',
 'trust_level': 1,
 'assign_icon': 'user-plus',
 'assign_path': '/u/运思/activity/assigned'}

Intenta llamar a .encode() para convertir explícitamente el valor del encabezado a bytes… aunque hay que admitir que, dado que no todo es 8-bit limpio, estoy de acuerdo con esta sugerencia:

es razonable.