TTB Alcohol Permittee Scraper avatar

TTB Alcohol Permittee Scraper

Pricing

from $1.50 / 1,000 results

Go to Apify Store
TTB Alcohol Permittee Scraper

TTB Alcohol Permittee Scraper

Scrape federal alcohol permit records from TTB (Alcohol and Tobacco Tax and Trade Bureau). Download winery, distillery, importer and wholesaler permit lists with owner names, operating names, locations and new permit flags. No browser needed, direct CSV download.

Pricing

from $1.50 / 1,000 results

Rating

0.0

(0)

Developer

Haketa

Haketa

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

19 hours ago

Last modified

Share

TTB Alcohol Permittee Scraper — Federal Winery, Distillery, Importer & Wholesaler Permit Data Extractor

The most complete TTB (Alcohol and Tobacco Tax and Trade Bureau) federal permittee data extraction tool on Apify. Download the official US federal list of permittees — every licensed winery, distilled spirits plant (DSP), basic permit importer, and wholesaler — directly from ttb.gov. Structured JSON, weekly refresh, new-permit flagging, no auth, no browser, ready for compliance, lead generation, market intelligence, and beverage industry research workflows.

Apify Actor


What This Actor Does

The TTB Alcohol Permittee Scraper is a production-grade Apify Actor that extracts the official Federal List of Permittees published by the United States Alcohol and Tobacco Tax and Trade Bureau (TTB) — the federal regulator that issues every basic permit required to legally produce, import, or wholesale alcoholic beverages in the United States.

In a single run, the actor discovers the current weekly CSV downloads on the TTB FOIA permittee page, parses them in memory, normalizes column variations, decodes permit numbers, applies state and "new permit" filters, and pushes clean, structured JSON records to your Apify dataset.

The actor returns federal alcohol permit records across the following categories:

  • Wineries — bonded wineries, wine cellars, and bottling houses (permit type W) — from Napa Valley estates and Sonoma County boutiques to Finger Lakes producers, Willamette Valley Pinot houses, Virginia AVAs, and emerging Texas Hill Country wineries
  • Distilleries (DSPs) — Distilled Spirits Plants (permit type DSP) — including the entire Kentucky bourbon trail, Tennessee whiskey producers, the Brooklyn craft distillery scene, San Diego craft distillers, and thousands of farm distilleries nationwide
  • Importers — Basic Permit Importers (permit type IMP) — every federally permitted alcohol importer bringing wine, spirits, and other beverages into the US
  • Wholesalers — Basic Permit Wholesalers (permit types BWS, BWW, BWL) — the federally permitted three-tier distribution layer between producers and retailers
  • Other permittees — Alcohol Fuel Plants (AFP) and additional permit subtypes as published by TTB

Each record includes the TTB permit number, legal owner name, operating/trade (DBA) name, decoded state, inferred permit year, premises street, city, ZIP, and county, permit type code, human-readable permit category, and a isNewPermit flag that lets you immediately spot newly issued permits (TTB updates the list every Monday and marks fresh permits with New_Permit_Flag = 1).

Important coverage note: Brewer's Notice (BWN) data — i.e. breweries — is not publicly available in this list. Brewery records are protected under IRC Section 6103 and excluded by TTB from the public permittee export. Brewery COLA filings remain searchable via TTB's public COLA Online tool, but the entity-level brewery permit list is restricted. This scraper covers everything else TTB publishes publicly.

Why scrape TTB yourself when this exists?

TTB publishes the Federal List of Permittees (FRL) as several CSV files updated every Monday, but the data shipping route is famously fragile and the average team that tries to roll their own loader runs into the same pain points within an afternoon:

  • The CSV download URLs contain a YYYY-MM date path (/system/files/2026-05/FRL_*.csv) that changes every month — naive bookmarked URLs silently 404
  • File names differ across categories (FRL_DSP.csv, FRL_Wine_Producers.csv, etc.) with inconsistent casing and underscoring between releases
  • Some monthly drops re-letter the columns (e.g. Prem_Zip vs PremZip vs Zip) — your loader must do fuzzy header mapping or it breaks at the start of every month
  • The permit number is a compound key ({STATE}-{TYPE}-{YEAR_SEQ}, e.g. CA-W-15651) — without decoding, you can't filter by state, type, or vintage
  • The New_Permit_Flag column ships as 0/1 strings (sometimes Y/N) and is the only signal for newly issued permits — easy to miss
  • Brewery data is not in the export — teams waste hours trying to find a brewery file that does not exist
  • There's no incremental API — you must redownload the entire file weekly even if only 30 permits changed
  • TTB occasionally returns HTML error pages with 200 OK when the file is being regenerated — naive scripts happily save the HTML as CSV
  • Building, hosting, scheduling, and monitoring this pipeline is 8-16 hours of one-off dev work that nobody on the team wants to own

