NFA BASIC Futures Registration & Disciplinary Scraper avatar

NFA BASIC Futures Registration & Disciplinary Scraper

Pricing

from $3.00 / 1,000 results

Go to Apify Store
NFA BASIC Futures Registration & Disciplinary Scraper

NFA BASIC Futures Registration & Disciplinary Scraper

Search NFA BASIC - the free, CFTC-mandated registry of futures industry firms, associated persons, and commodity pools. Look up by name or NFA ID for membership status, registered categories, addresses, and disciplinary action history. No login required.

Pricing

from $3.00 / 1,000 results

Rating

0.0

(0)

Developer

Crawler Bros

Crawler Bros

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

11 days ago

Last modified

Share

Scrape the National Futures Association's BASIC (Background Affiliation Status Information Center) database — the free, CFTC-mandated public registry of every futures industry firm (Futures Commission Merchants, Introducing Brokers, Commodity Pool Operators, Commodity Trading Advisors, Swap Dealers), associated person, and commodity pool in the United States. Search by name, or pull a full profile by NFA ID: membership status, registered categories, office address, and disciplinary/regulatory action history. No login, no API key, no proxy.

Data source note

This actor replaces an originally planned NMLS Consumer Access scraper. Investigation confirmed nmlsconsumeraccess.org has no JSON API, and its search/detail pages are gated behind a real interactive CAPTCHA (TuringTestPage.aspx, a commercial BotDetect component) that triggers even for a full real-browser session with organic cookies and history — confirmed via direct browser automation, not just a naive HTTP client. NFA BASIC is a same-category (financial/professional licensing + disciplinary disclosure registry, CFTC/SAFE-Act-equivalent mandate) zero-cost replacement backed by a genuine, reliable public JSON API.

What this actor does

  • Four modes: searchFirms, searchIndividuals, searchPools, entityProfile
  • Firms — Futures Commission Merchants, Introducing Brokers, CPOs, CTAs, Swap Dealers, and more
  • Individuals — Associated Persons (APs) searchable by last name
  • Commodity pools — searchable by pool name, linked to their operator (CPO)
  • Full profile lookup by NFA ID or Pool ID — address, DBAs, registration history and full registration timeline, principals/owners, pools operated (for CPOs), CFTC exemption filings, and structured disciplinary/regulatory actions (reference number, effective date, outcome, action type)
  • Filters: membership status, regulatory-actions-only, firm registration category, individual registration category, pool status, firm state
  • Empty fields are omitted

Output per record

Search results (searchFirms / searchIndividuals / searchPools):

  • nfaId, entityType (firm / individual / pool), name
  • firstName, lastName (individuals), sponsorName (individuals)
  • city, state (firms, when NFA has an address on file)
  • cpoName, cpoNfaId, cpoMembershipStatus, poolStatus (pools)
  • membershipStatus, registrationTypes[]
  • hasRegulatoryActions, regulatoryActionsCount
  • sourceUrl, recordType, scrapedAt

