Why am I getting error 405 when doing a PUT request and not when doing a GET or POST
Sorry maybe I misunderstand, but the v3 contacts API has no documented PUT method for that endpoint, so an error would be expected. It does have a PATCH method though: https://developers.hubspot.com/docs/api/crm/contacts