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

TTB alcohol permittee scraper & API: search the US Alcohol and Tobacco Tax and Trade Bureau registry and export permit number, business name, type, address, status and dates. Beverage-alcohol compliance, licensing and B2B lead data — fast, no login.

Pricing

from $1.50 / 1,000 results

Rating

0.0

(0)

Developer

Haketa

Haketa

Maintained by Community

Actor stats

0

Bookmarked

7

Total users

1

Monthly active users

a day ago

Last modified

Features

Limited permissions

Share

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

Apify Actor

Extract the official US federal alcohol permittee register from the Alcohol and Tobacco Tax and Trade Bureau (TTB) — every licensed winery, distilled spirits plant, alcohol importer, and wholesaler nationwide. Get structured B2B intelligence with legal owner names, DBA/operating names, decoded permit numbers, physical premises addresses, counties, issue years, and weekly new-permit flags. No login, no coding.

Export to JSON, CSV, Excel, XML, or API in seconds for beverage-industry B2B sales, three-tier distributor compliance, lead generation, M&A due diligence, and market intelligence.


⚡ At a glance

CapabilityDetails
🎯 Primary TargetUS Alcohol and Tobacco Tax and Trade Bureau (TTB) Federal List of Permittees
🍾 Permit CategoriesDistilleries (spirits), Wineries (wine), Wholesalers (wholesalers), Importers (importers), plus supplemental registers
🌎 Geographic ScopeAll 50 US States, District of Columbia, Puerto Rico (PR), US Virgin Islands (VI), and Guam (GU)
🆕 Weekly Lead SignalBuilt-in newPermitsOnly filter isolates brand-new permits issued in the latest weekly TTB release
📈 Scale & Pagination1,000+ to 50,000+ records per run (maxRecords: 0 streams the complete federal register; zero artificial caps)
⚡ Prefill Speed~10–20 seconds for 100 de-duplicated records out of the box
🛡️ DeduplicationAutomatic deduplication by permitNumber across all selected permit files
📦 Bulk ExportJSON, CSV, Excel (XLSX), JSON Lines, XML, HTML, REST API, Webhooks, Make, Zapier, n8n

🔎 Why scrape TTB alcohol permittee data?

The Alcohol and Tobacco Tax and Trade Bureau (TTB) is the US Department of the Treasury agency that issues the federal basic permit required to legally produce, blend, bottle, import, or wholesale beverage alcohol in the United States. Every licensed winery, craft distillery, spirits bottler, alcohol importer, and three-tier wholesaler appears in TTB's federal permittee register.

For B2B sales teams, beverage distributors, packaging suppliers, compliance officers, and market analysts, this register is the single ground-truth directory of the US wine and spirits industry. However, working with raw TTB files manually is tedious: download paths rotate every month, column headers vary across permit categories, and state/year metadata is locked inside compound permit numbers.

This TTB Alcohol Permittee Scraper turns the federal register into a clean, query-ready dataset and TTB data extractor pipeline:

  • Build high-intent beverage B2B lead lists — reach every licensed winery, distillery, importer, and wholesaler across any combination of US states.
  • Capture newly licensed producers first — turn on newPermitsOnly to extract freshly issued permits every week before competitors know they exist.
  • Automate three-tier compliance & KYB verification — verify that a supplier, producer, or distributor holds an active federal permit and match legal entity names (ownerName) against trade names (operatingName).
  • Enrich CRM & data warehouse records — append federal permit numbers, county-level premises addresses, and issue years to Salesforce, HubSpot, Snowflake, or BigQuery.
  • Track craft-beverage market expansion — analyze permit issuance trends by state, county,ZIP code, and year for M&A target screening and regional market sizing.

