NMLS Scraper - Mortgage Loan Originators, Lenders & Branches avatar

NMLS Scraper - Mortgage Loan Originators, Lenders & Branches

Pricing

Pay per event

Go to Apify Store
NMLS Scraper - Mortgage Loan Originators, Lenders & Branches

NMLS Scraper - Mortgage Loan Originators, Lenders & Branches

Scrape NMLS Consumer Access for US mortgage originators (MLOs), companies, and branches. Row-per-entity with state licenses, disclosures, and sponsor links. First Apify actor for NMLS data.

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

a day ago

Last modified

Share

NMLS Consumer Access Scraper — Mortgage Loan Originators & Lenders

Scrape the NMLS Consumer Access registry for US mortgage companies, branches, and Mortgage Loan Originators (MLOs). Returns state-by-state licenses, regulator disclosures, sponsor relationships, and full contact info for ~500K active MLOs, ~40K companies, and ~125K branches — the same data mortgage recruiters and compliance teams pay $5K-$25K/year for.


NMLS Consumer Access Scraper Features

  • Extracts 25+ fields per entity including licenses, disclosures, contacts, and sponsor links
  • Returns per-state license details — license name, regulator, status, issue date, license number
  • Covers all three NMLS entity types: INDIVIDUAL (MLO), COMPANY, and BRANCH
  • Supports four query modes: by NMLS ID, by name, by US state, or by sponsoring company
  • Handles BotDetect CAPTCHA automatically via CapSolver — one solve per run
  • Cleans Cloudflare-obfuscated emails back to readable form, because obscurity isn't security
  • Returns clean JSON with flattened arrays — no nested objects, no HTML, no surprises
  • No proxies required — runs on any Apify plan including Free
  • Pay-per-record pricing: $0.10 per run + $0.001 per record

Who Uses NMLS Data?

  • Mortgage recruiters — Source licensed MLOs by state or sponsoring company for outreach
  • Wholesale lenders — Build territory lists of brokers and lenders with active licenses in target states
  • Compliance and risk teams — Screen counterparties for regulatory actions and license status before onboarding
  • Market researchers — Size the mortgage origination market by state, license type, or sponsor
  • Fintech and CRM integrators — Enrich existing mortgage contacts with NMLS IDs, license coverage, and disclosure history

How NMLS Consumer Access Scraper Works

  1. Pick a query mode. by_nmls_id is for direct enrichment of known IDs. by_name does a full-text search. by_state iterates all entities in one or more US states. by_company_employees pulls the MLO roster for a sponsoring company.
  2. The actor warms a session, solves the one-time BotDetect CAPTCHA, and then reuses the session for the rest of the run. One CAPTCHA per run, not one per record.
  3. Each matched entity's detail page is fetched and parsed — state licenses, regulatory actions, branch counts, employment history, and sponsor info all get flattened into a single row.
  4. Results stream into the Apify dataset as they're scraped. Pay-per-record billing means a full state-level pull costs a handful of dollars, not a subscription.

Input

{
"mode": "by_state",
"states": ["CA", "TX"],
"entityType": "INDIVIDUAL",
"includeDisclosures": true,
"maxItems": 500,
"proxyConfiguration": { "useApifyProxy": false }
}
FieldTypeDefaultDescription
modestringby_nameQuery mode: by_nmls_id, by_name, by_state, or by_company_employees
nmlsIdsarray[]List of NMLS IDs (e.g., "3030"). Used when mode = by_nmls_id
namesarray[]Company or individual names to search. Used when mode = by_name
statesarray[]Two-letter US state codes (e.g., ["CA", "TX"]). Used when mode = by_state
entityTypestring"" (all)Filter to INDIVIDUAL, COMPANY, or BRANCH. Empty returns all
sponsoringCompanyIdsarray[]Sponsoring company NMLS IDs. Used when mode = by_company_employees
includeDisclosuresbooleantrueParse regulator action details from each entity page
maxItemsinteger20Max records to return (1-10000)
proxyConfigurationobject{useApifyProxy: false}Proxy settings. NMLS does not require a proxy

Example inputs

Direct lookup by NMLS ID:

{ "mode": "by_nmls_id", "nmlsIds": ["3030", "2289"], "maxItems": 2 }

Search by name (company or individual):

{ "mode": "by_name", "names": ["Rocket Mortgage"], "entityType": "COMPANY", "maxItems": 10 }

Pull all MLOs sponsored by a company:

{ "mode": "by_company_employees", "sponsoringCompanyIds": ["2289"], "maxItems": 200 }

NMLS Consumer Access Scraper Output Fields

Every record uses the same flat schema regardless of entity type. Fields that don't apply to the entity type (e.g., sponsoring_company_* on a COMPANY) are empty strings or zeros.

