CheckHim Ruby SDK
RubyGems.org Listing ยท Project Site
Official Ruby client for the CheckHim Number Verification API.
Key Features
- Simple, expressive API
- Robust, typed error mapping
- Lightweight (no heavy HTTP dependencies)
- Built-in timeouts and sensible defaults
- Thread-safe client (no global mutable state)
Installation
Add to your Gemfile:
gem 'checkhim'Or install directly:
gem install checkhimQuick Start
require 'checkhim'
client = CheckHim::Client.new('ch_test_your_api_key')
begin
result = client.verify('+5511984339000')
puts "Valid: #{result.valid?} Carrier: #{result.carrier}"
rescue CheckHim::Error => e
warn "Error: #{e.message} (#{e.code})"
endSuccessful Response
{
"carrier": "Oi",
"valid": true
}Error Response Format
{
"error": "verification failed: Network is forbidden (code: 6)",
"code": "REJECTED_NETWORK"
}Error Classes
All errors inherit from CheckHim::Error.
| Code | Class | Meaning |
|---|---|---|
| REJECTED_NETWORK | CheckHim::RejectedNetwork | Network forbidden |
| REJECTED_PREFIX_MISSING | CheckHim::RejectedPrefixMissing | Missing country/area prefix |
| REJECTED_FORMAT | CheckHim::RejectedFormat | Invalid formatting |
| REJECTED_SUBSCRIBER_ABSENT | CheckHim::RejectedSubscriberAbsent | Subscriber unreachable/absent |
| REJECTED_UNKNOWN_SUBSCRIBER | CheckHim::RejectedUnknownSubscriber | Unknown subscriber |
| REJECTED_UNDELIVERABLE | CheckHim::RejectedUndeliverable | Undeliverable route |
| UNDELIVERABLE_NOT_DELIVERED | CheckHim::UndeliverableNotDelivered | Inactive or not delivered |
| TEMPORARY_FAILURE | CheckHim::TemporaryFailure | Transient failure; retry later |
| SERVICE_UNAVAILABLE | CheckHim::ServiceUnavailable | Upstream service unavailable |
Other unexpected 4xx/5xx responses raise CheckHim::APIError.
Network issues raise CheckHim::NetworkError.
Handling Errors
begin
client.verify('+244921000111')
rescue CheckHim::RejectedNetwork => e
# handle specific code
rescue CheckHim::TemporaryFailure
sleep 2; retry
rescue CheckHim::Error => e
warn "General failure: #{e.message} (#{e.code})"
endConfiguration Options
client = CheckHim::Client.new(
'ch_live_key',
open_timeout: 3,
read_timeout: 8,
endpoint: 'https://api.checkhim.tech/api/v1'
)Versioning
This library follows semantic versioning: MAJOR.MINOR.PATCH.
Development
git clone https://github.com/checkhim/ruby-sdk.git
cd ruby-sdk
bundle install
rake specContributing
- Fork the repository
- Create a feature branch (
git checkout -b feature/improve-thing) - Add tests for your change
- Ensure
rake specpasses and add documentation - Submit a pull request
Security
Do not open public issues for sensitive security topics. Email: opensource@checkhim.tech
License
Released under the MIT License. See LICENSE for details.