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

US Firearms License (FFL) & Gun Dealer Leads Scraper

Pricing

from $1.24 / 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

Download the official ATF Federal Firearms Licensee (FFL) list: 77,000+ licensed gun dealers, manufacturers, importers and pawnbrokers with address, county, phone, license type and expiry. Track new licenses, verify FFL numbers in bulk. Independent tool, not affiliated with any government agency.

Pricing

from $1.24 / 1,000 firearms licensee (ffl) records

Rating

0.0

(0)

Developer

Scrape Sage

Scrape Sage

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

7 days ago

Last modified

Share

Disclaimer: This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by the U.S. Bureau of Alcohol, Tobacco, Firearms and Explosives (ATF) or any government body. All trademarks mentioned are the property of their respective owners. "ATF federal firearms licensee listings" is referenced only to describe the public data source this Actor collects from.

Turn the official ATF Federal Firearms Licensee (FFL) list into a clean B2B lead list. Get every active US firearms business - about 77,000 licensed dealers, gunsmiths, manufacturers, importers and pawnbrokers - with business and licensee name, premise and mailing address, county, phone, license type, license expiry date and a lead score. See which licenses are new, renewed, updated or removed since last month, verify a list of FFL numbers in bulk, or run it on a schedule to receive only newly licensed businesses. No browser, no API key, no login.

Why this FFL scraper?

ATF publishes one big monthly spreadsheet. This actor turns it into ready-to-use, filterable, decoded records:

ATF's monthly downloadThis actor
Newest monthly list, found automaticallyYou pick the month on atf.govYes, every run
License types in plain EnglishCodes only (01, 07...)Name, short name and category
License expiry dateHidden in the FFL number ("9C")2029-03-01 + months until expiry
County3-digit codeCounty name + 5-digit FIPS code
New / renewed / updated / removed vs last monthNoEvery row, plus a filter
Bulk FFL number verificationOne number at a time (FFL eZ Check)Hundreds per run, renewals detected
Filters by state, city, county, ZIP, type, name, phone, expiryNoYes
Owner name for individual licenses"LAST, FIRST"First name, last name, full name
Lead score and signalsNo0-100 score + signals
Older monthly lists (January 2021 onwards)Manual downloadlistingMonth: "2026-07"

What you get

FieldExampleNotes
fflNumber5-74-491-07-9C-04321Full 15-character FFL number, formatted
fflShortNumber5-74-04321Region, district and sequence: stays the same when a license is renewed (the "first 3 and last 5" FFL eZ Check uses)
licenseType, licenseTypeName, licenseCategory07, Manufacturer of Firearms, Manufacturer
licenseExpirationDate, monthsUntilExpiration2029-03-01, 30Decoded from the FFL number
licenseeName, businessName, displayNameACME FIREARMS MFG INC, ACME DEFENSELegal license name and trade name (DBA)
entityTypeCorporationLLC, Corporation, Company, Individual / Sole proprietor...
ownerName, ownerFirstName, ownerLastNameJohn A SmithFor licenses held by individuals
premiseStreet, premiseCity, premiseState, premiseZip, premiseFullAddress9 FACTORY RD, Round Rock, TX 78664Licensed premises
countyName, countyFipsWilliamson County, 48491County of the licensed premises
mailStreet ... mailFullAddress, mailingSameAsPremisePO BOX 5, Round Rock, TX 78680Mailing address as filed with ATF
voicePhone, phoneE164, phoneAreaCode(512) 555-0199, +15125550199
leadScore, leadSignals100, ["manufacturer", "hasPhone", ...]Higher = more valuable B2B prospect
changeSincePreviousMonth, changedFields, previousFflNumberrenewed, ["licenseExpirationDate"]Compared with ATF's previous monthly list
dataSourceMonth, listingPublishedAt, sourceUrl2026-09, 2026-09-21T15:55:38ZWhich ATF list the row came from
verificationStatus, verificationNote, inputFflNumberlistedOnly when you verify FFL numbers
monitorEventnewOnly in monitoring mode

Use cases

  • Sell to gun stores and ranges: POS, inventory, bound-book and compliance software, e-commerce platforms, payment processors, distributors and wholesalers.
  • Fresh leads every month: newly licensed businesses (changeTypes: ["new"]) are setting up shop and buying everything at once.
  • Renewal-season outreach: licenses expiring in the next few months (expiringWithinMonths: 3) for insurance, compliance and legal services.
  • Reach manufacturers and importers: machinery, components, packaging, logistics, testing and regulatory vendors.
  • Verify a dealer list: check hundreds of FFL numbers (transfer dealers, B2B customers) against the current ATF list in one run.
  • Market research and territory planning: count and map licensees by state, county, ZIP or license type; track openings and closures month to month.

