Ruby Captcha Solver
Solve image CAPTCHAs in Ruby with net/http (stdlib) or Faraday. FastCaptcha returns the answer in 0.3–0.7 seconds — no custom gem needed.
Ruby Quick Start
Pure stdlib (no gems)
require 'net/http'
require 'uri'
require 'json'
API_KEY = 'YOUR_API_KEY'
def solve_captcha(image_path)
uri = URI('https://fastcaptcha.org/api/v1/ocr/')
Net::HTTP.start(uri.host, uri.port, use_ssl: true) do |http|
req = Net::HTTP::Post.new(uri)
req['X-API-Key'] = API_KEY
req.set_form(
[['image', File.open(image_path)]],
'multipart/form-data'
)
resp = http.request(req)
data = JSON.parse(resp.body)
raise "API error: #{data['error']}" unless data['success']
data['text']
end
end
# Usage
text = solve_captcha('captcha.png')
puts "Solved: #{text}"
Faraday gem
# Gemfile
# gem 'faraday'
# gem 'faraday-multipart'
require 'faraday'
require 'faraday/multipart'
require 'json'
API_KEY = 'YOUR_API_KEY'
conn = Faraday.new('https://fastcaptcha.org') do |f|
f.request :multipart
f.adapter Faraday.default_adapter
end
def solve_captcha(conn, image_path)
resp = conn.post('/api/v1/ocr/') do |req|
req.headers['X-API-Key'] = API_KEY
req.body = {
image: Faraday::FilePart.new(
File.open(image_path), 'image/png'
)
}
end
data = JSON.parse(resp.body)
raise "API error: #{data['error']}" unless data['success']
data['text']
end
text = solve_captcha(conn, 'captcha.png')
puts "Solved: #{text}"
With retry & error handling
def solve_with_retry(image_path, max_retries: 4)
max_retries.times do |attempt|
begin
return solve_captcha(image_path)
rescue => e
retriable = e.message.match?(/429|500|503/)
raise unless retriable && attempt < max_retries - 1
delay = [2**attempt + rand, 32].min
puts "Retrying in #{delay.round(1)}s (attempt #{attempt + 1})"
sleep delay
end
end
raise 'Max retries exceeded'
end
# Rails / Sidekiq usage
class CaptchaSolverJob < ApplicationJob
queue_as :default
def perform(image_path)
result = solve_with_retry(image_path)
Rails.logger.info "Solved captcha: #{result}"
result
end
end
⚡
0.3s avg
Sub-second responses on image CAPTCHAs
💎
Rails-friendly
Works in Rails, Sinatra, Sidekiq, and plain Ruby
🆓
100 free credits
No credit card needed to start