---
title: "Returns FARA registrations — US persons and firms registered with the DOJ as agents of a foreign principal under the Foreign Agents Registration Act"
method: GET
path: "/v1/foreign-agents"
---

# Returns FARA registrations — US persons and firms registered with the DOJ as agents of a foreign principal under the Foreign Agents Registration Act

`GET /v1/foreign-agents`

## Request

- Base URL: `https://api.keyvex.com`
- URL: `https://api.keyvex.com/v1/foreign-agents`
- Auth: API key in header `x-api-key`

Returns FARA registrations — US persons and firms registered with the DOJ as agents of a foreign principal under the Foreign Agents Registration Act. Use this when the user asks about: who is a registered foreign agent, which US firms work for a particular foreign government, recently-registered foreign agents, or to add a 'foreign- influence' flag to a lobbying firm, law firm, or PR firm.  Each record is one registrant ↔ foreign-principal relationship — a registrant representing three foreign principals appears as three records. The single highest-signal filter is foreign_principal_country:   foreign_principal_country='CHINA'  → every US agent acting for a                                        Chinese principal  Source: efile.fara.gov (DOJ National Security Division). v1A covers ACTIVE registrations. The registrant↔principal linkage is included; per-document filing detail and compensation figures are not — follow source_url to FARA eFile for those.  Cross-source pairing pattern:   FARA + get_lobbying_filings  — FARA is foreign-principal representation;       LDA is domestic lobbying. A firm in both is lobbying Congress on       behalf of a foreign government.   FARA + get_fec_contributions — foreign-agent firms whose people also       make political contributions.   FARA + get_congressional_trades — influence-and-trades overlay.  Identifier: registration_number is the FARA registration number. has_foreign_principal=false records are registrants with no currently- active foreign principal (still queryable as registered agents).  History: registrations that LEAVE DOJ's active list are kept with status:'terminated' (+ termination_observed_date) rather than deleted — a terminated registration is still real history. Default queries return BOTH; filter status:'active' for the current roster only.

## Query parameters

- `registration_number` string
- `registrant_name` string
- `foreign_principal_name` string
- `foreign_principal_country` string
- `has_foreign_principal` boolean
- `status` 'active' | 'terminated'
- `since` string
- `until` string
- `sort_by` 'registration_date' | 'foreign_principal_reg_date'
- `sort_order` 'desc' | 'asc'
- `limit` integer

## Response `200`

JSON envelope: { results: [...], count, has_more }.

## Other responses

- `400`: Invalid parameter.
- `401`: Missing or invalid API key.
- `402`: This tool requires a higher plan (upgrade_required). Retrying will not help.
- `429`: Tier rate/quota limit reached (rate_limited). Retry-After points at the reset.

---

[API](https://skmtc.dev/keyvex/apis/keyvex-api.md) · [All operations](https://skmtc.dev/keyvex/apis/keyvex-api/llms.txt) · [OpenAPI document](https://skmtc.dev/keyvex/apis/keyvex-api/revisions/01c0210c19cd?raw)
