FCC ASR Towers Scraper avatar

FCC ASR Towers Scraper

Pricing

Pay per event

Go to Apify Store
FCC ASR Towers Scraper

FCC ASR Towers Scraper

🗼 Export official FCC tower registrations with coordinates, heights, FAA studies, lighting, status, and owner contacts for telecom and GIS workflows.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

Export the official US Federal Communications Commission Antenna Structure Registration inventory as clean, joined, analysis-ready records.

FCC ASR Towers Scraper downloads the FCC complete archive—or a dated verified snapshot when the live archive is unavailable—and combines registration, coordinate, and owner tables for you.

Filter tower records by state, exact ASR number, status, owner, height, issue date, or geographic bounding box.

Get JSON, CSV, Excel, XML, RSS, or Parquet through Apify datasets without maintaining a 166 MB data-processing pipeline.

What does FCC ASR Towers Scraper do?

The Actor turns the FCC's pipe-delimited ASR bulk files into one record per antenna structure registration.

Each result can include:

  • 🗼 FCC ASR registration and application identifiers
  • 📍 address, state, county FIPS, latitude, and longitude
  • 📏 structure, ground elevation, and overall height values
  • ✈️ FAA determination date, study number, and circular
  • 💡 structure type plus painting and lighting codes
  • 🏢 registered owner name, contact details, and mailing address
  • 🕒 FCC archive and scrape provenance

The source is official FCC registration data, either from the live weekly complete archive or the dated verified fallback described below—not a reseller or crowdsourced tower map.

Who is this FCC tower data for?

Telecom engineers can create inventories for network planning, co-location analysis, and field validation.

Site-acquisition teams can identify registered structures in target states or map extents before outreach.

Tower owners and brokers can monitor portfolios, research competing sites, and export owner-focused lists.

FCC and aviation consultants can review status, dimensions, FAA studies, and lighting metadata together.

Infrastructure investors can compare geographic concentrations and ownership patterns.

GIS analysts receive decimal coordinates and flattened fields ready for spatial tools.

Why use this Actor?

The FCC archive is free, but using it directly requires a weekly ZIP download, multiple table parsers, joins, field normalization, output limits, and export plumbing.

This Actor provides:

  • ✅ a repeatable cloud workflow
  • ✅ joined RA, EN, and CO records
  • ✅ filters applied before dataset output
  • ✅ bounded maxItems costs
  • ✅ typed numbers and ISO dates
  • ✅ direct API and scheduler access
  • ✅ no browser, proxy, account, or API key requirement

What FCC tower data can I extract?

GroupExample fields
IdentityregistrationNumber, fileNumber, uniqueSystemIdentifier
StatusstatusCode, statusLabel, application purpose
Datesentered, received, issued, constructed, dismantled, action
Sitestreet, city, state, county FIPS, ZIP
Geographylatitude, longitude, coordinate type
Dimensionsstructure height, ground elevation, AGL and AMSL height
FAAdetermination date, study number, circular number
Markingstructure type, painting and lighting codes
Ownername, phone, email, address, city, state, ZIP, attention
Provenancesource URL, archive date, scrape timestamp

Optional source values are omitted when the FCC row does not provide them.

How to scrape FCC antenna tower registrations

  1. Open the Actor input page.
  2. Enter one or more two-letter tower state codes, or remove the default for nationwide results.
  3. Add optional owner, status, height, date, registration, or map-boundary filters.
  4. Set a practical maximum number of tower records.
  5. Click Start.
  6. Review results in the Dataset tab.
  7. Export JSON, CSV, Excel, XML, RSS, or Parquet.

A first run with TX and 25 records is intentionally small and useful.

Input parameters

Tower location filters

states accepts two-letter US state and territory codes such as TX, CA, AK, or PR.

registrationNumbers accepts exact FCC ASR registration numbers for targeted lookup workflows.

boundingBox accepts decimal-degree minimum and maximum latitude and longitude values.

Registration filters

statusCodes accepts one-letter FCC status codes. Common values include A for Active, C for Cancelled, D for Dismantled, and T for Terminated.

ownerName performs a case-insensitive substring match against the joined owner name.