This actor solves all of that: it discovers the current month's CSV URLs from the landing page, downloads them with realistic browser headers, parses with csv-parse (BOM-aware, lax column count), normalizes columns via an alias table, decodes the permit number into state/type/year, sets isNewPermit, filters by state if requested, and writes clean JSON. No glue code, no header babysitting, no monthly URL refreshes.


Quick Start

One-Click Run

  1. Open the actor page on Apify: haketa/ttb-alcohol-permittee-scraper
  2. Click "Try for free" (or "Run" if you already have an Apify account)
  3. Accept the defaults to scrape wineries and distilleries (top 200 records as a smoke test), or tick more boxes to add wholesalers and importers
  4. Hit Start — your dataset is ready in well under a minute and downloadable as JSON, CSV, Excel, HTML, XML, or JSON Lines

API Run (Python)

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("haketa/ttb-alcohol-permittee-scraper").call(run_input={
"permitCategories": ["wine", "spirits"],
"stateFilter": ["CA", "OR", "WA"],
"newPermitsOnly": False,
"maxRecords": 0
})
for record in client.dataset(run["defaultDatasetId"]).iterate_items():
print(record["permitNumber"], record["operatingName"], record["city"], record["state"])

API Run (Node.js / TypeScript)

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('haketa/ttb-alcohol-permittee-scraper').call({
permitCategories: ['spirits'],
stateFilter: ['KY', 'TN'],
newPermitsOnly: true,
maxRecords: 0,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Got ${items.length} brand-new Kentucky/Tennessee DSP permits this week`);

API Run (cURL)

curl -X POST "https://api.apify.com/v2/acts/haketa~ttb-alcohol-permittee-scraper/runs?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"permitCategories": ["wine"],
"stateFilter": ["CA"],
"newPermitsOnly": false,
"maxRecords": 0
}'

How It Works

The TTB publishes its Federal List of Permittees as monthly-versioned CSV downloads linked from the official landing page:

Landing page: https://www.ttb.gov/public-information/foia/list-of-permittees

The actor performs the following pipeline on each run:

  1. Landing-page discoverygotScraping GET on the FOIA landing page with realistic Chrome desktop headers (User-Agent, Accept, Accept-Language). HTML is parsed with two regexes (absolute and relative href) to extract all .csv links.
  2. Category matching — each discovered URL is checked against keyword patterns ('spirit', 'dsp', 'distill', 'wine', 'winery', 'wholesal', 'bws', 'import', 'imp') and mapped to the user's requested categories.
  3. CSV download — direct HTTPS GET to each matched URL with browser-style headers. Files typically arrive in 1-5 MB compressed.
  4. CSV parsingcsv-parse/sync runs with relax_column_count, bom: true, and trim: true to survive TTB's occasional column drift and UTF-8 BOMs.
  5. Header alias mapping — column names are lowercased, punctuation collapsed, then looked up in a 40+ entry alias table. Unknown columns are kept under _raw_* keys for traceability in logs.
  6. Permit number decoding — the permit number is split on -. The first part is the state code (CA, AK, NY, …). The middle part(s) are the type code (W, DSP, BWS, IMP, …). The last part starts with a 2-digit year which is expanded to 19xx or 20xx heuristically.
  7. Type → category mapping — type codes are mapped to human-readable categories (WWinery, DSPDistillery, BWSWholesaler, IMPImporter, BWWWholesaler (Wine), BWLWholesaler (Liquor), AFPAlcohol Fuel Plant).
  8. New-permit flagging — the New_Permit_Flag column is normalized to a boolean isNewPermit (true when the source says 1 or true).
  9. Filtering — optional newPermitsOnly and stateFilter (case-insensitive) are applied before push.
  10. Dataset push — each surviving record is appended to the run's Apify dataset with an ISO-8601 scrapedAt timestamp.

Source endpoint reference

CategoryURL patternTTB file (typical)Cadence
Distilleries (DSP)https://www.ttb.gov/system/files/{YYYY-MM}/FRL_DSP*.csvDistilled Spirits PlantsWeekly (Monday)
Winerieshttps://www.ttb.gov/system/files/{YYYY-MM}/FRL_Wine*.csvWine Producers & BlendersWeekly (Monday)
Wholesalershttps://www.ttb.gov/system/files/{YYYY-MM}/FRL_*Wholesal*.csvBasic Permit WholesalersWeekly (Monday)
Importershttps://www.ttb.gov/system/files/{YYYY-MM}/FRL_*Import*.csvBasic Permit ImportersWeekly (Monday)
Brewer's Notice (BWN)not publicly releasedProtected under IRC §6103n/a

Engineering details

  • No headless browser — direct HTTPS only via got-scraping. Predictable, fast, low-memory.
  • Auto URL discovery — the actor re-reads the landing page each run, so the monthly YYYY-MM rotation never breaks it.
  • BOM-safe CSV parsing with relax_column_count to survive TTB column drift.
  • Permit number decoder infers state and year even if the CSV omits a dedicated state column.
  • Configurable request delay between file downloads — defaults to 300ms to stay polite.
  • Optional Apify proxy — almost never needed (TTB serves public files without rate limits) but available for environments that must originate traffic from a US datacenter pool.
  • Deterministic output — same input produces the same dataset shape, run after run.
  • Soft retry on landing-page discovery — if the first GET returns zero URLs, the actor waits 3 seconds and tries again before exiting gracefully.

Input Parameters

{
"permitCategories": ["spirits", "wine"],
"newPermitsOnly": false,
"stateFilter": ["CA"],
"maxRecords": 200,
"requestDelay": 300,
"proxyConfiguration": { "useApifyProxy": false }
}

Parameter reference

ParameterTypeDefaultDescription
permitCategoriesarray<string>["spirits", "wine"]TTB permit categories to scrape. Allowed values: spirits (Distilled Spirits Producers & Bottlers), wine (Wine Producers & Blenders), wholesalers (Basic Permit Wholesalers), importers (Basic Permit Importers). Leave empty [] to scrape all categories the landing page exposes.
newPermitsOnlybooleanfalseWhen true, only return records flagged as new this week (New_Permit_Flag = 1). Perfect for spotting newly opened wineries and distilleries in near-real-time.
stateFilterarray<string>[]Filter by two-letter US state code (case-insensitive). Examples: ["CA"], ["KY", "TN"], ["NY", "NJ", "CT"]. Empty array returns all 50 states + territories.
maxRecordsinteger200Hard cap on total records saved across all categories. Set 0 for unlimited. Useful for smoke testing.
requestDelayinteger (ms)300Delay between file downloads. Max 10000. Set higher if you want to be extra polite to ttb.gov.
proxyConfigurationobject{ useApifyProxy: false }Optional Apify proxy settings. Rarely needed — TTB does not rate-limit the FOIA download endpoint.

Output Schema

Every record returned to the Apify dataset shares one flat schema, regardless of whether it represents a winery, distillery, importer, or wholesaler — so downstream consumers (Postgres, Snowflake, BigQuery, Sheets, Salesforce) can ingest the whole feed without per-category branching.

Field reference

FieldTypeAlways PresentDescription
permitNumberstringyesTTB-assigned permit number, e.g. CA-W-15651, KY-DSP-20089, NY-IMP-19045
ownerNamestringyesLegal entity / owner-of-record as filed with TTB
operatingNamestringusuallyTrade name / DBA (often differs from ownerName, e.g. owner Smith Spirits LLC operating as Hudson Valley Distilling Co)
permitTypestringyesPermit type code parsed from the permit number (W, DSP, BWS, IMP, BWW, BWL, AFP, …)
permitCategorystringyesHuman-readable category (Winery, Distillery, Wholesaler, Importer, Wholesaler (Wine), …)
sourceFilestringyesInput category slug this record was discovered under (spirits, wine, wholesalers, importers)
statestringusuallyTwo-letter US state code decoded from the permit number (fallback: CSV Premises_State)
permitYearstringusuallyFour-digit issue year inferred from the permit number sequence prefix
streetstringusuallyPremises street address as filed with TTB
citystringusuallyPremises city
zipCodestringusuallyPremises ZIP code (5 or 9 digits)
countystringusuallyPremises county
isNewPermitbooleanyestrue if this permit was flagged new this week (New_Permit_Flag = 1)
scrapedAtstringyesISO-8601 timestamp marking when this record was extracted

Note: TTB does not publish phone numbers, email addresses, or financial information in the public permittee list. Owner name and premises address are the only contact-style fields included.

Example: Napa Valley winery record

{
"permitNumber": "CA-W-15651",
"ownerName": "EXAMPLE NAPA CELLARS LLC",
"operatingName": "EXAMPLE NAPA CELLARS",
"permitType": "W",
"permitCategory": "Winery",
"sourceFile": "wine",
"state": "CA",
"permitYear": "2015",
"street": "9999 SILVERADO TRAIL",
"city": "NAPA",
"zipCode": "94558",
"county": "NAPA",
"isNewPermit": false,
"scrapedAt": "2026-05-16T09:00:00.000Z"
}

Example: Kentucky bourbon distillery (DSP) record

{
"permitNumber": "KY-DSP-20089",
"ownerName": "EXAMPLE BOURBON COMPANY INC",
"operatingName": "EXAMPLE BOURBON DISTILLERY",
"permitType": "DSP",
"permitCategory": "Distillery",
"sourceFile": "spirits",
"state": "KY",
"permitYear": "2020",
"street": "999 DISTILLERY ROW",
"city": "BARDSTOWN",
"zipCode": "40004",
"county": "NELSON",
"isNewPermit": false,
"scrapedAt": "2026-05-16T09:00:00.000Z"
}

Example: Brand-new Portland craft distillery flagged this week

{
"permitNumber": "OR-DSP-26012",
"ownerName": "EXAMPLE PORTLAND CRAFT SPIRITS LLC",
"operatingName": "EXAMPLE TAPROOM DISTILLERY",
"permitType": "DSP",
"permitCategory": "Distillery",
"sourceFile": "spirits",
"state": "OR",
"permitYear": "2026",
"street": "999 SE DIVISION ST",
"city": "PORTLAND",
"zipCode": "97202",
"county": "MULTNOMAH",
"isNewPermit": true,
"scrapedAt": "2026-05-16T09:00:00.000Z"
}

Permit Type Reference

TTB encodes the permit type as a short letter code embedded in the permit number. The actor decodes these into human-readable categories.

CodeCategoryWhat it means
WWineryBonded winery, wine cellar, or bottling house — produces, blends, or bottles wine
DSPDistilleryDistilled Spirits Plant — produces, processes, bottles, or warehouses distilled spirits
BWSWholesalerBasic Permit Wholesaler — distributes alcohol from producers/importers to retailers
BWWWholesaler (Wine)Wine-specific wholesale permit
BWLWholesaler (Liquor)Distilled spirits wholesale permit
IMPImporterBasic Permit Importer — imports alcohol into the United States
AFPAlcohol Fuel PlantProduces alcohol for fuel use (not beverage)
BWNBrewer's NoticeBrewery — not publicly available (IRC §6103)
TPPTobacco PermitTobacco product permittee (out of scope for this actor)

New Permit Flag Reference

Source valueDecoded isNewPermitMeaning
1 or truetrueBrand-new permit added in this week's TTB release
0, empty, or anything elsefalseExisting permit

Tip: Schedule the actor to run every Tuesday morning with newPermitsOnly: true and you'll get a weekly feed of every new winery, distillery, importer, and wholesaler permit issued in the United States — typically 30-150 net-new records per week depending on season.


Use Cases

Beverage Industry B2B Sales & Distribution

Spirits brokers, wine sales agencies, glass/cork/closure vendors, label printers, bottling-line equipment OEMs, barrel coopers, and yeast/enzyme suppliers use TTB permittee data to:

  • Build the most comprehensive US winery and distillery prospect list that exists anywhere — every federally permitted producer in all 50 states, refreshed weekly
  • Spot newly opened DSPs the week they get their permit via isNewPermit: true — first-mover advantage on selling them tanks, stills, barrels, and consulting services
  • Segment by state and metro to assign territory — Napa/Sonoma reps, Kentucky bourbon trail reps, San Diego craft brewers liaison (note: brewery data not in TTB), Brooklyn craft spirits, Asheville/Western NC, Willamette Valley
  • Enrich CRM accounts (Salesforce, HubSpot, Pipedrive) with permit number, owner-of-record, DBA, and current premises
  • Identify import partner candidates for foreign producers entering the US three-tier system

Distributor & Three-Tier Compliance

Wine/spirits distributors and beverage compliance teams use the dataset to verify a supplier holds a current federal basic permit before opening an account, cross-reference owner name vs DBA to surface ownership changes that affect distribution agreements, pre-screen new permittees for COLA filings and brand registrations, maintain SOX-grade audit trails with timestamped scrapedAt evidence of when verification was performed, and map producer permits to wholesaler permits to model existing three-tier relationships.

Market Research & Beverage Industry Intelligence

Beverage market research firms, IWSR-style analysts, trade publications, and venture capital deal teams use the data to:

  • Quantify craft distillery growth — count new DSP permits per state per year
  • Map winery density across AVAs (American Viticultural Areas) — Napa, Sonoma, Paso Robles, Walla Walla, Finger Lakes, Texas Hill Country, Virginia, Yadkin Valley
  • Track the Kentucky bourbon boom — every new DSP in Bourbon, Nelson, Anderson, Franklin, Marion, and Daviess counties
  • Quantify the Brooklyn / Hudson Valley craft distilling scene — NY DSP permits by ZIP and year
  • Analyze the Pacific Northwest spirits surge — Portland, Seattle, Bend taproom-distilleries by year of permit
  • Identify the next wine region to invest in by spotting clusters of newly permitted wineries in non-traditional states

Mergers & Acquisitions Due Diligence

PE firms, beverage strategics, and M&A advisors deploy the dataset for target list construction (every independent winery in Sonoma County, every DSP in Tennessee, every importer in NY/NJ), pre-LOI ownership verification (confirm the target's permit is current and ownership matches the data room), roll-up screening (identify multi-property operators by grouping on ownerName), competitive landscape mapping before bidding, and post-close compliance integration to ensure acquired entities' permits stay current under the new parent.

Beverage law firms, in-house compliance counsel, and state ABC investigators use TTB data to confirm federal permit existence as a prerequisite for state alcohol licensing, investigate suspected unlicensed producers by absence from the federal list, build legal exhibits documenting a permittee's premises and operating name as filed, monitor permit churn as a leading indicator of business distress, and detect change-of-control events by tracking owner name changes against the same premises.

Real Estate, Site Selection & Commercial Brokerage

Commercial brokers, hospitality real estate funds, and agritourism developers use permittee density data to identify the densest distillery clusters for tour-route planning (Kentucky Bourbon Trail, Tennessee Whiskey Trail, NYC Craft Distillers Guild), find adaptive reuse opportunities near existing DSP clusters with cooperage and stillhouse infrastructure, value tasting-room real estate in Napa, Sonoma, Paso Robles, Willamette Valley, Walla Walla, and Finger Lakes wine country, source agritourism wineries as venue and event partners, and map the San Diego craft-beverage corridor.

Insurance & Risk

Commercial insurance carriers and brokers writing winery, distillery, and importer policies use the data to verify federal permit currency at bind and renewal, validate insured premises against the address on file with TTB, detect new entrants (isNewPermit as a leading indicator of new-business submissions), risk-rate operations by permit type (DSP vs winery vs wholesaler carry materially different risk profiles), and reconcile schedules of locations during multi-state risk surveys.

Hospitality, Tourism & Trade Events

Wine clubs, spirits-of-the-month subscriptions, tasting-tour operators, trade-show organizers, and culinary publications use the dataset to curate winery/distillery touring itineraries by region and permit year, recruit exhibitors for trade events (WSWA Convention, ACSA, Unified Wine & Grape Symposium), build "every distillery in [state]" content for editorial SEO, identify Asheville breweries' winery and distillery neighbors for combined craft-beverage itineraries, and source partners for collaboration releases by spotting clusters of new DSPs in the same metro.

Academic, Journalism & Public Policy Research

Universities, USDA rural economics researchers, state ag economists, and investigative journalists use TTB permittee data to study craft-beverage industry growth as economic development data, quantify post-Prohibition state-by-state distillery recovery through permit-year time series, investigate concentration vs. fragmentation in US wine and spirits production, map agritourism's role in rural revitalization by overlaying winery counts with rural population data, and report on the wholesaler tier with concentration analyses powered by BWS/BWW/BWL records.

Recruiting & Talent Sourcing

Beverage recruiters and head-hunters for winemakers, master distillers, blenders, cellar masters, plant managers, and brand ambassadors use TTB data to build target-employer lists (every DSP in Kentucky, every winery in Napa, every importer in NY), spot newly opened DSPs that will need head distillers and operations staff within 6-12 months, track ownership changes as predictive signals of executive turnover, and cross-reference with LinkedIn to identify decision-makers at each permitted producer.


Sample Queries & Recipes

Recipe 1: Every Napa & Sonoma winery (California wine baseline)

{
"permitCategories": ["wine"],
"stateFilter": ["CA"],
"newPermitsOnly": false,
"maxRecords": 0
}

Then filter county for NAPA or SONOMA downstream.

Recipe 2: Every Kentucky bourbon distillery (DSP only)

{
"permitCategories": ["spirits"],
"stateFilter": ["KY"],
"newPermitsOnly": false,
"maxRecords": 0
}

Recipe 3: New permits issued this week (weekly Tuesday cron)

{
"permitCategories": [],
"newPermitsOnly": true,
"maxRecords": 0
}

Schedule this on Apify cron every Tuesday 09:00 ET — the actor will return only entities flagged new by TTB this Monday.

Recipe 4: Brooklyn craft-spirits scene

{
"permitCategories": ["spirits"],
"stateFilter": ["NY"],
"maxRecords": 0
}

Then filter downstream on city == "BROOKLYN" or ZIP prefix 112.

Recipe 5: Pacific Northwest taproom-distillery wave (Portland, Seattle, Bend)

{
"permitCategories": ["spirits"],
"stateFilter": ["OR", "WA"],
"newPermitsOnly": false,
"maxRecords": 0
}

Recipe 6: Federal wine importer directory (importers permit list)

{
"permitCategories": ["importers"],
"stateFilter": [],
"maxRecords": 0
}

Recipe 7: Asheville / Western NC craft-beverage market scan

{
"permitCategories": ["wine", "spirits"],
"stateFilter": ["NC"],
"maxRecords": 0
}

Then filter downstream on Buncombe, Henderson, Madison, and Polk counties.

Recipe 8: Smoke test — pull 50 records to validate pipeline

{
"permitCategories": ["wine"],
"maxRecords": 50
}

Integration Examples

Google Sheets (via Apify Integration)

  1. Open the actor's Schedules tab and create a weekly run for every Tuesday 09:00 ET
  2. Attach the "Export dataset to Google Sheets" integration to the schedule
  3. Receive a fresh TTB permittee tab in your sheet every week — perfect for sales territory reviews

Make.com / Zapier / n8n

Use the Apify connector available on Make, Zapier, n8n, and Pipedream. Trigger downstream workflows on:

  • New DSPs — filter permitCategory == "Distillery" and isNewPermit == true, push to Slack
  • New wineries in your sales territory — filter by state and isNewPermit, create Salesforce Lead
  • Owner name changes — diff this week's run vs last, push to HubSpot as task
  • New importer registrations — pipe to a webhook for compliance review

Power BI / Tableau / Looker / Metabase

Connect Apify's REST API as a data source (or stage runs into BigQuery/Snowflake). Build dashboards for:

  • Craft distillery growth by state, year, county
  • Wine region permit density heatmaps
  • Three-tier concentration analysis (BWS/BWW/BWL counts by state)
  • New-permit time series as an industry-growth indicator

Postgres / Snowflake / BigQuery / Redshift

Use Apify webhooks to POST run results to your warehouse ingestion endpoint after every weekly run. Key on permitNumber for idempotent upserts. Maintain a slowly-changing-dimension table on (permitNumber, ownerName, operatingName, street, city) to capture changes over time.

Salesforce / HubSpot / Pipedrive CRM Enrichment

Run weekly, upsert against Account records keyed on permitNumber. Use isNewPermit to trigger Lead creation. Use permitCategory to route into the correct sales pod (Wine team vs Spirits team vs Wholesaler/Importer team).

Slack / Teams Notifications

Pipe new permits into a #new-ttb-permits Slack channel via webhook. Each Tuesday, your team sees every brand-new winery and distillery the federal government just licensed.


Major US Beverage Markets Covered

The TTB list is national in scope — these are the markets where the data is most strategically valuable.

Region / MetroPermit ConcentrationWhy it matters
Napa Valley (CA)Very highWorld's most valuable wine region — densely permitted wineries across 16 sub-AVAs
Sonoma County (CA)Very highRussian River, Dry Creek, Alexander Valley wineries plus growing distillery cluster
Paso Robles (CA)HighFast-growing Central Coast wine region
Willamette Valley (OR)HighPinot Noir capital; rapidly expanding distillery scene around Portland
Walla Walla / Columbia Valley (WA)HighWashington's premier wine corridor
Finger Lakes (NY)HighRiesling country plus craft distilleries
Hudson Valley & Brooklyn (NY)HighCraft distillery hotbed; federal importer concentration
Kentucky Bourbon TrailVery highBourbon County, Nelson, Anderson, Franklin, Marion — global bourbon HQ
Tennessee Whiskey countryHighLincoln, Moore, Coffee Counties — Tennessee whiskey DSPs
Asheville / Western NCMedium-highBooming craft-beverage corridor (wineries + DSPs; TTB excludes breweries)
San Diego / North County (CA)Medium-highStrong craft distillery and emerging winery presence
Texas Hill Country (TX)Medium-highFredericksburg-Stonewall winery corridor; growing DSP count
Virginia (Charlottesville, Loudoun)Medium-highMonticello AVA wineries plus emerging DSPs
NJ / NYC wholesaler corridorVery highNational concentration of BWS/BWW/BWL wholesalers
Florida (Miami, Tampa)HighImporter hub for Latin American spirits
Illinois (Chicago)HighMidwest wholesaler hub

Cost & Performance

MetricValue
EngineDirect CSV download — no headless browser
Runtime (all 4 categories, unfiltered)typically under 2 minutes
Runtime (single category)typically 15-45 seconds
Cost per full runvery low (varies by dataset size; usually under $0.05)
Pricing modelPay-per-event (transparent line-item billing)
Data freshnessWeekly (TTB updates every Monday)
Auth requiredNone
Proxy requiredNo (optional Apify proxy supported)
ConcurrencySafe to run multiple parallel filtered configurations
Memory footprint256 MB minimum, 512 MB recommended for full unfiltered runs
Free-tier compatibleYes — fits comfortably in Apify Free Plan compute

  • Public data only — every field returned is part of the TTB Federal List of Permittees, published by the US Department of the Treasury under the Freedom of Information Act at ttb.gov/public-information/foia/list-of-permittees
  • No PII — the dataset contains no SSNs, dates of birth, financial account numbers, individual phone numbers, or personal email addresses
  • No PHI — alcohol regulatory data does not contain protected health information
  • Owner-of-record names are entity names (LLCs, Inc., Corp.) and, where individuals personally hold the permit, those names are already part of the public federal record
  • Premises addresses are the business / bonded premises address as filed with TTB — not a residence (in most cases)
  • No brewery (BWN) data — protected under IRC Section 6103. Anyone offering "TTB brewery data" sourced from this endpoint is misrepresenting the dataset. For brewery information, use TTB's public COLA Online label registration data instead (different scope).
  • GDPR / CCPA — owner names that are personal names of natural persons could be considered personal data in some jurisdictions. The data consumer is responsible for compliance with applicable privacy law
  • CAN-SPAM, TCPA, state Do-Not-Call — the dataset includes no email or phone, but compliance with marketing law on derivative outreach is the data consumer's responsibility
  • TTB Terms of Use — the FOIA-published list is intended for public information use; do not use the data for unlawful purposes including identity fraud, harassment, or attempts to circumvent state liquor licensing

Important: This actor returns only data that TTB itself publishes openly. It does not bypass authentication, scrape protected endpoints, or extract anything outside the FOIA Reading Room scope.


Frequently Asked Questions

How fresh is the data?

TTB updates the Federal List of Permittees every Monday. The actor pulls the current live files on each run — typically less than 7 days behind the federal data of record.

Does this include breweries?

No. Brewer's Notice (BWN) data is not publicly available — it's protected under IRC Section 6103 and excluded from the TTB FOIA permittee export. This is a federal restriction, not a limitation of the actor. For brewery-related data, use TTB's COLA Online label registration data (covers label approvals, not entity-level permits) or state-level brewery licensing boards.

How many records will I get?

Numbers vary by category and weekly fluctuation. As a rough order of magnitude: thousands of DSPs, tens of thousands of wineries, and hundreds to low thousands of importers and wholesalers respectively. Exact counts shift weekly as new permits are issued and old ones are surrendered. Set maxRecords: 0 to get everything in scope.

Does the scraper need a TTB API key or login?

No. TTB publishes the permittee files as public FOIA downloads — no authentication, no token, no API key. You only need an Apify account.

Why does the URL path contain 2026-05? Will it break next month?

The URL path embeds the current month (YYYY-MM), and TTB rotates it monthly. The actor solves this by discovering the CSV URLs from the landing page on every run rather than hardcoding them. The monthly rotation never breaks the actor.

Can I filter by county or city?

The actor filters by state at the source level. For county or city filtering, set stateFilter to narrow the geographic scope, then apply your county/city filter downstream (SQL WHERE, Pandas, Sheets filter, etc.). The dataset includes county, city, street, and zipCode fields ready for filtering.

How does the isNewPermit flag work?

TTB tags each row in the weekly file with New_Permit_Flag = 1 if the permit was issued in the most recent week. The actor decodes this into a boolean isNewPermit. Set newPermitsOnly: true to get only this week's net-new permits — perfect for sales prospecting and journalism.

Are emails or phone numbers included?

No. TTB does not publish licensee email or phone in the permittee export. Use the owner/operating name + city + state to enrich via downstream B2B contact APIs.

Can I cross-reference these to state ABC licenses, schedule weekly, or run on the Free Plan?

Yes to all three. Federal TTB permits are a prerequisite for state ABC licensing — match on owner name + premises city/state + DBA against state ABC databases (we maintain Apify actors for several state licensing boards, see Related Actors). Use Apify's Scheduler to trigger this actor every Tuesday 09:00 ET (after TTB's Monday refresh) for a fully automated weekly feed. Typical unfiltered full runs cost a small fraction of the Free Plan's monthly compute allocation.

What's a DSP vs a winery vs a wholesaler?

  • DSP (Distilled Spirits Plant) — federally permitted to produce, process, bottle, or warehouse distilled spirits (whiskey, vodka, gin, rum, tequila, brandy)
  • Winery (W) — bonded to produce, blend, or bottle wine (including bonded wine cellars and bottling houses)
  • Wholesaler (BWS / BWW / BWL) — federally permitted to distribute alcohol from producers/importers to retailers under the three-tier system
  • Importer (IMP) — federally permitted to import alcoholic beverages into the United States

What about Alcohol Fuel Plants (AFPs)?

AFPs produce alcohol intended for fuel use (not human consumption). They appear in the dataset under permitCategory: "Alcohol Fuel Plant" when TTB includes them in the public files.

Can I get COLA (Certificate of Label Approval) data with this?

Not directly. COLA filings are searchable through TTB's separate COLA Online public tool. This actor scrapes the entity-level List of Permittees — a different (and more comprehensive) source for the businesses themselves.

Is residential proxy required, and what if the landing page returns no CSV URLs?

No proxy is needed — TTB serves the FOIA files globally without geo-blocking or rate-limiting (Apify proxy is supported but rarely necessary). If the first landing-page GET returns zero CSV URLs, the actor automatically retries once after a 3-second delay. If TTB is temporarily down or restructuring the page (which has happened during major CMS changes), the actor exits with a clear status message rather than producing garbage data — re-run later.

Can I get historical snapshots / a longitudinal series?

TTB only publishes the current list. To build history, schedule the actor weekly and archive each run's dataset — Apify retains run datasets on most plans, giving you a snapshot series for trend analysis.

Does this overlap with the SAM.gov federal contractor data?

No overlap. SAM.gov is the federal contractor / grantee registration system. TTB permittee data is the federal alcohol producer / importer / wholesaler permit list. They're independent datasets serving completely different regulatory regimes — but a brand-new DSP might appear in both if they pursue federal contracts.

What formats can I export the data in?

JSON, CSV, Excel (XLSX), HTML, XML, JSON Lines, and RSS — directly from the Apify dataset view. The API also supports streaming JSON Lines for warehouse ingestion.


If you need licensing data from other US regulators or related compliance datasets, check these complementary actors:

Pair the TTB Alcohol Permittee Scraper with SAM.gov and BBB for the strongest US business-graph enrichment pipeline.


Comparison vs. Alternatives

ApproachSetup timeData freshnessCost (full feed)URL rotation handlingNew-permit flagPermit-number decoding
This actorunder 1 minuteWeeklyvery lowAutomatic landing-page discoveryBuilt-in isNewPermitBuilt-in state/type/year decoder
Manual CSV download~5-10 min/weekWeeklyFreeManual URL fixup monthlyRaw New_Permit_Flag columnNone
Custom Node/Python script8-16 hours devWeeklyFree + infraDIYDIYDIY
Paid beverage industry listDays-weeksMonthly or quarterly$$$ per seatVendor handlesOften missingOften missing
FOIA request to TTBWeeksStale by the time it arrivesFree but slown/an/an/a

Why Pay-Per-Event Pricing?

The actor uses Apify's pay-per-event pricing model rather than a flat subscription or per-CU billing. That means:

  • You only pay when the actor actually runs
  • Pricing scales with what you actually consume — not what a sales rep guessed for your account
  • Transparent, line-item billing visible inside the Apify console
  • No monthly minimums or annual commitments
  • Cheap to evaluate — kick the tires with maxRecords: 50 for pennies
  • Predictable cost-of-goods for downstream products you build on top of the data

Changelog

VersionDateNotes
1.0.02026-05Initial public release — landing-page URL auto-discovery, four permit categories (wine, spirits, wholesalers, importers), permit-number decoder, isNewPermit flag, state filter, pay-per-event pricing

Keywords

TTB scraper · TTB permittee data · TTB alcohol permittee scraper · TTB API · TTB List of Permittees · federal alcohol permit data · TTB winery list · TTB distillery list · TTB DSP data · distilled spirits plant data · winery brewery distillery license lookup · alcohol distributor database · DSP distilled spirits plant data · TTB COLA permittee search · BWN brewer's notice · TTB FOIA download · TTB CSV scraper · Alcohol Tobacco Tax and Trade Bureau data · US winery database · US distillery directory · craft distillery prospect list · craft winery prospect list · Napa Valley winery data · Sonoma winery list · Kentucky bourbon distillery list · Tennessee whiskey distillery data · Brooklyn craft distillery data · Asheville winery data · San Diego craft distillery list · Portland Oregon distillery data · Willamette Valley winery list · Texas Hill Country winery data · Finger Lakes winery data · Walla Walla winery list · Paso Robles winery list · Virginia winery data · Yadkin Valley winery data · US alcohol importer directory · US wine importer list · alcohol wholesaler database · three-tier distribution data · federal alcohol basic permit lookup · winery permit verification · distillery permit verification · craft beverage market research · beverage industry B2B leads · alcohol industry compliance data · Apify alcohol actor · ttb.gov scraper · beverage M&A target list · weekly new alcohol permits feed


Support

  • Bug reports: Use the Issues tab on the Apify Store actor page
  • Feature requests: Same place — please describe your beverage industry use case so we can prioritize correctly
  • Direct contact: Through the Apify developer profile messaging

If this actor saves you time, a 5-star rating on the Apify Store helps other beverage industry, compliance, and B2B sales teams discover it. Cheers!