The new login is using a public key endpoint to encrypt the password before sending. I have a php integration, this worked for me, hopefully this helps: $password = "yourPassword"; // Sunsynk account password // 1. Generate nonce & sign $nonce = (string) round(microtime(true) * 1000); $source = "sunsynk"; $sign = md5($nonce . $source); // 2. Fetch publicKey $pubKeyUrl = "https://api.sunsynk.net/anonymous/publicKey?nonce=$nonce&source=$source&sign=$sign"; $ch = curl_init($pubKeyUrl); curl_setopt_array($ch, [ CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => ["Accept: application/json"] ]); $pubKeyResponse = curl_exec($ch); curl_close($ch); $data = json_decode($pubKeyResponse, true); $publicKeyBase64 = $data['data']; // 3. Build PEM-formatted key $publicKeyPem = "-----BEGIN PUBLIC KEY-----\n" . chunk_split($publicKeyBase64, 64, "\n") . "-----END PUBLIC KEY-----\n"; // 4. Encrypt password with RSA $encrypted = null; openssl_public_encrypt($password, $encrypted, $publicKeyPem, OPENSSL_PKCS1_PADDING)); $encryptedPassword = base64_encode($encrypted); Then call the new oauth endpoint with the encrypted password