{
"nmls_id": "3030",
"entity_type": "COMPANY",
"legal_name": "Rocket Mortgage, LLC",
"other_trade_names": ["Rocket", "Rocket HQ", "Rocket Mortgage", "Rocket Pro"],
"prior_legal_names": ["Quicken Loans Inc.", "Quicken Loans, LLC"],
"prior_other_trade_names": ["QLMS", "Rock Financial"],
"primary_address": "1050 Woodward Avenue",
"address_line2": "",
"city": "Detroit",
"state": "MI",
"zip": "48226",
"phone": "800-863-4332",
"toll_free_phone": "800-863-4332",
"fax": "855-455-4791",
"website": "rocket.com/mortgage, www.rocketmortgage.com",
"email": "CompanyLicensing@rocketmortgage.com",
"state_licenses_count": 183,
"state_licenses_active_count": 165,
"state_licenses": [
"Alabama - Consumer Credit License - Approved - Issued: 2009-11-10 - #20979",
"California - DFPI - Residential Mortgage Lending Act License - Approved - Issued: 1998-11-19 - #4130233"
],
"license_types": ["Mortgage Lender License", "Mortgage Servicer License"],
"federal_registrations": [],
"regulator_disclosures_count": 0,
"regulator_disclosures": [],
"branch_locations_active_count": 82,
"branch_locations_count": 3862,
"branch_states": ["AZ", "CA", "CO", "FL", "MI", "TX"],
"sponsoring_company_nmls_id": "",
"sponsoring_company_name": "",
"employment_history": [],
"office_locations": [],
"is_active": true,
"detail_url": "https://www.nmlsconsumeraccess.org/EntityDetails.aspx/COMPANY/3030",
"scraped_at": "2026-04-21T14:22:27.831Z"
}
FieldTypeDescription
nmls_idstringNMLS unique identifier
entity_typestringINDIVIDUAL, COMPANY, or BRANCH
legal_namestringLegal name of the entity
other_trade_namesarray of stringsDBAs currently in use
prior_legal_namesarray of stringsHistorical legal names
prior_other_trade_namesarray of stringsPreviously used DBAs
primary_addressstringStreet address line 1
address_line2stringSuite, unit, or line 2
citystringCity
statestringTwo-letter state code
zipstringZIP code (5 or 9 digit)
phonestringPrimary phone
toll_free_phonestringToll-free phone if listed
faxstringFax number
websitestringWebsite URL(s), comma-separated
emailstringPrimary email (Cloudflare obfuscation decoded)
state_licenses_countintegerTotal state licenses on record (active + inactive)
state_licenses_active_countintegerCount of currently active licenses
state_licensesarray of stringsFormatted "State - License Name - Status - Issued: YYYY-MM-DD - #LicenseNum"
license_typesarray of stringsUnique license type names across all states
federal_registrationsarray of stringsFederal regulator registrations
regulator_disclosures_countintegerTotal regulatory actions on record
regulator_disclosuresarray of stringsFormatted "Regulator - Date - Action Type - Case #"
branch_locations_active_countintegerActive branches (companies only)
branch_locations_countintegerTotal branches past and present (companies only)
branch_statesarray of stringsStates where branches operate (companies, from search results)
sponsoring_company_nmls_idstringSponsoring company NMLS ID (MLOs only)
sponsoring_company_namestringSponsoring company legal name (MLOs only)
employment_historyarray of stringsEmployer history (individuals only)
office_locationsarray of stringsRegistered office locations (individuals only)
is_activebooleanWhether the entity has at least one active license
detail_urlstringDirect link to the entity's NMLS detail page
scraped_atstringISO timestamp when the record was scraped

FAQ

How do I scrape NMLS Consumer Access?

NMLS Consumer Access Scraper handles it for you. Pick a query mode (by NMLS ID, name, state, or sponsoring company), set maxItems, and run. The actor solves the one-time BotDetect CAPTCHA on its own and returns structured JSON.

How much does NMLS Consumer Access Scraper cost to run?

NMLS Consumer Access Scraper uses pay-per-event pricing: $0.10 per run + $0.001 per record. A 100-MLO pull runs ~$0.20. A 5,000-MLO state sweep runs ~$5.10. A full 500K-MLO enumeration costs ~$500 — though you probably don't need the whole country.

Does NMLS Consumer Access Scraper need proxies?

No. The actor uses got-scraping to bypass Cloudflare without a proxy. The proxyConfiguration field is there if you want to route through Apify proxy for geo-targeting, but the default (no proxy) works fine on any plan.

Can I pull only MLOs sponsored by a specific company?

Yes. Set mode = by_company_employees and pass the company's NMLS ID in sponsoringCompanyIds. The actor fetches each sponsoring company's detail page, then searches for and enriches every MLO whose active sponsor ID matches.

What data can I get from NMLS?

NMLS Consumer Access Scraper returns per-state license details (regulator, license name, status, issue date, license number), regulatory action history, sponsor relationships for MLOs, branch counts for companies, full contact info, and up to 25+ structured fields per record. Consumer complaint counts are not exposed by the site itself and are therefore not included.

Is the data real-time?

NMLS Consumer Access Scraper hits the live NMLS Consumer Access registry. State regulators update the registry daily, so what you get is current as of the last regulator sync — typically within 24 hours for license changes.


Need More Features?

Need custom fields, per-state pagination strategies, or a different mortgage data source? File an issue or get in touch.

Why Use NMLS Consumer Access Scraper?

  • Affordable — $0.10/run + $0.001/record. A 5K-MLO state pull runs ~$5 versus $5K-$25K/year for equivalent commercial feeds.
  • Clean output — returns flat JSON with consistent field names, decoded emails, ISO dates, and flattened license arrays. No HTML, no nested objects, no cleanup required before you feed it into your CRM.
  • Blue ocean — the only Apify actor that targets NMLS Consumer Access. Every other mortgage-related actor on the store scrapes Zillow, which is not the same thing.