minOverallHeightMeters and maxOverallHeightMeters constrain overall height above ground.

issuedFrom and issuedTo are inclusive dates in YYYY-MM-DD format.

Output limit

maxItems controls how many matching tower records are saved, from 1 to 100,000.

The full FCC archive is still scanned so filters are accurate.

Example input: state tower inventory

{
"states": ["TX"],
"statusCodes": ["A"],
"minOverallHeightMeters": 60,
"maxItems": 250
}

This request exports up to 250 active Texas registrations at least 60 meters tall.

Example input: geographic bounding box

{
"boundingBox": {
"minLatitude": 32.5,
"maxLatitude": 33.2,
"minLongitude": -97.6,
"maxLongitude": -96.5
},
"maxItems": 500
}

Coordinates missing from the FCC source fail the geographic filter closed.

Example output

{
"registrationNumber": "1000019",
"fileNumber": "A0000039",
"uniqueSystemIdentifier": 96973,
"statusCode": "T",
"statusLabel": "Terminated",
"structureAddress": "705 OAKWOOD",
"structureCity": "RAVENNA",
"structureState": "OH",
"countyFips": "39133",
"structureZipCode": "44266",
"heightOfStructureMeters": 86.8,
"overallHeightAboveGroundMeters": 91.1,
"structureTypeCode": "TOWER",
"faaStudyNumber": "96-AGL-1905-OE",
"ownerName": "GTE MOBILNET OF OHIO LIMITED PARTNERSHIP",
"sourceUrl": "https://data.fcc.gov/download/pub/uls/complete/r_tower.zip"
}

Actual optional fields vary by FCC registration.

How much does it cost to scrape FCC tower data?

The Actor uses pay-per-event pricing: one small start charge for downloading and joining the weekly archive, plus a charge for each tower record saved.

The input limit makes the maximum output charge predictable.

Apify's Free plan includes monthly platform credits, so small lookup and sample runs may fit within those credits.

See the live pricing panel for current tier-specific prices before starting a large export.

Data freshness and official source

The Actor first requests the live FCC complete archive:

https://data.fcc.gov/download/pub/uls/complete/r_tower.zip

The FCC normally refreshes this archive weekly. If the live archive is unavailable or blocked, the Actor can fall back to a verified Internet Archive snapshot dated 2025-09-25. Results from that fallback are valid FCC records, but they are not current weekly data.

Always inspect each item's sourceUrl and archiveDate before using it for time-sensitive monitoring. sourceUrl identifies whether the run used the live FCC download or the dated snapshot, while archiveDate records the source timestamp when available.

scrapedAt only records when the Actor created the dataset item; it does not indicate source freshness.

The Actor does not claim that every physical communications tower must have an ASR registration; FCC registration requirements depend on aviation-notification rules.

Working with coordinates and GIS

Latitude and longitude are converted from FCC degrees, minutes, and seconds to signed decimal degrees.

West longitudes and south latitudes are negative.

For GIS use:

  1. Export CSV or Parquet.
  2. Treat longitude as X and latitude as Y.
  3. Use WGS84-style decimal coordinates for visualization.
  4. Retain registrationNumber and sourceUrl for traceability.

Some FCC rows have no usable surface coordinate and therefore omit coordinate fields.

Tips for reliable tower research

  • 🎯 Start with a state or exact registration number.
  • 📦 Increase maxItems only after checking a sample.
  • 🧭 Use a bounding box for map-tile or market-area workflows.
  • 🏢 Search a distinctive owner substring rather than a legal suffix.
  • 📐 Remember that source height values are meters.
  • 🕒 Schedule weekly runs after the FCC archive refresh.
  • 🔗 Keep the FCC identifiers when joining to internal systems.

Scheduling and monitoring

Use an Apify schedule to refresh an inventory every week.

For change monitoring, write each run to a named dataset or export it to your warehouse, then compare on registrationNumber and relevant status/date fields.

Useful monitoring events include:

  • new registrations
  • status changes
  • owner-name changes
  • newly constructed or dismantled dates
  • FAA study changes

The initial release exports current complete records; it does not emit a computed change log.

Integrations

Google Sheets and Excel

Export CSV or XLSX for tower prospecting, audit lists, and owner research.

