The api_key is set as a module global and then subsequently imported internally in the AbstractAPI class. Changing the api_key on one thread can impact the value of api_key on another thread in between changing it and invoking the api. Because of this it's not possible to safely support making requests to the beyonic api on behalf of multiple users from a threaded python server. Ideally there would be a way to create an instance of the api client that does not share state with other threads.