How to use

  1. Click Try for free.
  2. Pick your filters, for example States TX, or Counties Harris County, TX.
  3. Optionally narrow by License types (e.g. 07 manufacturers), Business name contains (pawn, tactical), With phone number only, License expiring within (months) or Only these changes (New licenses).
  4. Set Max results and run. Export to CSV, Excel, JSON or Google Sheets, or pull the results by API.

To verify licenses instead, paste FFL numbers into FFL numbers to verify (one per line) and run.

Input

FieldTypeDescription
statesarrayPremise state(s) as two-letter codes: TX, FL, PR... (a pick-list in the Console). Empty = whole country.
citiesarrayPremise city: Houston or Springfield, MO.
countiesarrayHarris, Harris County, TX, Miami-Dade or FIPS 48201.
zipCodesarrayFull ZIP (77002) or prefix (770).
licenseTypesarray01, 02, 06, 07, 08, 09, 10, 11.
licenseCategoriesarrayDealer, Pawnbroker, Manufacturer, Importer.
businessOnly / withPhoneOnlybooleanOnly licensees with a trade name / a valid phone number.
businessNameContains / licenseeNameContains / nameContainsstringText search in the trade name, the legal name, or either.
expiringWithinMonthsintegerLicenses expiring within N months of the list's month.
fflNumbersarrayFFL numbers to verify (full or first 3 + last 5).
compareWithPreviousMonthbooleanMark new / renewed / updated / unchanged (default on).
changeTypesarrayKeep only new, renewed, updated, unchanged or removed.
listingMonthstringAn older list, YYYY-MM (January 2021 onwards).
maxResultsintegerMaximum records this run (default 100; raise it for a whole state or the full list).
sortBystringleadScore (default), businessName, state, source.
monitorMode / monitorKeyboolean / stringOnly licensees new since the last run, per saved watch.
regionCodes / countyCodesarrayAdvanced: segments of the FFL number.

Example inputs

New firearms businesses licensed in Texas this month:

{
"states": ["TX"],
"changeTypes": ["new"],
"maxResults": 500
}

Manufacturers and importers in Florida with a phone number, best leads first:

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

Verify FFL numbers:

{
"fflNumbers": ["5-74-491-07-9C-04321", "5-74-99999"]
}

Output

Each record is one Federal Firearms Licensee (abridged example with made-up values):

{
"fflNumber": "5-74-491-07-9C-04321",
"fflShortNumber": "5-74-04321",
"licenseType": "07",
"licenseTypeName": "Manufacturer of Firearms",
"licenseCategory": "Manufacturer",
"licenseExpirationDate": "2029-03-01",
"monthsUntilExpiration": 30,
"licenseeName": "ACME FIREARMS MFG INC",
"businessName": "ACME DEFENSE",
"displayName": "ACME DEFENSE",
"entityType": "Corporation",
"ownerName": null,
"premiseFullAddress": "9 FACTORY RD, Round Rock, TX 78664",
"countyName": "Williamson County",
"countyFips": "48491",
"mailFullAddress": "PO BOX 5, Round Rock, TX 78680",
"mailingSameAsPremise": false,
"voicePhone": "(512) 555-0199",
"phoneE164": "+15125550199",
"leadScore": 100,
"leadSignals": ["manufacturer", "hasPhone", "hasBusinessName", "incorporated", "separateMailing"],
"changeSincePreviousMonth": "renewed",
"changedFields": ["licenseExpirationDate"],
"previousFflNumber": "5-74-491-07-6C-04321",
"comparedWithMonth": "2026-08",
"dataSourceMonth": "2026-09",
"listingPublishedAt": "2026-09-21T15:55:38.000Z",
"source": "ATF Federal Firearms Licensee registry"
}

Use the FFL overview, Business leads, Manufacturers & importers, Changes vs last month and FFL verification views to switch focus. A run summary (which list was read, when ATF published it, how many licensees matched) is saved as OUTPUT in the run's key-value store.

Good to know

  • ATF publishes a new list about once a month, usually in the second half of the month. Every run reads the newest list; dataSourceMonth and listingPublishedAt say exactly which one.
  • No Type 03 collectors. ATF leaves Curio & Relic collector licenses (individual hobbyists) out of every list it publishes, so every record is a firearms business license.
  • No emails or websites. ATF's list does not contain them; phone numbers and addresses are exactly as licensees filed them with ATF.
  • Expiry dates come from the FFL number: the 5th segment is the last digit of the expiry year plus a month letter, and licenses expire on the 1st of that month. A license past its expiry date can still be listed while its renewal is processed.
  • County comes from the county code in the FFL number, which is the Census FIPS code of the licensed premises.
  • Owner names are filled only for licenses held by individuals (written "LAST, FIRST" by ATF); companies leave them empty.
  • Changes compare with ATF's previous list. A renewal changes the expiry part of the FFL number, so renewals are reported as renewed, never as new licenses. removed rows carry last month's details.
  • Verification matches on the first 3 and last 5 characters of the FFL number, like ATF's FFL eZ Check, so a renewed license is still found and the row tells you its current number. Rows for numbers that are not listed are free.

