I am using python requests library to make HTTP calls. However website bot detection is using JA3 fingerprint verification and blocking me.

Is there any way I can spoof the JA3 signature.

  • While you can have control over the offered ciphers I doubt that you have that much control about the TLS extensions from inside Python requests or even from Python ssl lib in general. Maybe you can spoof specific JA3 fingerprints by manipulating the accepted ciphers. But likely you cannot spoof arbitrary ones. Aug 11, 2020 at 20:40
  • How to spoof specific JA3 fingerprints ?
    – Ditti
    Aug 11, 2020 at 20:42
  • First, you have to figure out what exactly you need to change compared to what you currently have, i.e. compare ClientHello from an accepted client with yours from the perspective of how JA3 works. If all you need to change is the list and order of offered ciphers then see How to select specific the cipher while sending request via python request module. If other things need to change you likely have lost, at least with Python requests. Aug 11, 2020 at 20:47

1 Answer 1


you can try to use the https://pypi.org/project/curl-cffi/ which wrapped the curl-impersonate.

  • While we tend not to suggest a specific product/project as an answer, this satisfies the basics of an answer. It explains what it does and how it works. So, as a note to others, I'm allowing this one.
    – schroeder
    Nov 11 at 10:12

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .