NFA BASIC Scraper - Futures Broker & CTA/CPO Registry avatar

NFA BASIC Scraper - Futures Broker & CTA/CPO Registry

Pricing

Pay per event

Go to Apify Store
NFA BASIC Scraper - Futures Broker & CTA/CPO Registry

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

BowTiedRaccoon

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

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

  1. You provide a search type (firm or individual), an optional name fragment, and optional filters. Leave the name blank to enumerate all registrants.
  2. The scraper pages through NFA's search API in batches of 50, collecting registration status and metadata for each result.
  3. If disciplinary detail is enabled (the default), it calls a second endpoint per record to fetch the full regulatory action index.
  4. Records are returned as structured JSON. The regulatory_actions field is a JSON string you can parse; regulatory_actions_count is already an integer at the top level.

Input

{
"searchType": "firm",
"searchQuery": "Goldman Sachs",
"membershipStatusFilter": "",
"regTypeFilter": "",
"hasRegulatoryActions": false,
"includeDisciplinaryDetail": true,
"includeRegistrationHistory": false,
"maxItems": 10
}
FieldTypeDefaultDescription
searchTypestringfirmfirm for FCMs, IBs, CTAs, CPOs, Swap Dealers. individual for Associated Persons.
searchQuerystring""Name fragment to search. Empty string enumerates all registrants alphabetically.
membershipStatusFilterstring""Filter by membership status: NFA Member Approved, Not an NFA Member, or blank for all.
regTypeFilterstring""Filter by registration type (e.g. Futures Commission Merchant). Blank for all.
hasRegulatoryActionsbooleanfalseWhen true, only return registrants with at least one regulatory action on record.
includeDisciplinaryDetailbooleantrueFetch full regulatory action detail per registrant. Adds one API call per record.
includeRegistrationHistorybooleanfalseFetch full registration lifecycle history per registrant.
maxItemsinteger10Maximum 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"
}
FieldTypeDescription
nfa_idstringNFA registration ID, 7-digit zero-padded (e.g. 0002014)
entity_typestringfirm or individual
namestringRegistrant name
locationstringCity and state (e.g. NEW YORK, NY). Firms only — blank for individuals.
nfa_membership_statusstringNFA membership status (NFA Member Approved, Not an NFA Member, etc.)
registration_typesstringComma-separated CFTC registration types: FCM, IB, CTA, CPO, Swap Dealer, etc.
has_regulatory_actionsbooleanWhether the registrant has any regulatory actions on record
regulatory_actions_countnumberCount of regulatory actions on record
regulatory_actionsstringRegulatory actions as a JSON string. null if includeDisciplinaryDetail is false. Each action: contributor, reference, effective_date, actions, outcome.
registration_historystringRegistration lifecycle events as a JSON string. null if includeRegistrationHistory is false. Each event: category, description, effective_date.
profile_urlstringURL to the NFA BASIC profile page
scraped_atstringISO 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.