Zyterb
A zero-dependency Ruby client for the Zyte API. It uses only Ruby's standard library (Net::HTTP, JSON, Base64).
Installation
Add this line to your application's Gemfile:
gem 'zyterb'
And then execute:
$ bundle install
Or install it yourself as:
$ gem install zyterb
Usage
Configuration
You can provide your Zyte API key via an environment variable:
export ZYTE_API_KEY='your_api_key_here'
Or via a configuration block:
require 'zyterb'
Zyterb.configure do |config|
config.api_key = 'your_api_key_here'
end
client = Zyterb::Client.new
Or pass it when initializing the client:
client = Zyterb::Client.new(api_key: 'your_api_key_here')
Basic Extraction
By default, it fetches browserHtml:
result = client.extract("https://example.com")
puts result['browserHtml']
AI Structured Extraction
Zyte API supports AI-driven extraction for specific page types:
# Extract an article
article = client.extract("https://example.com/blog/post", article: true)
puts article['article']['headline']
# Extract a product
product = client.extract("https://example.com/p/123", product: true)
puts product['product']['name']
Supported AI fields include: article, product, jobPosting, serp, and more.
Screenshots
The #screenshot method returns the raw binary image data (it handles Base64 decoding for you).
image_data = client.screenshot("https://example.com", format: 'png', full_page: true)
File.binwrite("example.png", image_data)
License
The gem is available as open source under the terms of the MIT License.