Webhooks

Trigger a webhook when scheduled runs finish, then pass the dataset ID to a downstream process.

Make and Zapier

Connect Apify run completion to CRM enrichment, notifications, or file delivery.

GIS and data warehouses

Load CSV or Parquet into QGIS, ArcGIS, BigQuery, Snowflake, Postgres, or DuckDB.

Python notebooks

Use the API client to fetch records into pandas or GeoPandas for spatial analysis.

Use FCC ASR Towers Scraper with the Apify API

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/fcc-asr-towers-scraper').call({
states: ['TX'],
maxItems: 100,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python

from apify_client import ApifyClient
client = ApifyClient(token="YOUR_APIFY_TOKEN")
run = client.actor("automation-lab/fcc-asr-towers-scraper").call(
run_input={"states": ["TX"], "maxItems": 100}
)
items = client.dataset(run["defaultDatasetId"]).list_items().items
print(items)

cURL

curl -X POST \
"https://api.apify.com/v2/acts/automation-lab~fcc-asr-towers-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"states":["TX"],"maxItems":100}'

Use the FCC tower scraper through MCP

Apify MCP lets compatible AI assistants start the Actor and inspect its output.

Claude Code

$claude mcp add --transport http apify "https://mcp.apify.com?tools=automation-lab/fcc-asr-towers-scraper"

Claude Desktop, Cursor, or VS Code

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=automation-lab/fcc-asr-towers-scraper"
}
}
}

Example prompts:

  • “Export 50 active FCC antenna structures in Alaska.”
  • “Look up these FCC ASR registration numbers and summarize their owners.”
  • “Find structures over 150 meters in this bounding box and return CSV-ready fields.”

The Actor downloads a public US government data archive made available by the FCC.

Government data may still contain contact details, so use results for legitimate, compliant purposes.

Follow applicable privacy, marketing, telecommunications, and data-retention rules.

Do not use the dataset to harass owners, compromise infrastructure, or misrepresent FCC status.

This documentation is not legal advice.

Limitations

  • The Actor reflects the source archive and does not independently verify physical towers.
  • Not every antenna or communications site is subject to FCC ASR registration.
  • Some registrations omit coordinates, contacts, dates, or other optional values.
  • FCC structure and lighting codes are preserved as source codes.
  • V1 does not include remarks, special conditions, or complete history rows.
  • V1 processes the weekly complete archive rather than daily transaction deltas.

Troubleshooting

Why did my bounding-box search omit a tower with a street address?

The FCC row may lack usable coordinates. Geographic filters require coordinates and fail closed; try state, city, or registration lookup instead.

Why did an owner search return no records?

Try a shorter distinctive substring and remove punctuation or corporate suffixes. The Actor matches the FCC owner/entity text, which may differ from a current brand name.

Why is the run not instant for a small maxItems?

The Actor still downloads and joins the complete weekly FCC archive so filters are applied correctly. maxItems limits saved records and output charges, not source archive size.

Frequently asked questions

Can I export all US FCC tower registrations?

Yes. Remove location filters and set an appropriate maxItems, up to 100,000 per run. Split very large exports by state if you need more.

Can I search by FCC ASR number?

Yes. Add one or more exact values to registrationNumbers.

Are heights feet or meters?

All output height and elevation fields are in meters, matching the source measurements.

Does the Actor need a proxy?

No. It uses the FCC's anonymous public bulk-download endpoint directly.

Does it return cell tower tenants or antennas?

No. ASR records describe registered antenna structures and their owners; they are not a complete tenant, carrier, radio, or antenna inventory.

Can I run it every week?

Yes. Weekly scheduling is a strong fit for inventory refresh and monitoring workflows.

Use FCC ULS License Holder Scraper when you need radio-license holder and ULS authorization data rather than physical ASR tower registrations.

The two Actors cover different FCC entities and can be combined in a telecom data warehouse using FCC identifiers where applicable.

Support

If a valid FCC archive record is parsed incorrectly, open an Actor issue with:

  • the ASR registration number
  • your exact input
  • the expected source value
  • the run ID

That evidence helps reproduce field-layout or source-data changes quickly.