OTHERAI

FARA Foreign Agent Registration Search

Search the U.S. Department of Justice FARA (Foreign Agents Registration Act) database for foreign agent registrations. Look up lobbying firms, PR agencies, and consultants registered as foreign agents, including their foreign principals, filing documents, and registration status. Get structured profiles combining data from three separate FARA API endpoints into a single unified record per registrant.

Try on Apify Store
$0.04per event
0
Users (30d)
0
Runs (30d)
90
Actively maintained
Maintenance Pulse
$0.04
Per event

Maintenance Pulse

90/100
Last Build
Today
Last Version
1d ago
Builds (30d)
8
Issue Response
N/A

Cost Estimate

How many results do you need?

result-returneds
Estimated cost:$4.00

Pricing

Pay Per Event model. You only pay for what you use.

EventDescriptionPrice
result-returnedCharged per screening result returned.$0.04

Example: 100 events = $4.00 · 1,000 events = $40.00

Documentation

Search the U.S. Department of Justice FARA (Foreign Agents Registration Act) database for foreign agent registrations. Look up lobbying firms, PR agencies, and consultants registered as foreign agents, including their foreign principals, filing documents, and registration status. Get structured profiles combining data from three separate FARA API endpoints into a single unified record per registrant.

FARA Foreign Agent Registration Search queries the official efile.fara.gov API to build comprehensive registrant profiles. Each profile includes the registrant's name, address, registration and termination dates, a list of foreign principals (the governments, entities, or persons they represent), and links to all filing documents. The actor handles the FARA API's strict rate limits (5 requests per 10 seconds) automatically with built-in throttling and retry logic.

What data can you extract?

Data PointSourceExample
Registration numberFARA registry6942
Registrant nameRegistration recordPodesta Group, Inc.
Business nameRegistration recordPodesta Group
StatusRegistry lookupActive, Terminated
Registration dateFiling metadata01/15/2010
Termination dateFiling metadata06/30/2017
AddressRegistration record1001 G Street NW, Suite 1000 West
Foreign principalsPrincipals endpointName, country, state, registration date
Filing documentsDocuments endpointType, date, PDF download link

Why use FARA Foreign Agent Registration Search?

The FARA efile website provides basic search, but assembling a complete picture of a registrant requires clicking through multiple pages and endpoints: the registrant list, the foreign principals list, and the documents list. Cross-referencing entities across these datasets manually is tedious and error-prone, especially when researching dozens of registrants or tracking all agents working for a specific country.

This actor combines all three API endpoints into a single query. Search by registrant name, foreign principal, country, or registration number and get back unified profiles with everything in one record.

Built on the Apify platform, FARA Foreign Agent Registration Search gives you:

  • Scheduling -- monitor new registrations weekly or monthly
  • API access -- trigger searches programmatically from Python, JavaScript, or any HTTP client
  • Monitoring -- get notified when runs complete or fail
  • Integrations -- connect to Zapier, Make, Google Sheets, or webhooks

Features

  • Multi-filter search -- search by registrant name, foreign principal name, country, registration number, or new registrations since a specific date
  • Unified profiles -- combines registrant data, foreign principals, and filing documents from 3 separate API endpoints into one record
  • Status filtering -- search active agents, terminated agents, or both
  • Foreign principal lookup -- find which U.S. agents represent a specific foreign government or entity
  • Document links -- includes direct links to registration statements, supplemental statements, and other FARA filings
  • New registration monitoring -- filter for registrants registered after a specific date to track new foreign lobbying activity
  • Rate limit handling -- built-in throttling (2.1 seconds between requests) with automatic retry on 429 responses
  • Direct lookup -- look up a specific registrant by registration number for instant access

Use cases for searching FARA data

Investigative journalism

Journalists research which U.S. lobbying firms and PR agencies represent foreign governments. Search by country to identify all agents working for a specific nation and review their filing documents.

Policy research and advocacy

Think tanks and policy organizations track foreign lobbying activity around specific legislation. Monitor new registrations and filing documents to understand which foreign interests are active on Capitol Hill.

Compliance and due diligence