Full profile (entityProfile) — adds:

  • street1, street2, city, state, postalCode, country, phone
  • doingBusinessAs[]
  • registrationHistory[] (current status per category: category, description, effective date)
  • registrationTimeline[] (full chronological history of every registered/pending/withdrawn transition: category, description, effective date)
  • currentRegistrations[] (category, status)
  • principals[] (firms/pools' filing firm) — name, nfaId, title, tenPercentOwner
  • poolsOperated[], poolsCurrentCount, poolsCeasedCount (CPO firms only — pool ID, name, exemption type, withdrawn status)
  • cftcExemptions[] (firms/pools with a CFTC exemption filing, e.g. Rule 4.7/4.13) — exemptionType, status, activityDate
  • isNfaMember, isOnWithdrawalHold
  • arbitrationCasesCount, reparationsCasesCount (dispute-resolution case counts, distinct from disciplinary actions)
  • regulatoryActions[]referenceNumber, effectiveDate, contributor, outcomes[], actions[], barrableOffense

Input

FieldTypeDefaultDescription
modestringsearchFirmssearchFirms / searchIndividuals / searchPools / entityProfile
searchQuerystringMerrillFirm/pool name (required for searchFirms/searchPools)
lastNamestringSmithIndividual's last name (required for searchIndividuals)
firstNamestringOptional first-name refinement (searchIndividuals)
firmCategorystringFilter firms to one NFA registration category (searchFirms), e.g. Futures Commission Merchant, Introducing Broker, CPO, CTA, Swap Dealer
individualCategorystringFilter individuals to one NFA registration category (searchIndividuals), e.g. Associated Person, Principal, Floor Broker
poolStatusstringFilter pools to CURRENT or CEASED (searchPools)
statestringFilter firms to a US state/territory of their registered address (searchFirms)
nfaIdsarrayNFA IDs or Pool IDs to fetch full profiles for (entityProfile)
membershipStatusstringFilter to a specific NFA membership status (search modes only — ignored for entityProfile, which always returns the requested ID)
hasRegulatoryActionsOnlybooleanfalseOnly emit firm/individual search records with a disciplinary/regulatory action on file. Not supported for mode=searchPools (see Limitations) and ignored for entityProfile (always returns the requested ID)
maxItemsinteger20Hard cap on emitted records (1–1000)

Example: search firms by name

{ "mode": "searchFirms", "searchQuery": "Merrill", "maxItems": 25 }

Example: introducing brokers in Illinois

{ "mode": "searchFirms", "searchQuery": "a", "firmCategory": "Introducing Broker", "state": "IL", "maxItems": 25 }

Example: individuals with regulatory actions

{ "mode": "searchIndividuals", "lastName": "Smith", "hasRegulatoryActionsOnly": true }

Example: registered principals of a firm

{ "mode": "searchIndividuals", "lastName": "Smith", "individualCategory": "Principal Approved" }

Example: full profile by NFA ID

{ "mode": "entityProfile", "nfaIds": ["0392970", "0254922"] }

Example: search commodity pools

{ "mode": "searchPools", "searchQuery": "Fund", "poolStatus": "CURRENT" }

Limitations

  • No CRD-number search. NFA BASIC's own search UI indexes firms/individuals only by name, NFA ID/Pool ID, and (for individuals) last name — it does not offer a CRD-number lookup axis, so this actor doesn't either.
  • No employment/exam history. Unlike FINRA BrokerCheck, NFA BASIC's public registry does not publish an individual's employment history or proficiency-exam history — NFA simply doesn't expose this data publicly.
  • hasRegulatoryActionsOnly doesn't apply to searchPools. NFA's own pool-name-search API doesn't return a regulatory-actions column on pool rows at all (firms and individuals do carry one). Combining mode=searchPools with hasRegulatoryActionsOnly=true returns 0 records immediately with an explanatory status message rather than silently paginating the whole result set. Use mode=entityProfile with the pool's ID to check for regulatory actions on a specific pool.

Use cases

  • Due diligence — verify a futures broker, advisor, or pool operator's registration and disciplinary history
  • Compliance monitoring — track membership-status changes for a watchlist of firms/individuals
  • Fintech vetting — confirm NFA membership before onboarding a futures-industry counterparty
  • Journalism & research — bulk-analyze regulatory actions across the futures industry
  • Fund due diligence — trace a commodity pool back to its registered operator

FAQ

What's NFA BASIC? The National Futures Association's public registry of every firm and individual registered with the CFTC to conduct futures/derivatives business — the futures-industry counterpart to FINRA BrokerCheck / SEC IAPD, mandated to be freely and publicly searchable.

What's an NFA ID? A unique 7-digit identifier assigned to every registered firm and individual. Commodity pools use a P-prefixed Pool ID instead (e.g. P207559).

Why do full profiles have more fields than search results? The search endpoint returns a lightweight summary row; entityProfile calls the full BASIC profile API, which includes address, registration history, and structured disciplinary/regulatory action records. Use search to discover NFA IDs, then look up the ID for the full picture.

Can I look up a commodity pool's full profile too? Yes — pass its Pool ID (e.g. P207559) to entityProfile; the actor auto-detects the entity type.

Is this data official? Yes — sourced live from the NFA's own nfa.futures.org/BasicNet JSON backend, the same data that powers the public BASIC search tool.

How fresh is the data? Real-time — every request hits the live NFA API.