NFA CPO / CTA Registry - Commodity Pool Operators & Advisors
NFA CPO and CTA Pool Operator Crawler
Crawl the NFA BASIC registry for Commodity Pool Operators (CPOs) and Commodity Trading Advisors (CTAs). Returns firm identity, principals (officers and 10%+ owners), per-pool detail (pool ID, name, exemption type, status), and regulatory action history.
NFA CPO/CTA Crawler Features
- Pulls every NFA-registered CPO and CTA firm in one run — or filter to a single category
- Returns principals list (officers, 10%+ owners) with title and ownership flag
- Per-pool detail: pool ID, pool name, exemption type, current status
- Regulatory action history flagged with both a boolean and a count, plus full JSON when enabled
- Toggle pool / principals / regulatory data on or off to control per-firm API calls
- No proxy required — NFA BASIC is a public government registry
Who Uses NFA CPO/CTA Data?
- Compliance teams at clearing firms and FCMs — Screen counterparty CPOs and CTAs against the authoritative NFA register before onboarding
- Fund administrators and prime brokers — Verify principal lists and pool counts before quoting administration or financing
- Allocators and fund-of-fund managers — Track new pool registrations and regulatory actions across the manager universe
- Sales teams at fintech and SaaS vendors — Build outreach lists of CPOs/CTAs filtered by pool count or registration date
- Financial researchers and journalists — Map the structure of the US commodity-pool industry by registration category
How the NFA CPO/CTA Crawler Works
- Configure scope — Pick
registrationType(CPO, CTA, or both) and optionally filter by firm name. - Listing crawl — Hits
DataHandlerSearch.ashx(paginated) to enumerate matching firms. - Per-firm enrichment — For each firm, fetches principals, current pools, and regulatory actions via
DataHandler.ashx. Each enrichment is optional via input toggle. - Export — One record per firm in your Apify dataset with principals and pools serialized as pipe-delimited strings.
Input
All CPOs and CTAs with full detail
{
"registrationType": "both",
"includePools": true,
"includePrincipals": true,
"includeRegulatoryActions": true,
"maxItems": 0
}
CPO-only, lightweight
{
"registrationType": "CPO",
"includePools": true,
"includePrincipals": false,
"includeRegulatoryActions": false,
"maxItems": 500
}
Single-firm lookup by name
{
"firmName": "Bridgewater",
"maxItems": 10
}
| Field | Type | Default | Description |
|---|---|---|---|
| registrationType | string | both |
both, CPO, or CTA. |
| firmName | string | — | Optional name-search filter. Empty = enumerate all firms alphabetically. |
| includePools | boolean | true |
Fetch per-firm pool list. Adds one API call per firm. |
| includePrincipals | boolean | true |
Fetch principals (officers, 10%+ owners). Adds one API call per firm. |
| includeRegulatoryActions | boolean | true |
Fetch regulatory action history. Adds one API call per firm. |
| maxItems | integer | 10 | Cap on firms returned. |
| proxyConfiguration | object | none | Proxy settings. Off by default. |
NFA CPO/CTA Crawler Output Fields
{
"nfa_id": "0388922",
"firm_name": "Bridgewater Associates, LP",
"location": "WESTPORT, CT",
"registration_type": "CPO, CTA",
"registration_status": "NFA Member Approved",
"registration_date": "08/14/1990",
"principals": [
"DALIO, RAYMOND|FOUNDER & CO-CIO|true",
"PRINCE, ROBERT|CO-CIO|false"
],
"pool_count": 12,
"pools": [
"P122441|Pure Alpha Major Markets, Ltd|4.7|Active",
"P122442|All Weather Portfolio, LP|4.7|Active"
],
"has_regulatory_actions": false,
"regulatory_actions_count": 0,
"regulatory_actions": "[]",
"profile_url": "https://www.nfa.futures.org/BasicNet/basic-profile.aspx?nfaid=0388922",
"scraped_at": "2026-05-11T04:20:09.221Z"
}
| Field | Type | Description |
|---|---|---|
| nfa_id | string | NFA registration ID (7-digit zero-padded) |
| firm_name | string | Firm name as listed in NFA BASIC |
| location | string | City and state from the NFA listing (e.g. NEW YORK, NY) |
| registration_type | string | Registration categories: CPO, CTA, or both comma-separated |
| registration_status | string | NFA membership status (NFA Member Approved, Not an NFA Member, etc.) |
| registration_date | string | Earliest active registration date (MM/DD/YYYY) |
| principals | array | Principals as pipe-delimited strings: `NAME |
| pool_count | number | Active pools registered under this firm |
| pools | array | Per-pool detail as pipe-delimited strings: `POOL_ID |
| has_regulatory_actions | boolean | Firm has any regulatory actions on record |
| regulatory_actions_count | number | Count of regulatory actions on record |
| regulatory_actions | string | Full action history serialized as JSON |
| profile_url | string | URL to the NFA BASIC firm profile |
| scraped_at | string | ISO timestamp when the record was scraped |
FAQ
How do I get NFA CPO and CTA registration data?
NFA CPO/CTA Crawler hits the public NFA BASIC JSON-RPC endpoints — no API key, no scraping ToS gray area. Pick registrationType, set the enrichment toggles, and run.
How much does this actor cost to run?
NFA CPO/CTA Crawler uses pay-per-event pricing on the default_2603_basic profile at a 1.0x coefficient. No proxy fees. Pulling all NFA-registered CPOs and CTAs with full enrichment costs a few dollars in platform fees.
Can I skip the per-firm enrichment calls?
NFA CPO/CTA Crawler exposes three toggles: includePools, includePrincipals, includeRegulatoryActions. Turn the ones you don't need off and the crawler skips those API calls per firm. Useful when you're enumerating the universe quickly and enriching only flagged firms in a second pass.
Does this include pool-level detail?
NFA CPO/CTA Crawler returns pool detail as a pipe-delimited array per firm: POOL_ID|NAME|EXEMPTION_TYPE|STATUS. The pool_count field gives you the count without parsing. If you need pool-level rows rather than firm-level rows, post-process the pools array.
Does this actor need proxies?
NFA CPO/CTA Crawler runs proxy-free. NFA BASIC is a public regulatory site that accepts datacenter traffic at the volumes this actor produces.
Need More Features?
Need AUM extraction from Form PR / Form CPO-PQR, scheduled re-runs for new registrations, or Section 4.7 / 4.13 exemption filtering? Open an issue or get in touch.
Why Use NFA CPO/CTA Crawler?
- Principals are a separate field — Most NFA scrapers stop at firm name and ID. This one returns the principal list with title and 10%+ ownership flag — the data you actually need for KYC.
- Pool detail per firm — Pool ID, name, exemption type, and status come back per firm so you can roll up exposure or filter by exemption (4.7, 4.13, etc.).
- Toggle the expensive bits — Pools, principals, and regulatory actions are independent toggles. Run lean during enumeration, run full during enrichment.