Law firms and compliance teams verify whether business partners or counterparties are registered as foreign agents. FARA registration status is a key data point in KYC (Know Your Customer) and anti-corruption due diligence.

Academic research

Political scientists study patterns in foreign lobbying -- which countries hire the most agents, how lobbying spending correlates with policy outcomes, and how the FARA registry has evolved over time.

Competitive intelligence for lobbying firms

Government affairs firms track which competitors are picking up foreign principal contracts and which countries are actively seeking new U.S. representation.

National security analysis

Security analysts monitor registrations linked to adversarial nations to track potential foreign influence operations.

How to search FARA registrations

  1. Choose a search filter -- Enter a registrant name, foreign principal name, country, registration number, or new-since date. At least one filter is required.
  2. Set status filter -- Choose whether to search active agents, terminated agents, or both.
  3. Configure options -- Enable or disable foreign principal and document fetching depending on how much detail you need.
  4. Run the actor -- Click "Start" to begin the search. The actor fetches registrants, filters matches, then enriches each with principals and documents.
  5. Download results -- Once finished, download your data as JSON, CSV, or Excel from the Dataset tab.

Input parameters

ParameterTypeRequiredDefaultDescription
registrantNamestringNo*--Search for registrant/agent by name (case-insensitive substring match).
foreignPrincipalNamestringNo*--Search by foreign principal name (the government, entity, or person represented).
countrystringNo*--Filter by country of foreign principal (e.g., China, Russia, Saudi Arabia).
registrationNumberstringNo*--Look up a specific registrant by FARA registration number.
statusstringNoActiveRegistration status filter: Active, Terminated, or Both.
includeDocumentsbooleanNotrueFetch filing document links for each registrant. Slower due to rate limits.
includePrincipalsbooleanNotrueFetch foreign principals for each registrant.
newSinceDatestringNo*--Only return registrants registered after this date (MM-DD-YYYY format).
maxResultsintegerNo50Maximum number of registrant profiles to return (1-5,000).

*At least one search filter is required.

Input examples

Search by country:

{
    "country": "China",
    "status": "Active",
    "maxResults": 50
}

Look up a specific registration:

{
    "registrationNumber": "6942"
}

Search by registrant name:

{
    "registrantName": "Mercury",
    "status": "Both",
    "includeDocuments": true,
    "includePrincipals": true
}

Find new registrations:

{
    "newSinceDate": "01-01-2025",
    "maxResults": 100
}

Search by foreign principal:

{
    "foreignPrincipalName": "Embassy",
    "status": "Active",
    "maxResults": 25
}

Input tips

  • Start with principals disabled for speed -- Fetching foreign principals requires additional API calls per registrant. Disable includePrincipals and includeDocuments for faster initial searches, then re-run with full detail on interesting results.
  • Use country filter for broad searches -- Searching by country across active registrants gives you a complete picture of which firms represent a specific nation.
  • Combine name and country -- Use both registrantName and country together to narrow results when searching for a specific firm's work for a particular country.

Output example

Each item in the output dataset represents one FARA registrant profile:

{
    "registrationNumber": "6942",
    "registrantName": "Mercury Public Affairs, LLC",
    "businessName": "Mercury Public Affairs",
    "status": "Active",
    "registrationDate": "03/15/2019",
    "terminationDate": null,
    "address": "1001 G Street NW, Suite 1000 West",
    "city": "Washington",
    "state": "DC",
    "zip": "20001",
    "country": "United States",
    "foreignPrincipals": [
        {
            "name": "Republic of Turkey",
            "country": "TURKEY",
            "state": "",
            "registrationDate": "03/15/2019"
        }
    ],
    "filingDocuments": [
        {
            "type": "Registration Statement",
            "stampedDate": "03/20/2019",
            "documentUrl": "https://efile.fara.gov/docs/6942-Registration-Statement-20190320.pdf"
        },
        {
            "type": "Supplemental Statement",
            "stampedDate": "09/30/2019",
            "documentUrl": "https://efile.fara.gov/docs/6942-Supplemental-Statement-20190930.pdf"
        }
    ],
    "totalPrincipals": 1,
    "totalDocuments": 2,
    "sourceUrl": "https://efile.fara.gov/ords/fara/f?p=1235:11:::NO::P11_REG_NUMBER:6942"
}

