diff --git a/README.md b/README.md
index 549cdaf..b4a0f0c 100644
--- a/README.md
+++ b/README.md
@@ -893,8 +893,25 @@ simple_spark.recipient_lists.delete(your_list_id)
see SparkPost API Documentation
+
+### Recipient Validation
+
+#### Validate
+
+Validates a single recipient by email address.
+
+```ruby
+simple_spark.recipient_validation.validate('rcpt1@example.com')
+```
+
+see SparkPost API Documentation
+
## Changelog
+### 1.0.13
+
+- Add Recipient Validation Endpoint
+
### 1.0.12 Fix param name on suppression list https://github.com/leadmachineapp/simple_spark/pull/27
### 1.0.10 / 1.0.11 Minor documentation updates
diff --git a/lib/simple_spark.rb b/lib/simple_spark.rb
index 01292bc..3c2090f 100644
--- a/lib/simple_spark.rb
+++ b/lib/simple_spark.rb
@@ -11,6 +11,7 @@
require 'simple_spark/endpoints/events'
require 'simple_spark/endpoints/webhooks'
require 'simple_spark/endpoints/recipient_lists'
+require 'simple_spark/endpoints/recipient_validation'
require 'simple_spark/endpoints/relay_webhooks'
require 'simple_spark/endpoints/subaccounts'
require 'simple_spark/endpoints/suppression_list'
diff --git a/lib/simple_spark/client.rb b/lib/simple_spark/client.rb
index a2825ab..41b6d8d 100644
--- a/lib/simple_spark/client.rb
+++ b/lib/simple_spark/client.rb
@@ -155,5 +155,9 @@ def suppression_list
def recipient_lists
Endpoints::RecipientLists.new(self)
end
+
+ def recipient_validation
+ Endpoints::RecipientValidation.new(self)
+ end
end
end
diff --git a/lib/simple_spark/endpoints/recipient_validation.rb b/lib/simple_spark/endpoints/recipient_validation.rb
new file mode 100644
index 0000000..11984e2
--- /dev/null
+++ b/lib/simple_spark/endpoints/recipient_validation.rb
@@ -0,0 +1,31 @@
+module SimpleSpark
+ module Endpoints
+ # Provides access to the /recipient-validation endpoint
+ # @note Example validation
+ # {
+ # "valid": false,
+ # "result": "undeliverable",
+ # "reason": "Invalid Domain",
+ # "is_role": false,
+ # "is_disposable": false,
+ # "is_free": false
+ # }
+ # @note See: https://developers.sparkpost.com/api/recipient-validation/
+ class RecipientValidation
+ attr_accessor :client
+
+ def initialize(client)
+ @client = client
+ end
+
+ # Validate a recipient email address.
+ # @param address [String] the email address to validate
+ # @return [Hash] a Recipient Validation hash object
+ # @note See: https://developers.sparkpost.com/api/recipient-validation/#recipient-validation-get-email-address-validation
+ def validate(address)
+ address = @client.url_encode(address)
+ @client.call(method: :get, path: "recipient-validation/single/#{address}")
+ end
+ end
+ end
+end
diff --git a/lib/simple_spark/version.rb b/lib/simple_spark/version.rb
index 7bd03fb..a2a576e 100644
--- a/lib/simple_spark/version.rb
+++ b/lib/simple_spark/version.rb
@@ -1,3 +1,3 @@
module SimpleSpark
- VERSION = "1.0.12"
+ VERSION = "1.0.13"
end
diff --git a/spec/simple_spark/client_spec.rb b/spec/simple_spark/client_spec.rb
index 06467dd..bccbce1 100644
--- a/spec/simple_spark/client_spec.rb
+++ b/spec/simple_spark/client_spec.rb
@@ -104,6 +104,10 @@
specify { expect(client.recipient_lists.class).to eq(SimpleSpark::Endpoints::RecipientLists) }
end
+ context 'recipient_validation' do
+ specify { expect(client.recipient_validation.class).to eq(SimpleSpark::Endpoints::RecipientValidation) }
+ end
+
end
end
end