FCC License Scraper - ULS Call Sign, FRN, Towers & ECFS avatar

FCC License Scraper - ULS Call Sign, FRN, Towers & ECFS

Pricing

from $1.60 / 1,000 fcc licence or tower records

Go to Apify Store
FCC License Scraper - ULS Call Sign, FRN, Towers & ECFS

FCC License Scraper - ULS Call Sign, FRN, Towers & ECFS

Search FCC ULS licences by call sign, FRN, licensee, service, state, status and dates: amateur, GMRS, land mobile, microwave, cellular, PCS/AWS, paging, marine. Licensee phone, email, address, contact. Tower registrations, new-grant monitor from FCC daily files, ECFS docket filings.

Pricing

from $1.60 / 1,000 fcc licence or tower records

Rating

0.0

(0)

Developer

Scrapers Delight

Scrapers Delight

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Share

What does FCC License Scraper do?

FCC License Scraper reads the Federal Communications Commission's Universal Licensing System (ULS) and returns one clean row per licence: call sign, licensee, FRN, radio service, status, grant / effective / expiration dates, mailing address, and - for business licences - the licensee's phone and email plus the licence contact person. It covers every ULS service file (amateur, GMRS, land mobile, microwave, cellular, PCS/AWS/700 MHz, paging, marine, aviation, commercial operators, BRS/EBS), FCC antenna structure registrations (towers), a new-licence feed from the FCC's daily files, and ECFS docket filings.

  • ๐Ÿ“ก Every ULS service in one actor - 14 FCC licence files, 129 radio service codes, 5.2 million licences, plus 197,769 tower registrations.
  • โ˜Ž๏ธ Contacts, not just names - licensee phone, email, fax and attention line, plus the licence contact (company, person, phone, email) the FCC keeps on file.
  • ๐Ÿ”Ž Look up or search - by call sign, FRN or licensee name, or filter by service, service code, status, state, city, ZIP, applicant type, operator class, grant / expiry / last-action dates, frequency range.
  • ๐Ÿ†• New-licence feed - grants, renewals, modifications and cancellations from the FCC's daily transaction files; schedule it daily with "only new rows".
  • ๐Ÿ—ผ Towers - owner, contact, coordinates, heights, structure type and FAA study number for every registered antenna structure.
  • ๐Ÿ—‚๏ธ ECFS filings - comments, replies, ex partes and orders in any docket, with document links.
  • ๐Ÿ” No login, no API key - the actor reads the FCC's public bulk files and the keyless ECFS API.

What data can you get from the FCC ULS?

๐Ÿ“ป Call sign callSign๐Ÿข Licensee licenseeName๐Ÿ†” FRN frn
๐Ÿ“ถ Radio service + code radioServiceโœ… Status licenseStatusLabel๐Ÿ“… Grant, effective, expiration dates
โณ Days to expiry daysToExpiryโ˜Ž๏ธ Phone phone๐Ÿ“ง Email email
๐Ÿ“  Fax fax๐Ÿ  Address fullAddress๐Ÿ‘ค Attention line attentionLine
๐Ÿง‘โ€๐Ÿ’ผ Licence contact contactName๐Ÿ›๏ธ Contact company contactOrganization๐Ÿ“ž Contact phone / email
๐Ÿท๏ธ Applicant type applicantType๐Ÿ’ผ Business flag isBusinessโœ๏ธ Certifier name + title
๐ŸŽ“ Amateur class operatorClass๐Ÿ” Previous call sign, trustee๐Ÿ—บ๏ธ Market name, channel block
๐ŸŽš๏ธ Frequencies (MHz)๐Ÿ“ Licensed locations + coordinates๐Ÿ•“ FCC action history
๐Ÿ—ผ Tower owner, contact, heights๐Ÿงญ Tower latitude / longitudeโœˆ๏ธ FAA study number
๐Ÿ—‚๏ธ ECFS docket, filer, author, law firm๐Ÿ“„ ECFS document links๐Ÿ”— FCC licence / registration URL

How to scrape FCC licences with FCC License Scraper

  1. Sign up for a free Apify account - the free plan's credit covers thousands of rows.
  2. Open FCC License Scraper and pick What to scrape: licences and towers, recent licence activity, or ECFS filings.
  3. Choose the Radio services to read and add call signs, FRNs or names - or leave them empty and use the filters.
  4. Click Start. A cellular search returns in seconds; the amateur file (1.7 million licences) takes 15-40 seconds.
  5. Download the results as JSON, CSV, Excel or HTML, or read them through the Apify API.