Output fields

FieldTypeDescription
registrationNumberstringFARA registration number
registrantNamestringName of the registered agent
businessNamestringBusiness/company name of the registrant
statusstringRegistration status: Active, Terminated, or New
registrationDatestringDate of initial registration
terminationDatestring/nullDate registration was terminated (null if still active)
addressstringStreet address of the registrant
citystringCity
statestringState
zipstringZIP code
countrystringCountry of the registrant
foreignPrincipalsobject[]/nullList of foreign principals with name, country, state, and registration date (null if not requested)
filingDocumentsobject[]/nullList of filing documents with type, stamped date, and document URL (null if not requested)
totalPrincipalsnumber/nullCount of foreign principals
totalDocumentsnumber/nullCount of filing documents
sourceUrlstringDirect URL to the registrant's page on efile.fara.gov

How much does it cost to search FARA data?

FARA Foreign Agent Registration Search uses compute-based pricing on the Apify platform. The primary factor affecting cost is the number of registrants found and whether principals/documents are fetched (each requires additional API calls with rate-limited delays).

ScenarioResultsPrincipalsDocumentsEst. RuntimeEst. Cost
Single lookup1YesYes~10 sec~$0.003
Small search10YesYes~1 min~$0.02
Country search50YesYes~5 min~$0.08
Large search100NoNo~30 sec~$0.01
Large search (full)100YesYes~10 min~$0.15

Apify Free Tier: New Apify accounts receive $5 of free platform credits each month.

Search FARA data using the API

Python

from apify_client import ApifyClient

client = ApifyClient("YOUR_API_TOKEN")

run = client.actor("ryanclinton/fara-foreign-agents").call(run_input={
    "country": "China",
    "status": "Active",
    "includePrincipals": True,
    "includeDocuments": True,
    "maxResults": 25,
})

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(f"{item['registrantName']} (#{item['registrationNumber']})")
    for fp in item.get("foreignPrincipals") or []:
        print(f"  Principal: {fp['name']} ({fp['country']})")

JavaScript

import { ApifyClient } from "apify-client";

const client = new ApifyClient({ token: "YOUR_API_TOKEN" });

