syntax = "proto3"; package check_if_email_exists.v1; message CheckIfEmailExistsRequestProxy { string host = 1; uint32 port = 2; } message CheckIfEmailExistsRequest { string to_email = 1; string from_email = 2; string hello_name = 3; optional CheckIfEmailExistsRequestProxy proxy = 4; optional uint64 smtp_timeout = 5; bool yahoo_use_api = 6; optional uint32 smtp_port = 7; } enum Reachable { REACHABLE_UNSPECIFIED = 0; REACHABLE_SAFE = 1; REACHABLE_RISKY = 2; REACHABLE_INVALID = 3; REACHABLE_UNKNOWN = 4; } message MiscDetails { bool is_disposable = 1; bool is_role_account = 2; } message MxDetails { bool accepts_mail = 1; repeated string records = 2; } message SmtpDetails { bool can_connect_smtp = 1; bool has_full_inbox = 2; bool is_catch_all = 3; bool is_deliverable = 4; bool is_disabled = 5; } message SyntaxDetails { optional string email_address = 1; string domain = 2; bool is_valid_syntax = 3; string username = 4; } message CheckIfEmailExistsResponse { string input = 1; Reachable is_reachable = 2; oneof misc { MiscDetails misc_details = 3; string misc_error = 4; } oneof mx { MxDetails mx_details = 5; string mx_error = 6; } oneof smtp { SmtpDetails smtp_details = 7; string smtp_error = 8; } SyntaxDetails syntax = 9; } service Service { rpc CheckIfEmailExists(CheckIfEmailExistsRequest) returns (CheckIfEmailExistsResponse); }