US Firearms License (FFL) & Gun Dealer Leads Scraper avatar

US Firearms License (FFL) & Gun Dealer Leads Scraper

Pricing

$5.00 / 1,000 firearms licensee (ffl) records

Go to Apify Store
US Firearms License (FFL) & Gun Dealer Leads Scraper

US Firearms License (FFL) & Gun Dealer Leads Scraper

Scrape the official ATF Federal Firearms Licensee (FFL) registry: 130k+ licensed gun dealers, gunsmiths, manufacturers, importers & pawnbrokers with business name, full address, phone, license type & lead score. Filter by state & type. B2B firearms-industry leads + new-license monitoring.

Pricing

$5.00 / 1,000 firearms licensee (ffl) records

Rating

0.0

(0)

Developer

Scrape Sage

Scrape Sage

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

Turn the official ATF Federal Firearms Licensee (FFL) registry into a clean, structured B2B lead list. Pull every active US firearms business — 77,000+ licensed dealers, gunsmiths, manufacturers, importers and pawnbrokers — with business name, full premise & mailing address, phone, license type, region/district codes and a derived lead score — filtered by state, license type, name and more. No browser, no API key, no login.

Why this FFL scraper?

  • The complete, official source. Built directly on the ATF's monthly Complete Listing of Federal Firearms Licensees — the same authoritative file the firearms industry runs on — refreshed every month, fetched straight from atf.gov (no proxy needed).
  • Every license type, decoded. Type 01 dealers/gunsmiths, 02 pawnbrokers, 06 ammunition manufacturers, 07 firearms manufacturers, 08 importers, and 09/10/11 destructive-device licensees — each mapped to a plain-English name and category.
  • Business-only by design. The ATF business export already excludes Type 03 Curio & Relic collectors (individual hobbyists), so you get ~77K real firearms businesses, not hobbyists.
  • Real contact data. Premise address, separate mailing address, and voice phone straight from the registry — not guessed, not enriched.
  • Lead scoring built in. Every record carries a 0–100 leadScore and leadSignals (manufacturer, importer, has-phone, incorporated, separate storefront…) so the best prospects rise to the top.
  • Monitor mode. Run on a schedule and emit only newly licensed firearms businesses since your last run — fresh purchase-intent leads, automatically.

Use cases

  • Sell to gun stores & ranges — POS / inventory / bound-book & compliance software, e-commerce platforms, payment processors, distributors and wholesalers.
  • Reach manufacturers & importers — machinery, components, packaging, logistics, testing and regulatory-compliance vendors.
  • Insurance, finance & legal — FFL insurance brokers, lenders and firearms-industry attorneys.
  • Market & competitive research — count and map licensees by state, type, region or city.
  • Verification & enrichment — match an existing list against the official registry and append license type, address and phone.

How to use

  1. Click Try for free.
  2. Pick your filters — e.g. set States to TX, leave Exclude collectors on for a clean dealer list.
  3. (Optional) Narrow by License types (e.g. 07 manufacturers), Business name contains (pawn, tactical), With phone only, etc.
  4. Set Max results and run. Export to CSV, Excel, JSON or Google Sheets, or pull via API.

Input

FieldTypeDescription
statesarrayPremise state(s), two-letter USPS codes (e.g. TX, FL). Empty = all.
citiesarrayExact premise city names (case-insensitive).
zipCodesarrayPremise ZIP — full (77002) or prefix (770).
licenseTypesarrayATF type codes: 01,02,03,06,07,08,09,10,11.
licenseCategoriesarrayDealer, Pawnbroker, Manufacturer, Importer, Collector.
excludeCollectorsbooleanExclude Type 03 C&R hobbyists (already absent from the ATF business export). Default true.
businessOnlybooleanOnly licensees with a business / trade name on file.
withPhoneOnlybooleanOnly licensees with a phone number.
businessNameContainsstringSubstring match on the business / trade name.
licenseeNameContainsstringSubstring match on the legal license name.
nameContainsstringSubstring match on either name.
regionCodes / countyCodesarrayAdvanced: ATF region / county codes from the FFL number.
maxResultsintegerMax records this run (ATF business export ≈ 77,000).
sortBystringleadScore (default), businessName, state, source.
monitorModebooleanEmit only FFLs new since the last run.
monitorKeystringNames the monitor memory (one per saved watch).
proxyConfigurationobjectOptional. Direct download works; auto-falls back to Residential US if needed.

Example input

{
"states": ["TX"],
"licenseCategories": ["Manufacturer", "Importer"],
"withPhoneOnly": true,
"maxResults": 500,
"sortBy": "leadScore"
}

Output

Each record is one Federal Firearms Licensee. Example (abridged):

