Skip to main content

Ruby Integration

Using the standard net/http library.

require 'net/http'
require 'json'
require 'uri'

def validate_email(email, api_key)
uri = URI.parse("https://api.checkemail.dev/validate?email=#{URI.encode_www_form_component(email)}")

request = Net::HTTP::Get.new(uri)
request["x-api-key"] = api_key

response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
http.request(request)
end

if response.code == "200"
data = JSON.parse(response.body)
confidence = data["confidence"]
validations = data["validations"]

if confidence["status"] == "DISPOSABLE" || validations["is_disposable"]
return { valid: false, reason: "disposable" }
end

if confidence["alias_status"] == "ALIAS_CONFIRMED"
# Use confidence["canonical_email"] for deduplication
end

return { valid: (confidence["status"] == "LIKELY"), result: data }
end

{ valid: false, reason: "error" }
end

# Usage
status = validate_email("[email protected]", "ce_d_...")
puts "Is valid: #{status[:valid]}"