NFA BASIC Scraper - Futures Broker & CTA/CPO Registry
Pricing
Pay per event
NFA BASIC Scraper - Futures Broker & CTA/CPO Registry
Extract US derivatives market participants from NFA BASIC: FCMs, Introducing Brokers, CTAs, CPOs, Swap Dealers, and Associated Persons. Each record includes registration status, disciplinary history, and regulatory actions. For compliance screening, enforcement research, M&A, and AML.
Pricing
Pay per event
Rating
0.0
(0)
Developer
BowTiedRaccoon
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Scrapes registrant data from NFA BASIC, the public regulatory database of the National Futures Association. Returns registration status, disciplinary history, and regulatory actions for Futures Commission Merchants, Introducing Brokers, CTAs, CPOs, Swap Dealers, and Associated Persons — 282,000+ registrants in total.
NFA BASIC Scraper Features
- Extracts firm and individual registrant records from the full NFA BASIC dataset
- Returns NFA membership status, CFTC registration types, and regulatory action counts for every record
- Fetches full disciplinary action detail — contributor, reference number, date, outcome, and action description — per registrant
- Fetches complete registration lifecycle history on request
- Filters by membership status, registration type, or "has regulatory actions" flag
- Searches by name fragment or enumerates all registrants alphabetically with a blank query
- Pure API scraping — no browser required, no proxy needed, no authentication
Who Uses NFA BASIC Data?
- Compliance teams — Run registration checks on counterparties, verify FCM/IB status, screen for disciplinary history before onboarding
- Enforcement attorneys — Pull the full regulatory action index for a firm or individual as background for CFTC reparations or NFA arbitration proceedings
- M&A due diligence teams — Screen acquisition targets in the derivatives space for NFA membership status and pending enforcement actions
- AML and KYC analysts — Check whether an entity holds current derivatives registrations and whether they carry enforcement history
- Fintech and compliance SaaS builders — Integrate NFA registration data into onboarding workflows without paying for a third-party compliance API
- Researchers — Study enforcement patterns across the US derivatives industry using the complete historical action dataset
How NFA BASIC Scraper Works
- You provide a search type (firm or individual), an optional name fragment, and optional filters. Leave the name blank to enumerate all registrants.
- The scraper pages through NFA's search API in batches of 50, collecting registration status and metadata for each result.
- If disciplinary detail is enabled (the default), it calls a second endpoint per record to fetch the full regulatory action index.
- Records are returned as structured JSON. The
regulatory_actionsfield is a JSON string you can parse;regulatory_actions_countis already an integer at the top level.
Input
{"searchType": "firm","searchQuery": "Goldman Sachs","membershipStatusFilter": "","regTypeFilter": "","hasRegulatoryActions": false,"includeDisciplinaryDetail": true,"includeRegistrationHistory": false,"maxItems": 10}
| Field | Type | Default | Description |
|---|---|---|---|
searchType | string | firm | firm for FCMs, IBs, CTAs, CPOs, Swap Dealers. individual for Associated Persons. |
searchQuery | string | "" | Name fragment to search. Empty string enumerates all registrants alphabetically. |
membershipStatusFilter | string | "" | Filter by membership status: NFA Member Approved, Not an NFA Member, or blank for all. |
regTypeFilter | string | "" | Filter by registration type (e.g. Futures Commission Merchant). Blank for all. |
hasRegulatoryActions | boolean | false | When true, only return registrants with at least one regulatory action on record. |
includeDisciplinaryDetail | boolean | true | Fetch full regulatory action detail per registrant. Adds one API call per record. |
includeRegistrationHistory | boolean | false | Fetch full registration lifecycle history per registrant. |
maxItems | integer | 10 | Maximum number of records to return. |
Example — enumerate all individuals with regulatory actions:
{"searchType": "individual","searchQuery": "","hasRegulatoryActions": true,"includeDisciplinaryDetail": true,"maxItems": 500}
NFA BASIC Scraper Output Fields
{"nfa_id": "0002014","entity_type": "firm","name": "GOLDMAN SACHS & CO LLC","location": "NEW YORK, NY","nfa_membership_status": "NFA Member Approved","registration_types": "Futures Commission Merchant, Swap Dealer","has_regulatory_actions": true,"regulatory_actions_count": 86,"regulatory_actions": "[{\"contributor\":\"NFA\",\"reference\":\"22BCC00003\",\"effective_date\":\"04/15/2022\",\"actions\":\"• GENERAL CONDUCT\",\"outcome\":\"• FINE $2,500,000\"}]","registration_history": null,"profile_url": "https://www.nfa.futures.org/BasicNet/firm.aspx?nfaId=0002014","scraped_at": "2026-05-06T18:41:09.000Z"}
| Field | Type | Description |
|---|---|---|
nfa_id | string | NFA registration ID, 7-digit zero-padded (e.g. 0002014) |
entity_type | string | firm or individual |
name | string | Registrant name |
location | string | City and state (e.g. NEW YORK, NY). Firms only — blank for individuals. |
nfa_membership_status | string | NFA membership status (NFA Member Approved, Not an NFA Member, etc.) |
registration_types | string | Comma-separated CFTC registration types: FCM, IB, CTA, CPO, Swap Dealer, etc. |
has_regulatory_actions | boolean | Whether the registrant has any regulatory actions on record |
regulatory_actions_count | number | Count of regulatory actions on record |
regulatory_actions | string | Regulatory actions as a JSON string. null if includeDisciplinaryDetail is false. Each action: contributor, reference, effective_date, actions, outcome. |
registration_history | string | Registration lifecycle events as a JSON string. null if includeRegistrationHistory is false. Each event: category, description, effective_date. |
profile_url | string | URL to the NFA BASIC profile page |
scraped_at | string | ISO timestamp when this record was scraped |
🔍 FAQ
How do I scrape NFA BASIC?
NFA BASIC Scraper handles it. Set searchType, optionally provide a searchQuery or leave it blank to get everything, configure filters, and run. It pages through the registry and returns structured JSON for each registrant.
What data can I get from NFA BASIC?
NFA BASIC Scraper returns registration status, CFTC registration types, NFA membership status, and regulatory action counts for every registrant. With includeDisciplinaryDetail: true, you also get the full action index — reference numbers, dates, action types, and outcomes. With includeRegistrationHistory: true, you get the complete registration lifecycle.
How much does NFA BASIC Scraper cost to run?
NFA BASIC Scraper costs $0.10 per run plus $0.04 per record. A Goldman Sachs search returning 5 firms with disciplinary detail costs $0.30. The full 282K-record dataset costs around $11,300 — which is cheaper than most compliance data subscriptions, depending on your vendor.
Does NFA BASIC Scraper need proxies?
No. NFA BASIC is a public regulatory site with no bot protection. Standard datacenter IPs work fine. Leave proxyConfiguration at the default.
Can I enumerate the entire NFA BASIC database?
Yes. Set searchQuery to an empty string and maxItems to however many you need. NFA BASIC Scraper pages through all 73,000+ firms or 208,000+ Associated Persons alphabetically, stopping at your limit.
Why does regulatory_actions come back as a string?
Apify datasets handle nested arrays as strings in certain output configurations. Parse the field with JSON.parse() in your downstream code. The regulatory_actions_count integer is available at the top level if you only need the count.
Need More Features?
Need a specific registration type filter, additional detail endpoints, or a bulk full-dataset export mode? File an issue or get in touch.
Why Use NFA BASIC Scraper?
- No authentication required — NFA BASIC is fully public, and the scraper hits the same API the official site uses. No session management, no credentials.
- Disciplinary detail included — Returns the full action record per registrant: contributor, reference number, date, action type, and outcome text, ready to parse.
- Clean structured output — Consistent JSON with stable field names across firms and individuals, so you spend less time normalizing and more time using it.