const run = await client.actor("ryanclinton/fara-foreign-agents").call({
    country: "China",
    status: "Active",
    includePrincipals: true,
    includeDocuments: true,
    maxResults: 25,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
for (const item of items) {
    console.log(`${item.registrantName} (#${item.registrationNumber})`);
    (item.foreignPrincipals || []).forEach(fp =>
        console.log(`  Principal: ${fp.name} (${fp.country})`)
    );
}

cURL

# Start the actor run
curl -X POST "https://api.apify.com/v2/acts/ryanclinton~fara-foreign-agents/runs?token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "country": "China",
    "status": "Active",
    "maxResults": 25
  }'

# Fetch results (replace DATASET_ID from the run response)
curl "https://api.apify.com/v2/datasets/DATASET_ID/items?token=YOUR_API_TOKEN&format=json"

How the FARA search works

The actor builds unified registrant profiles by combining data from three FARA API v1 endpoints:

Step 1: Fetch registrant list

Depending on input filters, the actor fetches either active registrants, terminated registrants, both, or new registrations since a date. The FARA API returns all registrants in a single response per status category, so the actor loads the full list and filters locally by name and country.

Step 2: Filter and match

Registrant name matching uses case-insensitive substring search against both the Registrant_Name and Business_Name fields. Country filtering matches against the registrant's country field. If a foreignPrincipalName filter is provided, the actor must fetch principals for each candidate registrant to check for matches -- this is slower due to rate limits.

Step 3: Enrich with principals and documents

For each matched registrant (up to maxResults), the actor fetches the foreign principals list and filing documents from their respective API endpoints. The FARA API has a strict rate limit of 5 requests per 10 seconds, so the actor enforces a 2.1-second delay between requests with automatic 10-second backoff on 429 responses.

Step 4: Build unified profile

The registrant data, principals, and documents are merged into a single profile object. Field names in the FARA API are inconsistent (sometimes Registration_Number, sometimes Reg_Number), so the actor tries multiple key variations with case-insensitive matching.

Limitations

  • Rate limits -- The FARA API allows only 5 requests per 10 seconds. Searches with many results and full enrichment (principals + documents) are inherently slow. A search returning 100 registrants with full enrichment takes approximately 10 minutes.
  • API field inconsistency -- The FARA API uses inconsistent field names across responses. The actor handles known variations, but unexpected changes to the API could cause missing fields.
  • No full-text search -- The actor searches by registrant name, principal name, and country only. It does not search within the content of filing documents.
  • Local filtering -- The FARA API does not support server-side filtering by name. The actor downloads all registrants of the specified status and filters locally, which means even narrow searches require fetching the complete registrant list.
  • Date format -- The newSinceDate parameter requires MM-DD-YYYY format (U.S. date format), matching the FARA API's expected format.
  • No pagination -- The FARA API returns all registrants in a single response. The maxResults parameter limits output after filtering, not API calls.

Integrations

  • Zapier -- Trigger workflows when new foreign agent registrations are detected.
  • Make -- Build automated monitoring pipelines for foreign lobbying activity.
  • Google Sheets -- Export registrant profiles to Google Sheets for collaborative analysis.
  • Apify API -- Call the actor programmatically from any language or platform.
  • Webhooks -- Get notified when a search completes and process results automatically.

FAQ

What is FARA? The Foreign Agents Registration Act (FARA) is a U.S. law that requires persons acting as agents of foreign principals in a political or quasi-political capacity to disclose their relationship with the foreign principal, as well as activities, receipts, and disbursements in support of those activities. It is administered by the DOJ's FARA Registration Unit.

What types of entities register under FARA? Lobbying firms, law firms, PR agencies, consultants, and individuals who engage in political activities, public relations, or lobbying on behalf of foreign governments, political parties, or entities controlled by foreign governments.

How current is the FARA data? The data comes from the official efile.fara.gov API, which is the DOJ's electronic filing system. Registrations and documents are available as soon as they are processed by the FARA Registration Unit.

Can I search for all agents representing a specific country? Yes. Use the country filter with the country name (e.g., "China", "Russia", "Saudi Arabia"). The actor will return all registrants associated with foreign principals from that country.

Why is the search slow when using foreign principal name filter? When filtering by foreign principal name, the actor must fetch the principals list for each candidate registrant to check for matches. With the FARA API's rate limit of 5 requests per 10 seconds, this adds approximately 2 seconds per registrant checked.

What document types are in the filings? Common document types include Registration Statement, Supplemental Statement, Amendment, Exhibit A (agreement), Exhibit B (activities), Short-Form Registration Statement, and Termination filings.

Can I download the actual filing PDFs? Yes. Each document in the filingDocuments array includes a documentUrl that links directly to the PDF filing on efile.fara.gov.

Related actors

ActorHow to combine
Website Contact ScraperFind contact information for registered lobbying firms identified in FARA searches
B2B Lead Gen SuiteBuild comprehensive profiles of lobbying firms combining FARA data with business intelligence
WHOIS Domain LookupResearch domain ownership for entities mentioned in FARA filings

Support

Found a bug or have a feature request? Open an issue in the Issues tab on this actor's page. For custom compliance or research solutions, reach out through the Apify platform.

How it works

01

Configure

Set your parameters in the Apify Console or pass them via API.

02

Run

Click Start, trigger via API, webhook, or set up a schedule.

03

Get results

Download as JSON, CSV, or Excel. Integrate with 1,000+ apps.

Use cases

Sales Teams

Build targeted lead lists with verified contact data.

Marketing

Research competitors and identify outreach opportunities.

Data Teams

Automate data collection pipelines with scheduled runs.

Developers

Integrate via REST API or use as an MCP tool in AI workflows.

Ready to try FARA Foreign Agent Registration Search?

Start for free on Apify. No credit card required.

Open on Apify Store