Discover/Cigar Aficionado API
live

Cigar Aficionado APIcigaraficionado.com

Access Cigar Aficionado's ratings database, tasting notes, Top 25 lists, and industry news via 7 structured API endpoints. Filter by brand, country, size, and more.

This API takes change requests — .
Endpoint health
verified 20h ago
get_news_list
get_cigar_detail
get_countries
search_cigars
get_brands
7/7 passing latest checkself-healing
Endpoints
7
Updated
3d ago

What is the Cigar Aficionado API?

The Cigar Aficionado API provides structured access to the site's ratings database, editorial content, and annual Top 25 lists across 7 endpoints. Use search_cigars to query over 2,700 brands with filters for country, size, price range, and strength, then pull full tasting notes, wrapper/binder/filler specs, and numeric scores via get_cigar_detail. News articles and historical Top 25 rankings back to 2004 are also available.

This call costs1 credit / call— charged only on success
Try it
Starting source page number. Use next_page from a previous response to continue pagination without overlap.
Maximum number of results to return. Fetches across source pages if needed (max 100, up to 5 source pages per call). When omitted, returns up to 20 results from the requested page.
Price range filter.
Search query string (e.g. 'Montecristo').
Comma-separated list of sizes to filter by (e.g. 'Toro,Churchill').
Comma-separated list of brand names to filter by (e.g. 'Montecristo,Cohiba'). Use get_brands to see all available values.
When true, returns one entry per cigar name (case-insensitive) rather than every historical review. Pagination still advances by source records consumed, not deduplicated count.
Filter results to those with issue year <= this value (e.g. 2020). Applied client-side to the issue_date field. Can be combined with year_from for a range.
Comma-separated list of countries to filter by (e.g. 'Cuba,Nicaragua'). Use get_countries to see all available values.
Comma-separated list of strengths to filter by (e.g. 'Medium,Full').
Filter results to those with issue year >= this value (e.g. 2010). Applied client-side to the issue_date field. Can be combined with year_to for a range.
Filter results by issue/review year (e.g. '2024'). Available years: 2000-2026.
When true, fetches each result's detail page to add length (inches) and ring_gauge fields. Adds one HTTP request per result, so use with limit for efficiency.
api.parse.bot/scraper/39fd1f83-7145-48eb-9a70-54c40ab854bc/<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/39fd1f83-7145-48eb-9a70-54c40ab854bc/search_cigars?page=1&price=5-10&query=Cohiba&sizes=Toro&brands=Cohiba&countries=Cuba&strengths=Medium' \
  -H 'X-API-Key: $PARSE_API_KEY'
All endpoints · 7 totalmissing one? ·

Search the cigar ratings database with optional filters for brand, country, size, strength, price, and issue year. Returns paginated results sorted by relevance. Each source page contains up to 20 results. The limit parameter fetches across multiple source pages (up to 5 pages, max 100 results). Use next_page from the response to retrieve the next non-overlapping batch of source records. Pagination advances by source records consumed (not deduplicated count), so dedupe=true does not cause records to be skipped. When include_dimensions is true, each result's detail page is fetched to add length and ring_gauge (adds one request per result). Use year_from/year_to for year range filtering (applied client-side to the issue_date field).

Input
ParamTypeDescription
pageintegerStarting source page number. Use next_page from a previous response to continue pagination without overlap.
limitintegerMaximum number of results to return. Fetches across source pages if needed (max 100, up to 5 source pages per call). When omitted, returns up to 20 results from the requested page.
pricestringPrice range filter.
querystringSearch query string (e.g. 'Montecristo').
sizesstringComma-separated list of sizes to filter by (e.g. 'Toro,Churchill').
brandsstringComma-separated list of brand names to filter by (e.g. 'Montecristo,Cohiba'). Use get_brands to see all available values.
dedupebooleanWhen true, returns one entry per cigar name (case-insensitive) rather than every historical review. Pagination still advances by source records consumed, not deduplicated count.
year_tointegerFilter results to those with issue year <= this value (e.g. 2020). Applied client-side to the issue_date field. Can be combined with year_from for a range.
countriesstringComma-separated list of countries to filter by (e.g. 'Cuba,Nicaragua'). Use get_countries to see all available values.
strengthsstringComma-separated list of strengths to filter by (e.g. 'Medium,Full').
year_fromintegerFilter results to those with issue year >= this value (e.g. 2010). Applied client-side to the issue_date field. Can be combined with year_to for a range.
issue_yearstringFilter results by issue/review year (e.g. '2024'). Available years: 2000-2026.
include_dimensionsbooleanWhen true, fetches each result's detail page to add length (inches) and ring_gauge fields. Adds one HTTP request per result, so use with limit for efficiency.
Response
{
  "type": "object",
  "fields": {
    "page": "integer starting source page number",
    "results": "array of cigar result objects with id, name, url, score, image, issue_date, country, price, size. When include_dimensions is true, also includes length and ring_gauge.",
    "has_more": "boolean indicating whether more source pages are available after the last consumed page",
    "next_page": "integer next source page number to pass as page for the next batch, or null when no more pages",
    "total_pages": "integer total number of source pages available for the current query/filters",
    "source_pages_consumed": "integer number of source pages fetched for this response"
  },
  "sample": {
    "data": {
      "page": 1,
      "results": [
        {
          "id": "26602",
          "url": "https://www.cigaraficionado.com/ratings/26602/name/montecristo-no-4-petit-corona",
          "name": "Montecristo No. 4",
          "size": "Petit Corona",
          "image": "https://mshanken.imgix.net/cao/ratings_extras/cigars/26602-H.jpg",
          "price": "£26.40",
          "score": "91",
          "country": "Cuba",
          "issue_date": "April 1, 2026"
        }
      ],
      "total_pages": 76
    },
    "status": "success"
  }
}

