DOJ FARA Filings Scraper avatar

DOJ FARA Filings Scraper

Pricing

Pay per event

Go to Apify Store
DOJ FARA Filings Scraper

DOJ FARA Filings Scraper

Extract public DOJ FARA registrants, foreign principals, short-form registrants, political activity rows, and DOJ eFile source links.

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

5 days ago

Last modified

Categories

Share

Extract public Foreign Agents Registration Act (FARA) records from the DOJ eFile Browse Filings pages.

Use this actor to monitor active registrants, foreign principals, short-form registrants, political activity rows, political contribution tables, and DOJ source links in a clean Apify dataset.

What does DOJ FARA Filings Scraper do?

DOJ FARA Filings Scraper collects rows from public DOJ FARA eFile Browse Filings reports.

It turns government HTML tables into structured JSON records.

It is designed for monitoring workflows where teams need repeatable exports instead of manual copy and paste.

The actor currently extracts first-page rows from multiple report categories and combines them into one normalized dataset.

Each row keeps a rawColumns object so you can audit the exact DOJ table values.

Who is it for?

Compliance teams use it to watch foreign-agent registrations.

Policy intelligence teams use it to track registrants, principals, and political activities.

Investigative researchers use it to build repeatable FARA watchlists.

Risk teams use it to enrich entity due-diligence workflows.

Journalists and civic researchers use it to collect source-linked public records.

Why use this FARA scraper?

✅ Public DOJ source pages

✅ Structured dataset output

✅ Multiple FARA report categories

✅ Detail links back to eFile

✅ Normalized top-level fields plus raw columns

✅ No login required

✅ No browser automation required for the MVP

What data can you extract?

FieldDescription
reportTypeSelected FARA report category
reportTitleDOJ page title
registrantNameRegistrant or registration name
registrationNumberFARA registration number
registrationDateRegistration date when available
foreignPrincipalNameForeign principal name
countryOrLocationCountry or location represented
shortFormNameShort form registrant name
activityDatePolitical activity date
methodActivity method
purposeActivity purpose
addressAddress from DOJ table
detailUrlDOJ eFile detail URL
sourceUrlReport URL scraped
rawColumnsOriginal parsed table columns
scrapedAtExtraction timestamp

Supported FARA report categories

The actor supports these DOJ Browse Filings report categories:

  • Active registrants
  • Active foreign principals
  • Active short form registrants
  • Terminated short form registrants
  • Historical short form registrants
  • Foreign principal political activities
  • Active registrants political contributions
  • Terminated foreign principals
  • Historical foreign principals

How much does it cost to scrape DOJ FARA filings?

This actor uses Apify pay-per-event pricing.

You pay a small run-start event and a per-row event for each saved FARA record.

Use a small maxItems value for quick tests.

Use 100+ rows for recurring compliance monitoring.

Current per-row pricing is approximately: Free $0.000049663, Starter/BRONZE $0.000043186, Scale/SILVER $0.000033685, Business/GOLD $0.000025911, Platinum $0.000017274, Diamond $0.000012092.

How to scrape DOJ FARA filings

  1. Open the actor on Apify.
  2. Keep the prefilled report categories or choose your own.
  3. Set maxItems to the number of rows you need.
  4. Run the actor.
  5. Export the dataset as JSON, CSV, Excel, or via API.

Input configuration

reportTypes

Choose one or more FARA report categories.

Leaving the prefill selected is a good monitoring default.

maxItems

Set the maximum rows saved across all selected reports.

The default is 15 rows.

The maximum is 10,000 rows.

Output example

{
"reportType": "active-registrants",
"reportTitle": "Active Registrants",
"registrantName": "Example Registrant LLC",
"registrationNumber": "1234",
"registrationDate": "01/01/2026",
"detailUrl": "https://efile.fara.gov/ords/fara/f?p=...",
"sourceUrl": "https://efile.fara.gov/ords/fara/f?p=1381:17:0",
"rawColumns": {
"Registrant": "Example Registrant LLC",
"Registration #": "1234"
},
"scrapedAt": "2026-07-05T00:00:00.000Z"
}

