Liquor scraping API built for the beverage aisle

Pull structured product, price, and inventory data from liquor stores, wine retailers, and spirits marketplaces β€” normalized by SKU, size, ABV, and region, and delivered ready for pricing and compliance workflows.

40+retailers & brand sites covered
120M+SKU-price records tracked monthly*
99%field-level accuracy*

*Illustrative figures β€” scoped to your project during onboarding.

Average client rating 4.7 / 5 across Clutch, GoodFirms and Trustpilot

Live extraction β€” totalwine.com
ProductBuffalo Trace Kentucky Straight Bourbon
Size / ABV750ml Β· 45%
Price$27.99
AvailabilityIn stock β€” 6 stores nearby
StateAvailable in 41 states
Last synced2 min ago
What it does

Turn any liquor store or spirits listing into a structured record

Send a product URL, a category page, or a store locator link and get back the price, size, proof, vintage, region, and stock status the page contains β€” parsed, validated, and mapped to one schema across every retailer you track.

Brands & distillers

Watch how retailers and distributors list and price your bottles across states and channels.

Retailers & e-commerce teams

Reprice against nearby liquor stores and online sellers without checking pages by hand.

Distributors

Monitor minimum-price and MAP compliance across the accounts you supply.

Research & investment teams

Model demand and category trends from public sell-through and assortment signals.

Core capabilities

Built for how the spirits aisle actually varies by state and shelf

01

Product page extraction

Full detail for one bottle β€” price, size, ABV, region, tasting notes, images β€” from a direct URL.

02

Category & shelf crawling

Feed in a category or search page and receive every listed product, paginated automatically.

03

Store & location-level pricing

Capture price and stock as they vary by store, delivery zip, or state-controlled pricing.

04

Vintage & batch tracking

Distinguish vintages, cask strengths, and limited releases rather than collapsing them into one SKU.

05

Review & rating extraction

Collect tasting notes, star ratings, and reviewer text for sentiment and product-quality signals.

06

Bulk & scheduled jobs

Submit thousands of URLs at once, or refresh a portfolio on a recurring interval automatically.

Data fields

The full field set

Coverage varies slightly by retailer and by state alcohol-control rules. Anything outside this set β€” allocation status, age-verification gates, loyalty pricing β€” can be added as a custom field.

Category Fields
Product identity Product name, brand, distillery/producer, category (whiskey, wine, tequila, RTD...), SKU/UPC, vintage or batch
Spec & format Bottle size, ABV/proof, region & appellation, cask type, age statement, pack size
Pricing List price, sale price, price per ml, currency, price-history snapshot, state minimum-price flag
Availability Stock status, store-level availability, delivery/shipping eligibility by state, allocation flag
Descriptive content Tasting notes, producer description, food-pairing notes, category, subcategory, breadcrumb path
Media Bottle/label image URL, gallery images
Ratings & reviews Average rating, review count, review text, reviewer alias, verified-purchase flag
Seller / store data Retailer name, store location, delivery radius, shipping cost, license/permit region
Merchandising signals Badge labels (limited release, staff pick), rank in category, cross-sell items
Sample output

What the data looks like across categories

Three records from three different retailer types β€” spirits, wine, and RTD. Values below are illustrative.

totalwine.com
RDA-LQ-0011923

Buffalo Trace Kentucky Straight Bourbon

$27.99
Size / ABV750ml Β· 45%
StockIn stock
Rating4.7 (2,140)
wine.com
RDA-WN-0008854

Domaine Faiveley Bourgogne Pinot Noir, 2022

$34.00
RegionBurgundy, France
StockLow stock β€” 4 left
Rating4.5 (318)
drizly.com
RDA-RT-0002216

High Noon Watermelon Vodka Seltzer, 4-pack

$14.49
Size / ABV355ml x4 Β· 4.5%
DeliverySame-day, select zips
Rating4.6 (912)
{
  "product_id": "RDA-LQ-0011923",
  "product_name": "Buffalo Trace Kentucky Straight Bourbon",
  "brand": "Buffalo Trace",
  "category": "Spirits > Whiskey > Bourbon",
  "spec": { "size_ml": 750, "abv": 45.0 },
  "price": { "currency": "USD", "list_price": 27.99 },
  "availability": { "status": "In Stock", "states": 41 },
  "ratings": { "average_rating": 4.7, "total_reviews": 2140 },
  "retailer": { "name": "Total Wine & More" },
  "scraped_at": "2026-09-17T06:42:11Z"
}
cURL
Python
Node.js
# Fetch a single product record
curl -X POST https://api.realdataapi.com/v1/liquor/product \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://www.totalwine.com/p/EXAMPLE"}'
import requests

resp = requests.post(
    "https://api.realdataapi.com/v1/liquor/product",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
    json={"url": "https://www.totalwine.com/p/EXAMPLE"}
)
data = resp.json()
print(data["price"]["list_price"])
const res = await fetch("https://api.realdataapi.com/v1/liquor/product", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({ url: "https://www.totalwine.com/p/EXAMPLE" })
});
const data = await res.json();