โฌ‡๏ธ Input

Input parameters

ParameterTypeDescription
modeselectlicenses (default), recentActivity, ecfsFilings.
radioServicesmulti-selectFCC files to read. Default cellular. Also amateur, gmrs, landMobilePrivate, landMobileCommercial, broadcastAuxiliary, microwave, marketBased, paging, coastGround, ship, aircraft, commercialOperators, brsEbs, antennaStructures.
callSignslistExact call signs, e.g. W1AW, KNKA671.
frnslistFCC Registration Numbers - every licence held under each.
licenseeNameslistLicensee (or tower owner) name contains, e.g. verizon, county of.
statusesmulti-selectA, E, C, T, L, P, X. Empty = Active only for a search, any status for recent activity.
radioServiceCodesmulti-selectAny of the 129 FCC codes (HA, ZA, IG, PW, CW, AW...). Alone, it picks the right file for you.
states, cities, zipCodeslistsLicensee address (towers: where the structure stands). ZIP codes match as prefixes (770).
applicantTypesmulti-selectIndividual, Corporation, LLC, Governmental Entity, Amateur Club...
operatorClassesmulti-selectAmateur class (Extra, General, Technician...) or commercial operator licence (GROL, MROP...).
grantedFrom / grantedTo, expiresFrom / expiresTo, lastActionFrom / lastActionTodatesDate windows.
expiringWithinDaysintegerActive licences expiring in the next N days.
frequencyFromMhz / frequencyToMhznumbersLicences with an assigned frequency or band in the range.
towerStatuses, structureTypes, minHeightMeters, maxHeightMetersTower filters. Empty status = Constructed + Granted.
businessOnly, requireEmail, requirePhonebooleansKeep business licensees / licences with an email / with a phone.
recentDaysintegerRecent activity: how many of the FCC's latest non-empty daily files to read (1-7, default 3).
eventTypesmulti-selectRecent activity: newGrant (default), renewal, modification, cancellation, expiration, termination, assignment, transferOfControl, adminUpdate, lease, construction, dismantlement, otherUpdate.
ecfsProceedings, ecfsFiler, ecfsQueryECFS: docket numbers, filer name, full-text words (at least one).
ecfsReceivedFrom / ecfsReceivedTo, ecfsSubmissionTypes, ecfsExcludeExpressComments, ecfsSortECFS date window, filing types, skip one-line express comments, order.
includeFrequencies, includeLocations, includeHistorybooleansAdd frequencies, licensed locations, FCC action history.
monitorMode, monitorName, resetMonitorOnly rows earlier runs did not deliver.
maxResultsintegerDefault 100; 0 = no limit.
sortByselectFile order (fastest), newest grant, latest action, soonest expiry, tallest structure.
includeRawRecordbooleanAttach the FCC's own columns.
proxyConfigurationproxyNot needed (see FAQ).

Input JSON

{
"radioServices": ["landMobileCommercial", "landMobilePrivate"],
"states": ["CA"],
"businessOnly": true,
"requireEmail": true,
"maxResults": 500
}

Pick the radio service before anything else

Each FCC service family is a separate weekly file, and the actor reads only the files you pick. Business two-way radio users are in land mobile private (Industrial/Business pool, public safety); SMR and 220/900 MHz operators in land mobile commercial; carriers' PCS/AWS/700 MHz/CBRS licences in market-based; point-to-point links in microwave; hams in amateur. If you only know the service code (e.g. IG, CW), put it in radioServiceCodes and leave radioServices empty.

Use recent activity for new licensees, not a date window on the weekly file

mode: recentActivity reads the FCC's daily transaction files (a few KB to 3 MB each) - every licence granted, renewed or cancelled on each of the last days, with the FCC's own action codes. It is far faster and cheaper than searching a weekly file by grant date, and with monitorMode on a daily schedule it is a new-licensee feed.

โฌ†๏ธ Output

A licence (land mobile commercial, real row from the 2026-10-11 file; trimmed):