✨ Key features of this TTB scraper

  • ✅ Automatic monthly URL discovery — dynamically resolves the latest published TTB register files on every run so monthly file-path rotations never interrupt scheduled workflows.
  • ✅ Complete category coverage — select Distilleries (spirits), Wineries (wine), Wholesalers (wholesalers), Importers (importers), or leave permitCategories empty to collect across all categories.
  • ✅ 1,000+ results pagination & full-register streaming — collect 100, 1,000, 10,000, or the entire federal register (maxRecords: 0) in a single run with dynamic budget balancing across categories.
  • ✅ Smart permit-number decoding — automatically parses compound TTB permit numbers (such as CA-W-15651 or KY-DSP-21008) into state, permitType, and four-digit permitYear.
  • ✅ Authoritative industry classification — preserves TTB's official industryType (Wine Producer, Distilled Spirits Plant, Importer (Alcohol), Wholesaler (Alcohol)) alongside normalized permitCategory labels.
  • ✅ Source-level state & new-permit filtering — filter by any combination of 54 US states/territories (stateFilter) and/or newly issued permits (newPermitsOnly).
  • ✅ Zero-browser efficiency — lightweight HTTP execution uses minimal memory and completes 100-record prefill runs in seconds with no proxy required.

Note on Brewery data: Under Internal Revenue Code (IRC) Section 6103, federal Brewer's Notice (brewery/beer) records are classified as protected taxpayer information and are excluded by TTB from public FOIA releases. This actor extracts 100% of the categories TTB publishes publicly (wineries, distilleries, wholesalers, and importers).


🎯 High-value use cases

Industry / TeamHow Teams Use This TTB Data Extractor
🍾 Beverage Equipment & Packaging SalesBuild targeted prospect lists of wineries and distilleries for barrels, stills, glass bottles, labels, corks, closures, and canning lines.
🚚 Wine & Spirits DistributorsIdentify emerging craft producers by state and verify supplier permit status prior to distribution onboarding.
🆕 First-Mover B2B Lead GenerationSchedule weekly runs with newPermitsOnly: true to alert sales reps the week a new winery or distillery receives its federal permit.
⚖️ Compliance, Legal & Licensing TeamsCross-check permitNumber, ownerName, and premises addresses for three-tier regulatory audits and state ABC license filings.
💼 Private Equity & Beverage M&AMap multi-permit holding groups by grouping on ownerName and analyze regional concentration across Napa, Sonoma, Kentucky, or Texas.
🛡️ Commercial Insurance & UnderwritingValidate insured distillery/winery premises addresses and track newly permitted facilities requiring specialty coverage.
📊 Market Research & Economic AnalysisQuantify decade-over-decade growth in US wineries, distilleries, and importers by state, county, and ZIP code.

📥 Input parameters

All input fields are optional. Running with the default prefill returns a fast 100-record sample of distilleries and wineries; running with {} returns a balanced nationwide mix across all permit categories.

ParameterTypeDefault / PrefillDescription
permitCategoriesarray<string>["spirits", "wine"] (prefill)Select which alcohol permit types to include: spirits (Distilleries), wine (Wineries), wholesalers (Wholesalers), importers (Importers). Leave empty [] to include all categories.
newPermitsOnlybooleanfalseWhen true, returns only permits flagged by TTB as newly issued this week. Ideal for weekly lead-generation alerts.
stateFilterarray<string>[]Filter results to specific two-letter US state or territory codes (e.g., ["CA", "OR", "WA"] or ["KY", "TN"]). Leave empty for all states and territories.
maxRecordsinteger0 (default) / 100 (prefill)Maximum total records to save across all selected categories. Set 0 for unlimited (extracts every matching permit, 1,000+ to 50,000+).
requestDelayinteger300Delay in milliseconds between category file downloads (0–10000).
proxyConfigurationobject{ "useApifyProxy": false }Optional Apify Proxy configuration. TTB serves public register files directly without requiring proxies.

Example 1 — Fast prefill sample (Distilleries & Wineries)

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

Example 2 — Bulk 1,000+ extraction for West Coast Wineries & Distilleries

{
"permitCategories": ["wine", "spirits"],
"stateFilter": ["CA", "OR", "WA"],
"newPermitsOnly": false,
"maxRecords": 2500
}

