Discover/Holts API
live

Holts APIholts.com

Access Holts.com cigar products, brand listings, customer reviews, and staff editorial reviews via 5 structured endpoints. Search, browse, and retrieve ratings.

Endpoint health
verified 2d ago
get_brand_products
get_all_brands
get_product_reviews
get_staff_review
search_cigars
5/5 passing latest checkself-healing
Endpoints
5
Updated
26d ago

What is the Holts API?

The Holts.com API provides structured access to the full Holts Cigar Co. catalog across 5 endpoints, covering keyword search, brand listings, product details, paginated customer reviews, and editorial staff reviews. The get_staff_review endpoint returns a numeric score out of 100, full HTML review body, author profile fields, and a direct URL to the review page on holts.com — data not easily extracted through manual browsing at scale.

Try it
Search keyword (e.g. 'montecristo', 'romeo', 'rocky patel').
api.parse.bot/scraper/bfbba235-bb92-44cf-bc25-b0c351fd6209/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/bfbba235-bb92-44cf-bc25-b0c351fd6209/search_cigars?query=montecristo' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace holts-com-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: Holts Cigar Co. SDK — browse brands, search products, read reviews."""
from parse_apis.holts_cigar_co._api import Holts, ReviewSort, SortDirection, BrandNotFound

client = Holts()

# Search for cigar products by keyword; limit= caps total items fetched.
for product in client.brands.search(query="montecristo", limit=3):
    print(product.name, product.price_range, product.rating)

# List all brands, take the first one, then drill into its sub-resources.
brand = client.brands.list(limit=1).first()
if brand:
    # Get product variants for this brand
    for bp in brand.products.list(limit=3):
        print(bp.name, bp.price, bp.size)

    # Read customer reviews sorted by rating (descending)
    for review in brand.reviews.list(sort=ReviewSort.RATING_QUALITY, direction=SortDirection.DESC, limit=3):
        print(review.nickname, review.title, review.rating_quality, review.city)

    # Get the staff review for this brand
    try:
        staff = brand.staff_review.get()
        print(staff.title, staff.score, staff.author.first_name)
    except BrandNotFound as exc:
        print(f"No staff review found: {exc}")

# Fetch a specific brand by URL and inspect its details
detail = client.brands.get(url="https://www.holts.com/cigars/all-cigar-brands/montecristo-white.html")
print(detail.name, detail.url)

print("exercised: brands.search / brands.list / brands.get / products.list / reviews.list / staff_review.get")
All endpoints · 5 totalmissing one? ·

Full-text keyword search across cigar product lines and accessories. Returns matching products with name, price range, rating, review count, and image. Results are not paginated; a single page of matches is returned.

Input
ParamTypeDescription
queryrequiredstringSearch keyword (e.g. 'montecristo', 'romeo', 'rocky patel').
Response
{
  "type": "object",
  "fields": {
    "query": "string — the search term used",
    "products": "array of product objects with name, url, price_range, review_count, rating, and image_url"
  },
  "sample": {
    "data": {
      "query": "montecristo",
      "products": [
        {
          "url": "https://www.holts.com/cigars/all-cigar-brands/montecristo.html",
          "name": "Montecristo",
          "rating": null,
          "image_url": "https://www.holts.com/media//categoryimage//thumb/135x135/m/o/montecristo-robusto-larga_13.png",
          "price_range": "$2.91-$29.87",
          "review_count": 0
        }
      ]
    },
    "status": "success"
  }
}

About the Holts API

Search and Brand Discovery

The search_cigars endpoint accepts a query string — such as 'montecristo' or 'rocky patel' — and returns a flat list of matching products, each with name, url, price_range, rating, review_count, and image_url. Results are returned as a single page with no pagination. The get_all_brands endpoint requires no inputs and returns a complete brand directory: a count integer and an array of {name, url} objects covering every brand listed on holts.com.

Product Detail and ID Extraction

get_brand_products takes the full URL of a brand page and returns the brand_name, a products array with name, price, and optional size dimensions, plus two IDs critical for downstream calls: category_id and product_line_id. These IDs are the required inputs for the review endpoints, so get_brand_products effectively acts as a lookup step before fetching reviews.

Customer and Staff Reviews

get_product_reviews uses the category_id from get_brand_products to fetch paginated customer reviews — up to 10 per page. Each review object includes nickname, title, detail, rating_quality, created_at, city, state, and a verified flag. The response also exposes total_pages, current_page, visible_pages, and total_individual_reviews to support full pagination loops. Sort order is controllable via optional sort and direction parameters.

