KEMPDATA ← All 46 products

Public records · live product

ATF Federal Firearms Licensees

Every active Federal Firearms Licensee in the country from the ATF’s own monthly listing — dealers, pawnbrokers, manufacturers and importers, with the license type decoded and the expiration date worked out from ATF’s code.

77,150

Active licensees, nationwide

47

Columns per record, the same across every product

$2.50

Per 1,000 records. You pay only for rows delivered

09/15/2026

Counted against the live government source on this date

Who uses this

Used by FFL-transfer and shipping platforms verifying a receiving dealer, distributors prospecting by state and license type, and insurers underwriting firearms businesses.

See the data before you pay

A real 100-row sample, produced by running this exact product. Street address, phone and email are masked in the sample only — every other value is the live record.

full_namebusiness_namelicense_numbercredentialstatecitystatusexpiration_date
Gilberto Hernandez-MunozArmeria Y. Accesorios El Naranjal1-66-003-01-7F-00258Dealer in Firearms Other Than Destructive PRAguadaactive06/30/2027
Empresas Salazar LlcSalazar Armory Shooting1-66-003-07-7J-00459Manufacturer of Firearms Other Than DestruPRAguadaactive09/30/2027
Armeria 129 LlcArmeria 129 Llc1-66-003-07-8E-00486Manufacturer of Firearms Other Than DestruPRAguadaactive05/31/2028
Virginia Cardona-ValentinShooting Accessories & Service1-66-005-01-8M-00224Dealer in Firearms Other Than Destructive PRAguadillaactive12/31/2028
Pepino Gun Gallery IncAguadilla Gun Gallery1-66-005-08-8D-00477Importer of Firearms Other Than DestructivPRAguadillaactive04/30/2028

47 columns per record. Full list below.

What you get

One record per licence: the full FFL number (license_number, in ATF's region-district-county-type-expiry-sequence form), the licensee as full_name and the trade name as business_name, credential decoded from ATF's licence-type code (dealer, pawnbroker, manufacturer, importer, and the destructive-device classes), the premise city, state and zip_code, the mailing address, and the listed phone.

status is active for every record — presence in the month's listing *is* the licence being active — and status_basis says exactly that. ATF's two-character expiration code is preserved as expiration_code and decoded into expiration_date (MM/DD/YYYY, with an _iso twin), so expires_in_days and is_expiring_soon work the same way they do across the whole catalogue.

listing_month records which monthly file the record came from.

Every column you receive

  • full_name
  • first_name
  • middle_name
  • last_name
  • business_name
  • license_number
  • profession
  • credential
  • license_type
  • state
  • state_name
  • mailing_state
  • city
  • county
  • zip_code
  • status
  • is_active
  • chaperone_required
  • practice_restricted
  • ever_disciplined
  • issue_date
  • expiration_date
  • expires_in_days
  • is_expiring_soon
  • is_new_license
  • lead_reasons
  • record_type
  • issue_date_iso
  • expiration_date_iso
  • status_basis
  • status_raw
  • status_reason
  • credential_raw
  • name_raw
  • name
  • source
  • ffl_region
  • ffl_district
  • ffl_county_code
  • expiration_code
  • trade_name
  • premise_street
  • mailing_street
  • mailing_city
  • mailing_zip
  • phone
  • listing_month

Coverage

National — all 50 states, DC and the territories — from a single federal source. The listing is refreshed monthly by ATF; this Actor fetches the latest month by default, or any month back to 2021 when you set month and year. The monthly listing covers business licences; ATF does not include collectors of curios and relics (type 03) in it, so every record here is a dealer, pawnbroker, manufacturer or importer.

Where it comes from

Source: ATF Federal Firearms Listings, monthly (atf.gov)

Official government sources only — the published feeds and files the agencies maintain for public use. No scraping around defenses. Requests are paged, rate-limited, and back off when a server asks them to. Every record carries the source it came from.

Get this data

Live on the Apify Store

Run it yourself on the Apify Store — filter by state, status, or renewal window, and take the result as CSV, Excel, JSON, or straight to an API. You pay only for the rows delivered, and you can cap the charge before it runs.