Example 3 — Weekly net-new alcohol permits lead feed (All States)

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

📤 Output schema & field reference

Every record uses a consistent flat schema across all permit categories so you can load the dataset directly into PostgreSQL, Snowflake, BigQuery, Google Sheets, or any CRM without custom transformation.

Sample JSON output

{
"permitNumber": "AK-W-15001",
"ownerName": "ALASKA MEADS LLC",
"operatingName": "RING OF FIRE MEADERY",
"permitType": "W",
"permitCategory": "Wine Producer",
"industryType": "Wine Producer",
"sourceFile": "wine",
"state": "AK",
"permitYear": "2015",
"street": "178 E BUNNELL AVE",
"city": "HOMER",
"zipCode": "99603",
"county": "KENAI PENINSULA",
"isNewPermit": false,
"scrapedAt": "2026-11-10T02:50:00.000Z"
}
{
"permitNumber": "AK-I-15000",
"ownerName": "ROGER ROM WINE IMPORTS LLC",
"operatingName": null,
"permitType": "I",
"permitCategory": "Importer (Alcohol)",
"industryType": "Importer (Alcohol)",
"sourceFile": "importers",
"state": "AK",
"permitYear": "2015",
"street": "7721 PORT ORFORD DR",
"city": "ANCHORAGE",
"zipCode": "99507",
"county": "ANCHORAGE",
"isNewPermit": false,
"scrapedAt": "2026-11-10T02:50:00.000Z"
}

🪪 Identity & Permit Classification Fields

FieldTypeCoverageDescription
permitNumberstring🟢 High (100%)Official TTB federal permit number (e.g., CA-W-15651, KY-S-20014). Primary deduplication key.
ownerNamestring🟢 High (100%)Legal entity or corporate owner name registered with TTB.
operatingNamestring | null🟡 Conditional (~55%)Trade name / Doing Business As (DBA) name when filed separately with TTB; null when identical to legal owner.
permitTypestring🟢 High (100%)Decoded permit-type code from the permit number (W = Winery, S/DSP = Spirits/Distillery, P/BWS = Wholesaler, I/IMP = Importer).
permitCategorystring🟢 High (100%)Normalized human-readable category (e.g., Wine Producer, Distilled Spirits Plant, Importer (Alcohol), Wholesaler (Alcohol)).
industryTypestring🟢 High (100%)Raw authoritative Industry_Type classification published in the TTB register.
sourceFilestring🟢 High (100%)Source category slug (spirits, wine, wholesalers, importers, or supplemental list name).

📍 Location & Temporal Fields

FieldTypeCoverageDescription
statestring🟢 High (100%)Two-letter US state or territory code (e.g., CA, KY, NY, PR).
streetstring | null🟢 High (~99%)Physical premises street address on file with TTB.
citystring | null🟢 High (~99%)Premises city name.
zipCodestring | null🟢 High (~99%)Premises postal ZIP code (preserved as string to keep leading zeros).
countystring | null🟡 Conditional (~72%)Premises county name when reported in the TTB filing.
permitYearstring | null🟢 High (~99%)Four-digit permit issuance year decoded from the permit sequence prefix (e.g., 2015, 2024).
isNewPermitboolean🟢 High (100%)true when TTB flags the record as newly issued in the current weekly publication (New_Permit_Flag = 1).
scrapedAtstring🟢 High (100%)ISO 8601 UTC timestamp indicating when the record was extracted.

🔁 Deep pagination & 1,000+ scale

This actor is engineered for both quick 100-item previews and full-scale 1,000+ to 50,000+ record bulk exports:

  1. Unlimited extraction (maxRecords: 0) — streams every matching record across all selected categories without any artificial ceiling.
  2. Explicit large caps (maxRecords: 1000, 5000, 20000) — honors your exact target count. When running unfiltered across all categories, the actor dynamically balances the quota across categories and tops up from remaining categories if any smaller list finishes early.
  3. Global deduplication — every record is checked against an in-memory permitNumber set so overlapping supplemental files never produce duplicate rows.

