python requests post cert key

Python Requests POST Cert Key

If you want to make a POST request in Python using the Requests library and need to provide a certificate key, you can do so by passing the certificate file and key file paths as a tuple to the cert parameter.


Say you have a certificate file named mycert.pem and a key file named mykey.pem, both located in the same directory as your Python script. You can make a POST request with these certificates like so:

import requests

url = ''
cert = ('mycert.pem', 'mykey.pem')

payload = {'username': 'johndoe', 'password': 'secret'}
response =, cert=cert, data=payload)


The cert parameter expects a tuple containing the path to the certificate file and the path to the key file. If your certificate requires a passphrase, you can pass it as a string in a third item in the tuple like so:

cert = ('mycert.pem', 'mykey.pem', 'passphrase')

This will prompt for the passphrase when the request is made.

If you have multiple certificates, you can provide them as a list of tuples:

certs = [('mycert1.pem', 'mykey1.pem'), ('mycert2.pem', 'mykey2.pem')]

And then pass the certs parameter:

response =, certs=certs, data=payload)

Make sure the certificate and key files are in the correct format and match the server's requirements.