Tips for monitoring workflows

Run the actor daily or weekly for watchlist collection.

Store exported datasets in your compliance data lake.

Compare new runs against previous exports by registration number and report type.

Use detailUrl to open the DOJ record for source review.

Keep rawColumns in your warehouse for audit trails.

Integrations

Connect this actor with Google Sheets for analyst review.

Send output to Slack when a scheduled run finds rows.

Load dataset items into BigQuery, Snowflake, or Postgres.

Use Apify webhooks to trigger downstream compliance checks.

Combine FARA records with entity-resolution tools in your due-diligence pipeline.

API usage: Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/doj-fara-filings-scraper').call({
reportTypes: ['active-registrants', 'active-foreign-principals'],
maxItems: 100,
});
console.log(run.defaultDatasetId);

API usage: Python

from apify_client import ApifyClient
client = ApifyClient('YOUR_APIFY_TOKEN')
run = client.actor('automation-lab/doj-fara-filings-scraper').call(run_input={
'reportTypes': ['active-registrants', 'political-activities'],
'maxItems': 100,
})
print(run['defaultDatasetId'])

API usage: cURL

curl -X POST 'https://api.apify.com/v2/acts/automation-lab~doj-fara-filings-scraper/runs?token=YOUR_APIFY_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"reportTypes":["active-registrants"],"maxItems":100}'

Use with AI agents via MCP

DOJ FARA Filings Scraper is available as a tool for AI assistants that support the Model Context Protocol (MCP).

Add the Apify MCP server to your AI client with this actor-specific tools URL. This exposes the DOJ FARA Filings Scraper tool directly.

Setup for Claude Code:

$claude mcp add --transport http apify "https://mcp.apify.com?tools=automation-lab/doj-fara-filings-scraper"

Setup for Claude Desktop, Cursor, or VS Code:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=automation-lab/doj-fara-filings-scraper"
}
}
}

Example prompts:

  • "Use automation-lab/doj-fara-filings-scraper to run active FARA registrants and summarize new registration numbers."
  • "Export active foreign principals from FARA and group them by country or location."
  • "Monitor FARA political activity rows and flag methods mentioning meetings."

Data quality notes

The actor reads public DOJ HTML tables.

Some DOJ report categories use different column names.

Top-level fields are normalized when possible.

The original values remain available in rawColumns.

Limitations

This MVP does not download every linked filing document.

It does not require credentials.

It does not bypass access controls.

Oracle APEX pagination may change, so high-volume pagination can be added later if users need full historical dumps.

Legality

This actor collects publicly accessible DOJ FARA pages.

Users are responsible for using the data lawfully.

Respect applicable laws, Apify terms, and DOJ website terms.

Do not use extracted data for prohibited profiling or harassment.

FAQ and troubleshooting

How fast is this FARA scraper?

Most monitoring runs finish in under a minute because the actor uses HTTP requests instead of a browser.

Does this replace the official DOJ FARA website?

No. It structures public DOJ eFile tables for exports and automation while preserving source URLs for review.

How much does a typical run cost?

Small monitoring runs are usually a fraction of a cent plus the run-start event because no proxy or browser is required.

Why did I get fewer rows than maxItems?

Selected reports may expose only a limited first page of server-rendered rows.

Choose more report categories to collect more rows in one run.

Why is a field missing on some rows?

Different FARA report categories have different table columns.

Check rawColumns for the exact original DOJ fields.

Can I get the source page?

Yes. Each item includes sourceUrl, and many rows include detailUrl.

Explore related automation-lab actors:

Changelog

0.1

Initial version for DOJ FARA public Browse Filings report extraction.

Support

Open an Apify issue if a DOJ page changes or you need additional FARA report categories.

Maintenance notes

The actor is intentionally HTTP-first for cost control.

It uses no residential proxy by default.

It keeps memory at 256 MB.

It preserves source URLs for every output item.

Summary

DOJ FARA Filings Scraper gives compliance and research teams a repeatable way to extract structured public FARA rows from DOJ eFile pages.