{
"fflNumber": "5-76-201-07-1A-04321",
"licenseType": "07",
"licenseTypeName": "Manufacturer of Firearms",
"licenseCategory": "Manufacturer",
"licenseeName": "ACME FIREARMS MFG INC",
"businessName": "ACME DEFENSE",
"displayName": "ACME DEFENSE",
"entityType": "Corporation",
"isBusiness": true,
"isManufacturer": true,
"premiseStreet": "9 FACTORY RD",
"premiseCity": "Round Rock",
"premiseState": "TX",
"premiseZip": "78664",
"premiseFullAddress": "9 FACTORY RD, Round Rock, TX 78664",
"mailStreet": "PO BOX 5",
"mailFullAddress": "PO BOX 5, Round Rock, TX 78680",
"mailingSameAsPremise": false,
"voicePhone": "(512) 555-0199",
"phoneAreaCode": "512",
"licenseRegionCode": "5",
"licenseCountyCode": "201",
"leadScore": 96,
"leadSignals": ["manufacturer", "hasPhone", "hasBusinessName", "incorporated", "separateMailing"],
"dataSourceMonth": "2026-06",
"source": "ATF Federal Firearms Licensee registry"
}

Switch between the FFL overview, Business leads, and Manufacturers & importers dataset views to focus the columns you need.

Automate & schedule

Run this actor on autopilot and pull results into your own stack:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });
const run = await client.actor('scrapesage/us-firearms-license-scraper').call({
states: ['TX'],
licenseCategories: ['Manufacturer', 'Importer'],
withPhoneOnly: true,
maxResults: 500,
sortBy: 'leadScore',
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Got ${items.length} FFL leads`);

Integrate with any app

Connect the dataset to 5,000+ apps — no code required:

  • Make — multi-step automation scenarios.
  • Zapier — push new FFL leads straight into your CRM.
  • Slack — get notified when a monitored state gets new licensees.
  • Google Drive / Sheets — auto-export every run to a spreadsheet.
  • Airbyte — pipe results into your data warehouse.
  • GitHub — trigger runs from commits or releases.

Use with AI assistants (MCP)

The output is clean, LLM-ready JSON. Call this actor from Claude, ChatGPT, or any agent framework through the Apify MCP server — ask your assistant to "find firearms manufacturers in Texas with a phone number" and let it run this scraper for you.

Agent-ready: autonomous payments (x402 & Skyfire)

This actor is agent-ready — AI agents can discover it, run it, and pay for it autonomously, with no Apify account and no human in the loop. It uses pay-per-event pricing and limited permissions, so it qualifies for Apify's agentic-payment standards:

  • x402 — an open, HTTP-native payment protocol. Agents pay per run in USDC on the Base network directly through the Apify MCP server — no account, no API key.
  • Skyfire — agent-to-service payments for fully autonomous AI-agent workflows.

Building an AI agent, MCP tool, or autonomous data pipeline? This scraper is ready to plug in and pay as it goes.

More scrapers from scrapesage

Build a complete US B2B lead-gen stack from official registries:

Tips

  • Premium prospects: filter License categories to Manufacturer + Importer, or sort by Lead score.
  • Recurring monitoring: turn on Monitor mode and create a monthly Schedule to capture only new licensees.
  • Proxies: leave proxy off — the actor downloads the official ATF CSV directly. It only falls back to Residential (US) automatically if a direct download ever fails.
  • Collectors: the ATF business export already omits Type 03 Curio & Relic hobbyists, so every record is a real firearms business.

FAQ

Where does the data come from? The official ATF Complete Listing of Federal Firearms Licensees, published monthly by the U.S. Bureau of Alcohol, Tobacco, Firearms and Explosives. The actor always uses the most recent available month.

Is this legal / public data? Yes. The FFL listing is public data the ATF publishes specifically for industry and public use. You are responsible for using it in compliance with applicable laws and the ATF's terms.

Does it include emails? No — the ATF registry does not publish email addresses. It does include the licensee's voice phone and full mailing & premise addresses. Pair this with a website/email enrichment actor if you need emails.

What's the difference between licensee name and business name? licenseeName is the legal license holder (a person or company); businessName is the trade name / DBA when one is on file. displayName picks the best of the two.

Can I export to Google Sheets, CSV, or Excel? Yes — one click in the dataset view, or automatically on every run via the Google Drive integration.

How do I get only new licensees? Turn on Monitor mode and run on a Schedule. The actor remembers which FFLs it has already returned and emits only new ones, tagged monitorEvent: "new". This works alongside Apify Schedules — the schedule starts the run; monitoring decides what's new.

A field is empty — why? Fields are empty only when the ATF registry doesn't carry that value (e.g. no separate trade name, or no phone on file), never because the scraper skipped them.

Need help?

Open an issue on the actor's Issues tab, or visit the Apify help center. Feature requests are welcome — this actor is actively maintained.