get_staff_review uses product_line_id and returns the Holts editorial perspective: a score string out of 100, body in HTML, date, title, and an author object with first_name, last_name, cigar_preference, favorite_cigar, portrait, and a url linking to the author's profile on holts.com.

Reliability & maintenanceVerified

The Holts API is a managed, monitored endpoint for holts.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when holts.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official holts.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
2d ago
Latest check
5/5 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a cigar comparison tool that surfaces staff scores and customer ratings side-by-side using get_staff_review and get_product_reviews.
  • Aggregate price ranges across an entire brand lineup by iterating get_brand_products over URLs from get_all_brands.
  • Track review volume trends over time using total_individual_reviews from paginated get_product_reviews calls.
  • Populate a cigar recommendation engine using rating, review_count, and price_range from search_cigars.
  • Build an author-centric review archive by grouping staff reviews by author.id or author.url across multiple product lines.
  • Monitor new brand additions to the Holts catalog by periodically diffing get_all_brands output against a stored snapshot.
  • Filter high-scoring cigars within a budget by combining get_brand_products prices with get_staff_review scores.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does Holts.com have an official developer API?+
Holts.com does not publish an official public developer API or documented data access program. This Parse API is the structured way to access their catalog and review data programmatically.
What does get_product_reviews return, and can I sort results?+
Each review object includes nickname, title, detail, rating_quality, created_at, city, state, and a verified boolean. The endpoint accepts optional sort and direction parameters to control ordering. Pagination is supported via the page parameter; total_pages and total_individual_reviews are returned so you can loop through all results.
Does search_cigars support pagination or filtering by price or rating?+
No — search_cigars returns a single page of results for a given query string. Filtering by price range or minimum rating is not a built-in parameter; the full result set is returned and any filtering would need to happen client-side. You can fork this API on Parse and revise it to add paginated or filtered search behavior.
Is individual product-level review data available, or only brand/category-level?+
Reviews are retrieved at the category level using category_id from get_brand_products. There is no current endpoint that scopes reviews to a single SKU within a category. You can fork this API on Parse and revise it to add a product-specific review endpoint if finer granularity is needed.
Does the API return inventory or stock availability data?+
Not currently. The API exposes product names, prices, size dimensions, ratings, and review data, but does not include real-time stock status or inventory quantities. You can fork this API on Parse and revise it to add an availability field if that data is present on the product pages.
Page content last updated . Spec covers 5 endpoints from holts.com.
Related APIs in EcommerceSee all →
cigarsinternational.com API
Search and browse cigars by brand, category, and daily deals while reading customer reviews to find the perfect smoke. Discover store locations and explore comprehensive product information across Cigars International's entire catalog.
cigaraficionado.com API
Search and discover premium cigars with detailed reviews and ratings, browse the latest industry news, and explore Cigar Aficionado's prestigious Top 25 lists. Get comprehensive information about specific cigars including their ratings and reviews to find your next favorite smoke.
elementvape.com API
Search and browse vape products from Element Vape, including prices, specifications, availability, and category listings. Access detailed product pages with variant options, media galleries, and customer reviews.
howardmiller.com API
Search and browse Howard Miller's complete catalog of clocks and furniture to find product details, pricing, and availability from their official store. Quickly look up specific items or explore collections to compare features and make informed purchasing decisions.
sephora.com API
Search and browse Sephora's product catalog to find detailed information about beauty items, including specifications, customer reviews, Q&A discussions, pricing, and real-time availability. Filter products by category or brand, and access comprehensive brand listings to discover exactly what you're looking for.
cultbeauty.co.uk API
Browse and search Cult Beauty's product catalog by category or brand, view detailed product information including ingredients and loyalty points, and read customer reviews. Discover new arrivals, sale items, and filter products to find exactly what you're looking for.
stylishop.com API
Browse and search stylishop.com's complete fashion catalog, including products, categories, brands, reviews, and trending data to discover new arrivals and sale items. Get product details, size guides, autocomplete suggestions, and trending search insights to enhance your shopping experience.
millerknoll.com API
Browse MillerKnoll's collective brands and their complete product catalogs, search for specific items across the collection, and access detailed product information and market insights. Discover product categories by brand and get comprehensive details to make informed purchasing or business decisions.