TTB Alcohol Permittee Scraper
Pricing
from $1.50 / 1,000 results
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
Maintained by CommunityActor stats
0
Bookmarked
7
Total users
1
Monthly active users
a day ago
Last modified
Categories
Features
Share
🍷 TTB Alcohol Permittee Scraper — Federal Winery, Distillery, Importer & Wholesaler Permit Data
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
| Capability | Details |
|---|---|
| 🎯 Primary Target | US Alcohol and Tobacco Tax and Trade Bureau (TTB) Federal List of Permittees |
| 🍾 Permit Categories | Distilleries (spirits), Wineries (wine), Wholesalers (wholesalers), Importers (importers), plus supplemental registers |
| 🌎 Geographic Scope | All 50 US States, District of Columbia, Puerto Rico (PR), US Virgin Islands (VI), and Guam (GU) |
| 🆕 Weekly Lead Signal | Built-in newPermitsOnly filter isolates brand-new permits issued in the latest weekly TTB release |
| 📈 Scale & Pagination | 1,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 |
| 🛡️ Deduplication | Automatic deduplication by permitNumber across all selected permit files |
| 📦 Bulk Export | JSON, 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
newPermitsOnlyto 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 leavepermitCategoriesempty 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-15651orKY-DSP-21008) intostate,permitType, and four-digitpermitYear. - ✅ Authoritative industry classification — preserves TTB's official
industryType(Wine Producer,Distilled Spirits Plant,Importer (Alcohol),Wholesaler (Alcohol)) alongside normalizedpermitCategorylabels. - ✅ 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 / Team | How Teams Use This TTB Data Extractor |
|---|---|
| 🍾 Beverage Equipment & Packaging Sales | Build targeted prospect lists of wineries and distilleries for barrels, stills, glass bottles, labels, corks, closures, and canning lines. |
| 🚚 Wine & Spirits Distributors | Identify emerging craft producers by state and verify supplier permit status prior to distribution onboarding. |
| 🆕 First-Mover B2B Lead Generation | Schedule weekly runs with newPermitsOnly: true to alert sales reps the week a new winery or distillery receives its federal permit. |
| ⚖️ Compliance, Legal & Licensing Teams | Cross-check permitNumber, ownerName, and premises addresses for three-tier regulatory audits and state ABC license filings. |
| 💼 Private Equity & Beverage M&A | Map multi-permit holding groups by grouping on ownerName and analyze regional concentration across Napa, Sonoma, Kentucky, or Texas. |
| 🛡️ Commercial Insurance & Underwriting | Validate insured distillery/winery premises addresses and track newly permitted facilities requiring specialty coverage. |
| 📊 Market Research & Economic Analysis | Quantify 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.
| Parameter | Type | Default / Prefill | Description |
|---|---|---|---|
permitCategories | array<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. |
newPermitsOnly | boolean | false | When true, returns only permits flagged by TTB as newly issued this week. Ideal for weekly lead-generation alerts. |
stateFilter | array<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. |
maxRecords | integer | 0 (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+). |
requestDelay | integer | 300 | Delay in milliseconds between category file downloads (0–10000). |
proxyConfiguration | object | { "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
| Field | Type | Coverage | Description |
|---|---|---|---|
permitNumber | string | 🟢 High (100%) | Official TTB federal permit number (e.g., CA-W-15651, KY-S-20014). Primary deduplication key. |
ownerName | string | 🟢 High (100%) | Legal entity or corporate owner name registered with TTB. |
operatingName | string | null | 🟡 Conditional (~55%) | Trade name / Doing Business As (DBA) name when filed separately with TTB; null when identical to legal owner. |
permitType | string | 🟢 High (100%) | Decoded permit-type code from the permit number (W = Winery, S/DSP = Spirits/Distillery, P/BWS = Wholesaler, I/IMP = Importer). |
permitCategory | string | 🟢 High (100%) | Normalized human-readable category (e.g., Wine Producer, Distilled Spirits Plant, Importer (Alcohol), Wholesaler (Alcohol)). |
industryType | string | 🟢 High (100%) | Raw authoritative Industry_Type classification published in the TTB register. |
sourceFile | string | 🟢 High (100%) | Source category slug (spirits, wine, wholesalers, importers, or supplemental list name). |
📍 Location & Temporal Fields
| Field | Type | Coverage | Description |
|---|---|---|---|
state | string | 🟢 High (100%) | Two-letter US state or territory code (e.g., CA, KY, NY, PR). |
street | string | null | 🟢 High (~99%) | Physical premises street address on file with TTB. |
city | string | null | 🟢 High (~99%) | Premises city name. |
zipCode | string | null | 🟢 High (~99%) | Premises postal ZIP code (preserved as string to keep leading zeros). |
county | string | null | 🟡 Conditional (~72%) | Premises county name when reported in the TTB filing. |
permitYear | string | null | 🟢 High (~99%) | Four-digit permit issuance year decoded from the permit sequence prefix (e.g., 2015, 2024). |
isNewPermit | boolean | 🟢 High (100%) | true when TTB flags the record as newly issued in the current weekly publication (New_Permit_Flag = 1). |
scrapedAt | string | 🟢 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:
- Unlimited extraction (
maxRecords: 0) — streams every matching record across all selected categories without any artificial ceiling. - 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. - Global deduplication — every record is checked against an in-memory
permitNumberset so overlapping supplemental files never produce duplicate rows.
⚙️ How to run & integrate
1. Run in Apify Console
- Open TTB Alcohol Permittee Scraper on Apify Console.
- Pick your
permitCategories(or leave default/empty) and optionalstateFilter. - Set
maxRecords(100for a quick test,1000+or0for full bulk extraction). - Click Start and download your dataset in JSON, CSV, or Excel.
2. Run via Python SDK
from apify_client import ApifyClientclient = 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 Code | Category Slug | Official TTB Industry Type | License Scope & Privileges |
|---|---|---|---|
W | wine | Wine Producer | Bonded wineries, wine cellars, and blenders authorized to crush, ferment, cellar, blend, and bottle wine. |
S / DSP | spirits | Distilled Spirits Plant | Craft and commercial distilleries, rectifiers, and spirits bottlers authorized to distil, age, blend, and bottle spirits. |
P / BWS | wholesalers | Wholesaler (Alcohol) | Federal Basic Permit wholesalers authorized to purchase beverage alcohol for resale at wholesale to retailers and other wholesalers. |
I / IMP | importers | Importer (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 permitsSELECTstate,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_entitiesFROM ttb_alcohol_permitteesWHERE permit_year >= '2020'GROUP BY state, county, permit_categoryORDER BY total_permits DESCLIMIT 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 onpermitNumber, and assign new permits to regional territory reps bystateandcounty. - 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 PlantorWine Producerpermit 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: trueandmaxRecords: 0to 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). UseoperatingName || ownerNameas your primary display name in CRM campaigns. - Spot multi-site beverage conglomerates: Group the exported dataset by
ownerNameto 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 oncounty(NAPA,SONOMA,PASO ROBLES) orstateFilter: ["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%) andcounty(~72%) are populated whenever present in TTB's official record and returned asnullwhen 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.
🔗 Related B2B & licensing scrapers
- SAM.gov Federal Contractor Entity Scraper — US federal contractor registrations and entity data.
- BBB Business Scraper — Enrich businesses with Better Business Bureau ratings, phones, and websites.
- California DCA Professional License Scraper — California state professional and business licenses.
- Texas Pharmacy License Scraper — TSBP — Texas state regulatory license verification.
- Arizona ROC Contractor License Scraper — Arizona contractor licensing and bond records.
📋 Changelog
- v1.2 (2026-11) — Unlocked 1,000+ to unlimited deep extraction (
maxRecords: 0default with fast100prefill), added dynamic cross-category quota balancing with overflow top-up so large multi-category runs always reach target volume, added cross-filepermitNumberdeduplication, and expanded documentation. - v1.1 (2026-10) — Added authoritative
industryTypemapping (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.