⚙️ How to run & integrate

1. Run in Apify Console

  1. Open TTB Alcohol Permittee Scraper on Apify Console.
  2. Pick your permitCategories (or leave default/empty) and optional stateFilter.
  3. Set maxRecords (100 for a quick test, 1000+ or 0 for full bulk extraction).
  4. Click Start and download your dataset in JSON, CSV, or Excel.

2. Run via Python SDK

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", "KY", "TN"],
"newPermitsOnly": False,
"maxRecords": 2000,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(f"{item['permitNumber']} | {item['operatingName'] or item['ownerName']} | {item['city']}, {item['state']}")

3. Run via Node.js SDK

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('haketa/ttb-alcohol-permittee-scraper').call({
permitCategories: ['spirits'],
newPermitsOnly: true,
maxRecords: 0,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Extracted ${items.length} newly issued distillery permits.`);

4. Run via REST API (cURL)

curl -X POST "https://api.apify.com/v2/acts/haketa~ttb-alcohol-permittee-scraper/runs?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"permitCategories": ["wine", "spirits", "importers", "wholesalers"],
"stateFilter": ["NY", "NJ", "CA"],
"maxRecords": 5000
}'

📊 Permit number & category reference guide

TTB assigns every federal alcohol permittee a structured compound identifier ({STATE}-{TYPE}-{YEAR_SEQ}). Understanding how these codes map to license privileges makes downstream CRM segmentation and compliance rules straightforward:

Permit CodeCategory SlugOfficial TTB Industry TypeLicense Scope & Privileges
WwineWine ProducerBonded wineries, wine cellars, and blenders authorized to crush, ferment, cellar, blend, and bottle wine.
S / DSPspiritsDistilled Spirits PlantCraft and commercial distilleries, rectifiers, and spirits bottlers authorized to distil, age, blend, and bottle spirits.
P / BWSwholesalersWholesaler (Alcohol)Federal Basic Permit wholesalers authorized to purchase beverage alcohol for resale at wholesale to retailers and other wholesalers.
I / IMPimportersImporter (Alcohol)Federal Basic Permit importers authorized to bring foreign wine, distilled spirits, and malt beverages into the United States.

Sample SQL query for Snowflake / BigQuery / PostgreSQL

Once you export or webhook the dataset into your analytical warehouse, you can immediately run territory, cohort, and roll-up queries:

-- Top 15 US counties with the most newly issued Winery & Distillery permits
SELECT
state,
county,
permit_category,
COUNT(*) AS total_permits,
SUM(CASE WHEN is_new_permit THEN 1 ELSE 0 END) AS new_this_week,
COUNT(DISTINCT owner_name) AS unique_parent_entities
FROM ttb_alcohol_permittees
WHERE permit_year >= '2020'
GROUP BY state, county, permit_category
ORDER BY total_permits DESC
LIMIT 15;

🔌 No-code automation & CRM integrations

Connect TTB Alcohol Permittee Scraper directly to your sales and compliance stack without writing infrastructure code:

  • HubSpot / Salesforce CRM: Use Make, Zapier, or n8n to watch completed scheduled runs (newPermitsOnly: true), upsert Company records keyed on permitNumber, and assign new permits to regional territory reps by state and county.
  • Google Sheets / Airtable: Automatically append each Tuesday's newly issued wineries and distilleries to a live shared prospecting tracker.
  • Slack / Microsoft Teams Alerts: Trigger instant channel notifications whenever a new Distilled Spirits Plant or Wine Producer permit is issued in your target states.
  • Snowflake / BigQuery / Amazon S3: Stream full weekly snapshots (maxRecords: 0) via the Apify dataset API to track multi-year industry consolidation and ownership changes.

💡 Best practices & pro tips

  • Schedule weekly lead alerts on Tuesdays: TTB updates the permittee register every Monday. Schedule this actor for Tuesday morning with newPermitsOnly: true and maxRecords: 0 to automatically pipe every brand-new US winery, distillery, importer, and wholesaler into Slack, HubSpot, or Google Sheets.
  • Combine legal owner & DBA for outreach: Roughly half of permittees operate under a consumer-facing brand name (operatingName), while the rest trade under their corporate entity (ownerName). Use operatingName || ownerName as your primary display name in CRM campaigns.
  • Spot multi-site beverage conglomerates: Group the exported dataset by ownerName to see which parent corporations hold multiple winery, distillery, and importer permits across states.
  • Filter down to wine country or bourbon regions: Combine stateFilter: ["CA"] with downstream filtering on county (NAPA, SONOMA, PASO ROBLES) or stateFilter: ["KY"] for bourbon-trail territory mapping.

⚠️ Honest limitations

  • No Brewery (Beer) data: Federal Brewer's Notice records are protected from public disclosure under IRC Section 6103 and are not published by TTB.
  • No phone numbers or email addresses in source: TTB's federal register contains legal entity names, trade names, permit numbers, and physical premises addresses, but does not include phone numbers or emails. Pair the output with a B2B contact or Google Maps enrichment actor when direct contact details are needed.
  • DBA & county availability depends on filing: operatingName (~55%) and county (~72%) are populated whenever present in TTB's official record and returned as null when not filed.

❓ Frequently asked questions

How fresh is the TTB permittee data?

TTB refreshes the Federal List of Permittees every Monday. Because this actor fetches the live files directly on every run, your dataset always reflects the latest weekly federal publication.

How many records can I extract in a single run?

Set maxRecords: 0 to extract the entire federal register across all selected categories (tens of thousands of permits), or set any specific target such as 1000, 5000, or 10000.

How fast does the scraper run?

A 100-record prefill run typically finishes in 10–20 seconds, and a full multi-thousand-record extraction completes in under 60 seconds using standard 512 MB–1 GB memory.

Do I need proxies or an API key?

No API key, account, or proxy is required. TTB publishes these registers openly, and the default configuration runs cleanly without proxies.

Why are some operatingName values null?

Many licensees operate directly under their legal LLC or corporate name (ownerName) without registering a separate DBA/trade name with TTB. When no separate DBA is registered, operatingName is null.

Can I export the results to CSV or Excel?

Yes. Every Apify dataset can be downloaded directly as CSV, Excel (XLSX), JSON, JSON Lines, XML, or HTML, or queried via the Apify REST API.

How can I track ownership changes or newly permitted locations over time?

Schedule a recurring weekly run with maxRecords: 0 (full register) or newPermitsOnly: true (net-new permits only) and store the output in your database keyed by permitNumber. Comparing snapshots week-over-week highlights newly issued permits (isNewPermit: true) as well as updates to ownerName, operatingName, or premises street/city.

Does the scraper support territories like Puerto Rico and the US Virgin Islands?

Yes. stateFilter includes all 50 US states, the District of Columbia (DC), Puerto Rico (PR), the US Virgin Islands (VI), and Guam (GU). When stateFilter is left empty, records from all states and territories are included automatically.

What happens if I run the actor with completely empty input {}?

When launched with {} (no categories, states, or explicit record limit), the actor automatically collects a balanced 150-record sample spread evenly across distilleries, wineries, wholesalers, and importers so you can inspect the schema across every category in ~15 seconds.



📋 Changelog

  • v1.2 (2026-11) — Unlocked 1,000+ to unlimited deep extraction (maxRecords: 0 default with fast 100 prefill), added dynamic cross-category quota balancing with overflow top-up so large multi-category runs always reach target volume, added cross-file permitNumber deduplication, and expanded documentation.
  • v1.1 (2026-10) — Added authoritative industryType mapping (Wine Producer, Distilled Spirits Plant, Importer (Alcohol), Wholesaler (Alcohol)) and improved compound permit-number year decoding.
  • v1.0 (2026-04) — Initial release with automatic monthly TTB FOIA CSV discovery, state & weekly new-permit filtering, and normalized schema.
⌂ 换网址