{
"recordType": "license",
"callSign": "KMJ431",
"licenseeName": "GILCOMM LLC",
"frn": "0005836275",
"radioService": "800 MHz Trunked SMR (SMR, Site-specific)",
"licenseStatusLabel": "Active",
"grantDate": "2025-06-04",
"expirationDate": "2035-05-16",
"applicantType": "Limited Liability Company",
"isBusiness": true,
"phone": "6613228650",
"email": "lbarnes@atginternet.com",
"fullAddress": "4440 EASTON DRIVE, BAKERSFIELD, CA 93309",
"contactName": "Lori Barnes",
"contactOrganization": "Applied Technology Group, Inc.",
"contactEmail": "lbarnes@atginternet.com",
"certifierTitle": "owner",
"uniqueSystemIdentifier": "1112431",
"licenseUrl": "https://wireless2.fcc.gov/UlsApp/UlsSearch/license.jsp?licKey=1112431",
"dataAsOf": "2026-10-11"
}

A new grant from the daily file (recent activity):

{
"callSign": "WSON839",
"licenseeName": "WESTERN NEW MEXICO TELEPHONE COMPANY, INC.",
"radioService": "Common Carrier Fixed Point to Point Microwave",
"grantDate": "2026-10-13",
"phone": "5753882546",
"email": "wbaxter@wnmt.com",
"contactOrganization": "Intelpath",
"eventType": "newGrant",
"eventDate": "2026-10-13",
"eventCodes": [{ "code": "LIISS", "description": "License Issued" }]
}

A tower:

{
"recordType": "antennaStructure",
"registrationNumber": "1000178",
"ownerName": "Crown Castle GT Company, LLC",
"structureTypeLabel": "Any type of Pole",
"statusLabel": "Constructed",
"structureCity": "HOUSTON",
"structureState": "TX",
"latitude": 29.782194,
"longitude": -95.617194,
"overallHeightAboveGroundM": 49.4,
"faaStudyNumber": "2008-ASW-4448-OE",
"ownerPhone": "7244162400",
"ownerEmail": "Regulatory.Department@crowncastle.com",
"contactName": "Tom Anderson",
"contactEmail": "Tom.Anderson@crowncastle.com"
}

An ECFS filing:

{
"recordType": "ecfsFiling",
"filingId": "26110080152",
"submissionType": "NOTICE OF EXPARTE",
"proceedings": ["25-180", "26-54", "14-177", "25-133"],
"filers": ["GeoLinks", "JLC Infrastructure"],
"authors": ["Andrew Magloughlin"],
"lawFirms": ["Steptoe LLP"],
"presentedTo": ["Office of Chairman Brendan Carr"],
"dateReceived": "2026-10-08T21:59:08.320Z",
"documentUrls": ["https://www.fcc.gov/ecfs/document/26110080152/1"],
"filingUrl": "https://www.fcc.gov/ecfs/search/search-filings/filing/26110080152"
}

How complete is each field? (measured on real runs, 2026-10-14)

FieldLand mobile private, TX (1,000)Land mobile commercial, all active (8,097)Cellular, all active (3,861)Amateur, TX (1,000)Towers, TX (1,000)
Licensee / owner name, FRN, address100%100%100%100%100%
Phone100%100%100%0%99.9%
Email99.6%92.8%99.7%0%95.1%
Licence contact (person or company)99.8%95.9%100%0%68.9%
Contact email98.5%93.9%99.9%0%93.5%
Fax75.2%44.8%21.2%0%-
Certifier title4.5%61.7%94.2%1%99.9% (signer)
Operator class---99%-

The FCC publishes no phone or email for individual amateur, GMRS, ship, aircraft and commercial-operator licensees - those rows carry name, FRN and mailing address. ECFS (1,000 filings in docket 25-133): filer and type 100%, document links 87.9%, authors 32.5%, law firms 13.7%.

Use cases

  • ๐Ÿ“ป Two-way radio and equipment dealers - land mobile licensees by state with phone, email and the frequency coordinator who files for them.
  • ๐Ÿ—ผ Tower and site services - every registered structure with owner contact, coordinates and height.
  • ๐Ÿ” Renewal and compliance services - expiringWithinDays: 90 finds active licences up for renewal.
  • ๐Ÿ†• New-licensee prospecting - a daily recent-activity run with monitorMode delivers each day's new grants.
  • ๐Ÿ“ถ Spectrum and carrier research - market-based licences by carrier FRN, market and channel block.
  • ๐ŸŽ™๏ธ Ham radio clubs and apps - call-sign verification, operator class, trustee.
  • โš–๏ธ Regulatory and policy teams - every filing in a docket, with law firm, author and document links.