How much does it cost to scrape ATF federal firearms licensee listings?

This Actor uses Apify's pay-per-event pricing: you pay for the licensee records it delivers, with no monthly rental. From 23 October 2026 there is also a very small run-start fee, charged by Apify when a run starts, which covers reading ATF's list on runs that return nothing new (for example a monitor with no new licensees). The events are:

  • Firearms licensee (FFL) record - one licensee record from the ATF list. When you verify FFL numbers, only numbers that are on the list are charged; "not listed" and "invalid number" rows are free.
  • Actor start (from 23 October 2026) - charged by Apify once when a run starts, per GB of run memory: once for a run at the default 1 GB.

The current price per record is shown on the Pricing tab of this page. Use Max results to control how many records a run returns, and set a maximum cost per run if you want a hard cap on spend.

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'],
changeTypes: ['new'],
withPhoneOnly: true,
maxResults: 500,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Got ${items.length} newly licensed Texas firearms businesses`);

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" or "check whether these FFL numbers are still active" 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, with no account and 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

  • Fresh leads every month: set Only these changes to New licenses, or turn on Monitoring mode and add a monthly Schedule.
  • Premium prospects: filter License categories to Manufacturer + Importer and keep the default Lead score sort.
  • Renewal outreach: set License expiring within (months) to 3.
  • Territories: combine Counties or ZIP codes with License types.
  • Proxies: leave the proxy setting off. The actor downloads ATF's file directly and falls back to Apify proxy on its own if atf.gov ever refuses a request.

FAQ

Where does the data come from? From ATF's monthly Federal Firearms Licensee list, published by the U.S. Bureau of Alcohol, Tobacco, Firearms and Explosives on atf.gov. The actor always uses the newest list unless you set listingMonth.

How fresh is it? As fresh as ATF's newest list, which ATF updates about once a month. Each record carries dataSourceMonth and listingPublishedAt.

Is this public data? Yes. ATF publishes the list for industry and public use. You are responsible for using it in line with applicable laws, including the rules on marketing to individuals.

Does it include emails or websites? No. ATF's list does not contain them. It does include the licensee's phone number and full premise and mailing addresses.

How do I get only new licensees? Either set Only these changes to New licenses (licenses that were not on ATF's previous list), or turn on Monitoring mode and run on a Schedule: the first run returns the current list and remembers it, and each later run returns only licensees that joined ATF's list since. Renewals are never counted as new.

Can I verify FFL numbers? Yes. Put them in FFL numbers to verify. You get one row per number: listed with the full current record (and the newer number if the license was renewed), not listed, or invalid number. Only listed numbers are charged.

Can I get an older list? Yes, set listingMonth (e.g. 2025-12). ATF's online archive starts in January 2021 and is missing a few months.

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

A field is empty - why? Only because ATF's list doesn't carry that value for the licensee (no trade name on file, a company has no owner name, no phone on file), never because the scraper skipped it.

Data & lawful use

The source is an official public register, published so that anyone can consult it. Records can name individuals (individual licence holders), so the output may contain personal data even though it is public. If you are in the EU or UK you are the data controller for what you do with it: have a lawful basis, honour access and deletion requests, and respect the register's own reuse conditions, which can restrict marketing or commercial use.

Under Apify's Standard Actor Contract, which governs your use of this Actor, you are the controller of any personal data in your input and output and scrapesage acts only as your processor: that data is processed solely to run your job, written only to your own Apify storage, never used for any other purpose and never shared onward. If you need help with a data-subject request that involves this Actor's output, open an issue on the Issues tab.

Disclaimer

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by the U.S. Bureau of Alcohol, Tobacco, Firearms and Explosives (ATF) or any government body. All trademarks mentioned are the property of their respective owners.

"ATF federal firearms licensee listings" is referenced only in a descriptive, nominative sense - to identify the public data source this Actor collects from. This Actor is not an official product or service of the U.S. Bureau of Alcohol, Tobacco, Firearms and Explosives (ATF) and is not authorised or certified by it. It collects only publicly available records; you are responsible for ensuring your use of that data complies with applicable laws, regulations and the source's own terms of use or reuse conditions.

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.