Endpoint and key format above are illustrative β€” your onboarding call includes real credentials.

How it works

From a store link to a validated record

01

Submit a request

A product URL, store link, or category page β€” via API call or bulk upload.

02

We fetch the page

Rendering and rotating IPs handle age-gates and dynamic shelf pages.

03

HTML is parsed

Content is mapped to the field set for that retailer's layout and state rules.

04

Data is normalized

Size, ABV, currency, and region are standardized across sources.

05

Output is delivered

As JSON or CSV, or pushed to your webhook, warehouse, or database.

Extract country-wise liquor data

IN

India

What teams build with it

Use cases across the three tiers

Pricing

Dynamic repricing

Feed competitor and state-minimum pricing into your repricing engine so shelf prices adjust within your rules.

Brand protection

MAP & minimum-price monitoring

Flag retailers pricing below policy or minimum-price law across the states you're licensed in.

Catalog

Portfolio enrichment

Fill gaps in your own product data β€” tasting notes, images, ABV β€” from retailer and producer listings.

Planning

Assortment & allocation tracking

See which SKUs are sold out, newly listed, or allocated across accounts and states.

Product

Voice-of-customer analysis

Mine tasting notes and reviews at scale to surface what drinkers praise or flag before your next release.

Strategy

Market-entry research

Understand pricing bands and assortment depth in a state or region before expanding distribution there.

Plans that scale with your coverage

Exact pricing depends on platforms, cities, and refresh frequency β€” these tiers describe how engagements are typically structured.

Starter

Self-serve API

  • Single-retailer access
  • Standard field set
  • Daily or weekly refresh
  • Email support
Talk to sales
Enterprise

Full-scale deployment

  • Tens of millions of SKU-location records
  • Dedicated pipeline & support
  • Custom SLA & contract terms
  • Direct database integration
Request a quote
Coverage by region

Extract country-wise liquor & spirits data

We maintain dedicated coverage across major regional retailers β€” Total Wine and Drizly in the US, Majestic Wine and The Whisky Exchange in the UK, and more. Visit our region-specific pages for the full retailer list in your target market.

Format Best for
REST API (JSON) Live, on-demand lookups embedded in your application
CSV / Excel export Analysts and teams working in spreadsheets
Webhook push Event-driven pipelines reacting to price or stock changes
Cloud storage drop (S3, GCS, Azure Blob) Scheduled bulk feeds into a data warehouse
Direct database load Data landing straight into PostgreSQL, MySQL, or Snowflake

Building this in-house vs. using our API

In-house scraping team
Liquor Scraping API
Time to first dataset
Weeks to months
Days
Age-gate & CAPTCHA handling
Built and maintained by you
Included
Upkeep when a site changes layout
Ongoing engineering time
Handled for you
Scaling to new states or retailers
New build per site
Add to existing pipeline
Core engineering focus
Split with scraping upkeep
Stays on your product
Data handling

Accuracy, scale, and how we handle data responsibly

Automated validation

Schema validation runs on every record before delivery.

Layout-change monitoring

Extraction logic updates automatically when a retailer redesigns its pages.

Normalization

Size, ABV, and currency are standardized for consistent cross-retailer comparison.

Built to scale

From a few hundred lookups a day to portfolios in the millions of SKUs.

Public-page extraction only

Limited to publicly accessible pages, respecting robots.txt guidance and each client's instructions.

Encrypted delivery

HTTPS/TLS delivery and access-key authentication per project, with optional data-retention limits.

Support

Support & service commitments

Uptime targets, response times, and escalation paths are defined per contract and scale with plan tier β€” Growth and Enterprise engagements include priority support and a named point of contact. All plans include monitoring for extraction failures, so a broken feed gets flagged before it affects your downstream systems.

Getting started

From first conversation to a live feed

01

Tell us what you need

The retailers, states, and data fields that matter for your business.

02

We scope a pilot

Typically a sample dataset from 2–3 target sites within 2–5 business days.

03

Review the sample

Adjust fields or frequency until the data matches what you need.

04

Move to production

Your feed goes live on the delivery method and schedule you choose.

Questions, answered

FAQ

Do you handle age-verification and state alcohol-shipping rules?

Extraction is limited to publicly accessible pages, and our pipeline is built to work within each site's age-gate and each state's shipping and pricing rules as scoped during onboarding.

Can you track prices that vary by state or store?

Yes. Store-level and state-level pricing is a core part of the liquor schema, since minimum-price laws and control-state pricing vary widely.

Can you scrape a retailer that isn't on your list?

In most cases, yes. New retailer and marketplace integrations are scoped case by case depending on site complexity.

Is historical price data available?

Yes β€” point-in-time snapshots going forward, and in many cases a historical price-trend feed once tracking begins.

How is pricing structured?

Pricing depends on the number of retailers, states, fields, and refresh frequency you need. Most engagements start with a scoped pilot.

Brand Image
β–Ό
INQUIRE NOW