How much does it cost to scrape the FCC ULS?

Pay per row, no start fee: $0.0016 per licence or tower ($1.60 per 1,000) and $0.0032 per ECFS filing ($3.20 per 1,000). Rows your filters drop, call signs that are not found and rows a monitor already delivered are not charged.

RowsLicences / towersECFS filings
10$0.016$0.032
100$0.16$0.32
1,000$1.60$3.20
10,000$16.00$32.00

Apify's free plan includes monthly credit that covers several thousand licences.

Integrations, API, scheduling & MCP

  • Schedules - run recent activity daily (the FCC posts daily files each morning, Eastern time) or a search weekly (weekly files are posted on Sundays).
  • Webhooks, Make, Zapier, n8n, Google Sheets, Slack - send each run's rows to your CRM or sheet.
  • API - start runs and read datasets with apify-client for Python or JavaScript.
  • MCP - call the actor from Claude, ChatGPT or any agent through the Apify MCP server.

More government data scrapers

Limits & empty runs

  • Freshness - weekly licence files are the FCC's Sunday snapshot (dataAsOf on every row); recent activity covers the last 7 daily files the FCC keeps.
  • Speed - small files answer in seconds; a search of the amateur file reads up to ~150 MB of the FCC's zip and takes 15-40 s. "File order" stops as soon as maxResults is filled; any other sort reads the whole file.
  • ECFS - the API returns at most 10,000 filings per query; newest-received order reads further by date windows, other orders stop at 10,000. The public API no longer returns filer addresses, titles or text snippets.
  • Empty runs - a run with no match ends successfully with 0 rows and costs nothing; the run summary (RUN_SUMMARY) lists call signs that were not found and why.
  • Integrity - every FCC file member read to the end is checked against its CRC-32; a corrupted download fails the run instead of returning partial data.

โ“ FAQ

How much does FCC License Scraper cost?

$0.0016 per licence or tower row and $0.0032 per ECFS filing, no start fee. 100 licences cost $0.16.

How many FCC licences can FCC License Scraper return?

All of them: 5.2 million licences across the 14 ULS files (1.7 million amateur, 860,739 land mobile private, 793,162 commercial operators, 615,496 GMRS...) and 197,769 tower registrations. Set maxResults: 0 for no limit.

Can FCC License Scraper find new FCC licences every day?

Yes - mode: recentActivity with eventTypes: ["newGrant"] and monitorMode: true on a daily schedule returns each new grant once. Over three daily files the FCC issued 828 new licences across all services (measured 2026-10-14).

Do I need an FCC API key or login to use FCC License Scraper?

No. The licence and tower data come from the FCC's public bulk files and ECFS from the FCC's keyless public API host.

Why does FCC License Scraper return no phone or email for some licences?

The FCC does not publish phone or email for individual licensees (amateur, GMRS, ship, aircraft, commercial operators). Business licences in land mobile, microwave, cellular, market-based and paging carry them on 92-100% of rows.

Can I use FCC License Scraper with the Apify API or an MCP server?

Yes - every input above works through the API, and the actor is available to AI agents through the Apify MCP server.

Can FCC License Scraper search by frequency?

Yes - set frequencyFromMhz and frequencyToMhz (equal values for one exact frequency). The actor then also reads the FCC's frequency file for the services you picked.

Does FCC License Scraper need a proxy?

No. It downloads the FCC's files directly. If the FCC ever refuses the direct download, the actor switches to a residential proxy and then the Apify Unblocker by itself, within a small per-run budget.

Why did my FCC License Scraper run return nothing?

Check the radio service: a call sign is only found in the file of its service (a ham call sign in amateur, a business radio call sign in landMobilePrivate). The default status filter is Active - add E, C and T to find expired or canceled licences.

Your feedback

Missing a field or found a bug? Open an issue on the actor's Issues tab and we will look at it.

FCC License Scraper is an independent tool and is not affiliated with or endorsed by the Federal Communications Commission.