About the Cigar Aficionado API

Search and Filter the Ratings Database

The search_cigars endpoint accepts comma-separated filters for brands, countries, sizes, and price, plus a free-text query parameter. Results are paginated at up to 20 per page, and the limit parameter can pull across up to 5 pages (max 100 results per call). Each result object includes id, name, url, score, image, issue_date, country, price, and size. Set dedupe=true to receive one entry per cigar name instead of every historical review of the same cigar. Use get_brands (returns 2,700+ brand name strings) and get_countries to enumerate valid filter values before constructing queries.

Cigar Detail Records

get_cigar_detail accepts a review page URL from search_cigars results and returns the full record: score, tasting_notes, physical dimensions (length in inches and ring_gauge), and a specs object containing size, filler, binder, wrapper, country, price, box_date, and issue. When fetching details for multiple cigars, get_cigar_details_bulk accepts up to 10 comma-separated URLs in a single call and returns the same schema plus an errors array for any URLs that could not be resolved.

Top 25 Lists and News

get_top25_cigars returns the full ranked list for any year from 2004 to 2025. Each entry includes rank, name, a nullable summary, and a url for the detail page. The get_news_list endpoint returns paginated industry news articles with title, url, and nullable summary and date fields. Both endpoints are suitable for tracking editorial trends and annual rankings over time.

Reliability & maintenanceVerified

The Cigar Aficionado API is a managed, monitored endpoint for cigaraficionado.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when cigaraficionado.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 cigaraficionado.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
20h ago
Latest check
7/7 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 recommendation tool that filters the ratings database by country, size, and price range using search_cigars.
  • Track annual Top 25 winners from 2004 to 2025 to identify which brands and countries appear most frequently.
  • Aggregate tasting notes and scores from get_cigar_detail to train a flavor-profile classifier.
  • Deduplicate multi-year reviews of the same cigar to find the highest score a specific blend has ever received.
  • Ingest paginated news articles from get_news_list to monitor cigar industry developments in a content feed.
  • Build a brand catalog browser using the 2,700+ entries from get_brands with score distributions from search_cigars.
  • Compare wrapper, binder, and filler specs across high-scoring Nicaraguan and Cuban cigars using bulk detail fetches.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 req/min

Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does Cigar Aficionado offer an official developer API?+
Cigar Aficionado does not publish a public developer API or documented data access program. This Parse API provides structured access to the same data visible on cigaraficionado.com.
How does the dedupe parameter in search_cigars work?+
When dedupe is set to true, the endpoint returns one result per unique cigar name (case-insensitive) rather than a separate entry for every historical review. This is useful when you want the current or most prominent rating for a cigar rather than all its past appearances in the database.
What score and spec fields does get_cigar_detail return, and are there any gaps?+
The endpoint returns a numeric score string, tasting_notes, and a specs object with size, filler, binder, wrapper, country, price, box_date, and issue, plus length in inches and ring_gauge. Score and tasting_notes can be null when the review page does not include them. User ratings, retailer inventory, or purchase links are not part of the response. You can fork this API on Parse and revise it to add an endpoint targeting those data points if they become available.
Does the API cover cigar ratings from publications other than Cigar Aficionado?+
Not currently. All ratings, scores, and tasting notes come exclusively from Cigar Aficionado's own database. Ratings from Cigar Snob, Halfwheel, or other publications are not included. You can fork this API on Parse and revise it to add endpoints targeting those sources.
How far back do the Top 25 lists go, and is every year available?+
The get_top25_cigars endpoint covers annual Top 25 lists from 2004 through 2025. Years outside that range are not available. Each list returns all 25 entries with rank, name, a nullable summary, and a URL pointing to the full detail page.
Page content last updated . Spec covers 7 endpoints from cigaraficionado.com.
Related APIs in Reviews RatingsSee 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.
holts.com API
Search and browse Holts Cigar Co.'s complete product catalog across all brands, and access customer and staff reviews to help guide your cigar purchases. Get detailed product information, brand listings, and paginated review data all in one place.
whiskybase.com API
Search and discover whiskies from a comprehensive database, explore new releases, check marketplace prices and listings, and browse distilleries and their collections. Get instant access to top-rated whiskies, distillery information, and current market data all in one place.
wine.com API
Search and browse wines on Wine.com to discover detailed information including pricing, ratings, and product metadata across thousands of selections. Find top-rated wines, browse current sales, and access comprehensive details on any wine to make informed purchasing decisions.
cornucopia.org API
Access organic food scorecards, brand ratings, research documents, and news from The Cornucopia Institute. Search and filter across dairy, egg, beef, poultry, and other organic product categories.
allcarindex.com API
Browse and search detailed information on over 14,000 automotive brands and 6,000 concept cars, organized by region, country, and model specifications. Discover vehicle data across the world's largest automotive encyclopedia with instant access to brand details, model information, and comprehensive search capabilities.
fragrantica.com API
Search and discover perfumes with detailed information including fragrance notes, accords, and ratings, while exploring curated brands and note collections. Browse Fragrantica's comprehensive perfume catalog to find scents based on specific characteristics and community feedback.
fragrantica.it API
Search for perfumes and retrieve detailed information including fragrance notes, accords, olfactory family, perfumer, year of release, and community ratings from Fragrantica.