Did you specify the content-type header in the request?
I haven’t looked at the Python code in a while and don’t immediately know how to specify the content-type header with requests. Though, I think you need to do this.
I did a test with client mode that worked.
You can also use curl as an intermediary step and then move to Python once you have the prototype working.
I suspect you need to set the content-type header with Python requests. If you get it working, please post an example.