# FCC Tower Construction & Ownership Leads (`scrapesignal_labs/fcc-tower-activity-monitor`) Actor

Monitor recent FCC antenna-tower construction, modification, ownership, and dismantlement activity—with owner contacts, coordinates, height, FAA studies, and filing history.

- **URL**: https://apify.com/scrapesignal\_labs/fcc-tower-activity-monitor.md
- **Developed by:** [ScrapeSignal Labs](https://apify.com/scrapesignal_labs) (community)
- **Categories:** Lead generation, Automation, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## FCC Tower Construction & Ownership Leads

Find recent US antenna-tower construction, modification, ownership, and dismantlement activity without decoding the FCC's raw daily archives. Filter by tower location, owner location, activity type, height, owner name, address, FCC file number, or FAA study number.

The Actor joins application or registration records to owner/contact, coordinate, and history tables and returns normalized opportunities involving new structures, construction notifications, modifications, ownership changes, dismantlements, cancellations, amendments, and administrative changes.

### Why teams buy this data

A new structure, modification, ownership transfer, or dismantlement can create immediate demand for engineering, construction, inspection, lighting, insurance, site acquisition, environmental review, maintenance, and portfolio services. The Actor connects the filing event to the public owner or applicant details needed to research the opportunity.

### What makes it useful

- Scans both FCC ASR application and registration activity.
- Joins separate owner, coordinate, filing-history, and structure tables automatically.
- Converts official metric measurements to feet while preserving precise coordinates.
- Returns public owner email, phone, and address when supplied in the FCC record.
- Supports recurring state-level or nationwide monitoring without a browser or proxy.

### Built for

- tower construction, engineering, inspection, and maintenance vendors
- obstruction-lighting and aviation-compliance providers
- telecom site acquisition and infrastructure intelligence
- insurers, lenders, investors, and tower portfolio analysts
- environmental and due-diligence services

### Example

```json
{
  "structureState": "CA",
  "activityTypes": ["new-structure", "constructed", "modification", "ownership-change"],
  "minimumHeightFeet": 100,
  "maxItems": 250
}
```

### Output

Records include FCC file and registration numbers, activity type and dates, tower owner or applicant, public email and phone, structure address and coordinates, height, structure type, FAA study number, painting/lighting data, and FCC history events.

### Source and limitations

The source is the FCC's official ASR daily application and registration archives. The FCC publishes daily files Tuesday through Saturday for the previous business day and may publish a tiny empty archive when no activity occurred. This Actor scans the five weekday archives currently available from the FCC, so it is designed for recurring recent-activity monitoring rather than historical backfills.

ASR covers structures subject to FCC antenna-structure registration requirements; it is not a census of every cellular antenna or telecom site. Verify material facts with the FCC. This Actor is independently maintained and is not affiliated with or endorsed by the FCC.

# Actor input Schema

## `dataTypes` (type: `array`):

Applications contain planned or pending work; registrations contain changes to registered structures.

## `activityTypes` (type: `array`):

Leave empty for every recent ASR activity type.

## `structureState` (type: `string`):

Two-letter state or territory code for the tower location, for example CA or TX.

## `ownerState` (type: `string`):

Two-letter state code for the registrant or applicant address.

## `minimumHeightFeet` (type: `number`):

Keep structures at or above this overall above-ground height.

## `searchQuery` (type: `string`):

Case-insensitive search across the normalized activity record.

## `maxItems` (type: `integer`):

Stop after saving this many matching tower activity records.

## `includeHistory` (type: `boolean`):

Attach history descriptions contained in the daily file.

## Actor input object example

```json
{
  "dataTypes": [
    "applications",
    "registrations"
  ],
  "activityTypes": [],
  "structureState": "",
  "ownerState": "",
  "minimumHeightFeet": 0,
  "searchQuery": "",
  "maxItems": 250,
  "includeHistory": true
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapesignal_labs/fcc-tower-activity-monitor").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("scrapesignal_labs/fcc-tower-activity-monitor").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call scrapesignal_labs/fcc-tower-activity-monitor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scrapesignal_labs/fcc-tower-activity-monitor"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/kl7LRFVT6AgxMNfRT/builds/lF7HmutCNMe9fMfin/openapi.json
