Use the WordPress default API with the post endpoint to check if a post is password protected.
https://pda.com/wp-json/wp/v2/posts2/123

For the API to return the password form for protected content, add the following function into your (child) theme functions.php
if ( ! function_exists( 'ppwp_rest_prepare_post' ) ) {
add_filter( 'rest_prepare_post', 'ppwp_rest_prepare_post', 10, 3 );
function ppwp_rest_prepare_post( $response, $post, $request ) {
if ( ! function_exists( 'ppw_core_render_login_form' ) ) {
return $response;
}
if ( ! isset( $response->data['id'] ) || ! isset( $response->data['content'] ) ) {
return $response;
}
$is_protected = post_password_required( $response->data['id'] );
if ( $is_protected ) {
$response->data['content']['protected'] = true;
$response->data['content']['rendered'] = ppw_core_render_login_form();
}
return $response;
}
}
The API returns the password form if the content is not protected

Otherwise, it will return the content as usual.
