Verity Ruby SDK

Official Ruby client for the Verity API: Medicare coverage policies, medical code intelligence, prior authorization checks, claim validation, compliance review, and drug formulary evidence.

Installation

Install from GitHub until the first RubyGems release is indexed:

gem 'verity-sdk', git: 'https://github.com/backworkai/verity-ruby.git'

Then install dependencies:

bundle install

After the first RubyGems release, install it directly:

gem install verity-sdk

Requires Ruby 2.7 or newer.

Quick Start

require 'verity'

client = Verity::Client.new(api_key: 'vrt_live_YOUR_API_KEY')

code = client.codes.lookup('76942', include: ['rvu', 'policies'])
puts code['data']['description']

prior_auth = client.prior_auth.check(
  procedure_codes: ['76942'],
  diagnosis_codes: ['M54.5'],
  state: 'TX',
  payer: 'medicare'
)

puts prior_auth['data']['pa_required']

Get an API key from the Verity dashboard.

Core Workflows

Code Lookup

result = client.codes.lookup(
  '76942',
  include: ['rvu', 'policies'],
  jurisdiction: 'JM',
  fuzzy: true
)

Policy Search and Retrieval

policies = client.policies.list(
  q: 'ultrasound guidance',
  mode: 'keyword',
  policy_type: 'LCD',
  jurisdiction: 'JM',
  status: 'active',
  limit: 25
)

policy = client.policies.get('L33831', include: ['criteria', 'codes'])

Prior Authorization and Claim Validation

prior_auth = client.prior_auth.check(
  procedure_codes: ['76942'],
  diagnosis_codes: ['M54.5'],
  state: 'TX',
  payer: 'medicare'
)

claim = client.claims.validate(
  procedure_codes: ['99213'],
  diagnosis_codes: ['E11.9'],
  payer: 'Medicare',
  state: 'TX',
  date_of_service: '2026-05-23'
)

puts "#{claim['data']['coverage_status']} #{claim['data']['denial_risk']}"
puts claim['data']['issues']

Coverage, Spending, and Compliance

criteria = client.coverage.search_criteria(
  'diabetes',
  section: 'indications',
  limit: 10
)
puts "#{criteria['data'][0]['policy_id']}: #{criteria['data'][0]['policy_title']}"

spending = client.spending.by_code(codes: ['T1019', 'T1020'], year: 2023)
changes = client.compliance.unreviewed(limit: 10)
stats = client.compliance.stats

Drug Formulary Evidence

formulary = client.drugs.formulary('ozempic', payer: 'all', limit: 5)

Error Handling

begin
  result = client.codes.lookup('76942')
rescue Verity::AuthError => e
  puts "Invalid API key: #{e.message}"
rescue Verity::ValidationError => e
  puts "Invalid request: #{e.message}"
rescue Verity::NotFoundError => e
  puts "Resource not found: #{e.message}"
rescue Verity::RateLimitError => e
  puts "Rate limit exceeded: #{e.message}"
rescue Verity::APIError => e
  puts "Verity API error: #{e.message}"
end

Configuration

client = Verity::Client.new(
  api_key: ENV.fetch('VERITY_API_KEY'),
  base_url: 'https://verity.backworkai.com/api/v1',
  timeout: 30
)

Development

bundle install
ruby -c lib/verity.rb
gem build verity-sdk.gemspec
bundle exec rake build

Release

The gem publishes to RubyGems.org as verity-sdk.

  1. Configure a pending RubyGems Trusted Publisher for backworkai/verity-ruby, workflow release.yml, environment release, gem name verity-sdk.
  2. Update lib/verity/version.rb.
  3. Push a matching tag, for example v1.0.0.
  4. The release workflow builds and pushes the gem through RubyGems OIDC trusted publishing.

Support

License

MIT