California Real Estate License Lookup — DRE Register
Pricing
from $2.40 / 1,000 license rows
California Real Estate License Lookup — DRE Register
Filter California DRE current license rows by number, name, county or type. Export status, dates, addresses, restrictions and official corporation/officer cross-links for due diligence.
Pricing
from $2.40 / 1,000 license rows
Rating
0.0
(0)
Developer
Automation Lab
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
11 days ago
Last modified
Categories
Share
California Real Estate License Lookup — DRE Current Register
Use this California real estate license lookup to screen current DRE salesperson, broker, corporation and responsible-officer license rows for onboarding and recurring due diligence. Filter the official bulk register by license number, name, county or type, then export structured records with status, dates, addresses, restrictions and DRE's related-license fields.
This is an independent tool, not affiliated with or endorsed by the California Department of Real Estate. It reads the official current-register export, not the individual verification site's discipline history.
Who is it for?
- Brokerage operations teams screening agent lists before onboarding.
- Mortgage and title teams checking current license rows alongside their own compliance process.
- Analysts comparing salesperson, broker and corporate-officer records across repeated snapshots.
Why use it?
The source is a statewide ZIP containing a large CSV, not a query API. This Actor downloads the current official file, validates its shape and scans it with your filters. You receive normalized dates, preserved leading-zero numbers, explicit source provenance and consistent fields without managing the ZIP yourself.
There is no private mirror or credential requirement. Every run reads the official source. The delivered-row limit does not skip source validation.
Coverage and important limitations
The export includes four row types: Salesperson, Broker, Corporation and Officer. A license number can appear on multiple rows. An Officer registration is not a separate inferred corporate ownership claim.
- Only the current register is covered. Missing rows are not proof of revocation, surrender, expiration or misconduct.
- Status strings are DRE's
LicensedorLicensed NBA; the latter means no business address. - The restricted flag is preserved, not interpreted as a disciplinary history.
- No historical records, disciplinary comments, email enrichment or real-time monitoring are included.
- Related-license fields are the source's cross-links. A number lookup returns only rows whose own license number matches; it does not recursively fetch related persons or corporations.
- DRE describes this file as updated daily. The HTTP Last-Modified timestamp is source-file provenance, not a guaranteed per-row change date.
Getting started
- Open the Actor and keep the example
county: Orange,licenseType: Broker,maxItems: 10. - Run it. Download and full-register validation happen before record delivery.
- Inspect the default dataset and the
SUMMARYkey-value record. - Export JSON, CSV or Excel using Apify's dataset tools.
- For repeated checks, schedule runs in Apify and compare snapshots in your own downstream system.
Inputs
All nonblank filters combine with AND, including license-number lookups. Input string edges are trimmed. Blank filters mean no restriction.
| Field | Behavior |
|---|---|
licenseNumber | Exact eight digits, including leading zeros. Matches the row's own number only. |
name | Case-insensitive substring of last/company name, first name and suffix joined with comma-space. Internal whitespace is literal. |
county | Case-insensitive exact county name; Orange does not match Orange County. |
licenseType | Exact Salesperson, Broker, Corporation or Officer. |
maxItems | Global distinct delivered-row cap after filters, default 100, range 1–10000. Zero is invalid. |
An empty object returns the first 100 rows in CSV order. It is not a random sample or an aggregate. Unsupported input fields and invalid combinations/types fail rather than being silently ignored.
Example inputs
Orange County brokers
{"county":"Orange","licenseType":"Broker","maxItems":10}
Own-license-number rows
{"licenseNumber":"01794680","maxItems":20}
Corporate name screening
{"name":"Bryan Industrial","licenseType":"Corporation","maxItems":20}
Output fields
Each dataset item represents one current license row, not one unique person. Optional blank source fields are null. The same own license number can legitimately appear with different types or related-license numbers.
| Fields | Meaning |
|---|---|
licenseNumber, licenseType, licenseStatus | Official row identity, type and current status. |
name, lastName, firstName, nameSuffix | Combined display name and original name components; corporation names use lastName. |
originalDateOfLicense, effectiveDate, expirationDate | ISO dates, or null when blank/zero in the source. |
multipleLicense | DRE multiple-license indicator. |
relatedLicenseNumber, relatedLicenseType | DRE's explicit cross-link; no inferred graph expansion. |
relatedLastName, relatedFirstName, relatedNameSuffix | Name components supplied for the related license. |
address1, address2, city, state, zipCode, county | Public mailing/business-address fields supplied by DRE. |
foreignNation, foreignPostalInfo | Foreign-address fields when present. |
restricted, ethicsAndAgency | Original DRE indicators, not conclusions about discipline. |
sourceUrl, sourceLastModified, retrievedAt | Official ZIP URL, HTTP file timestamp and scan-start timestamp. |
Example output
The following public corporate record illustrates the source-backed relationship shape observed in the current CSV; dates and provenance depend on the run.
{"licenseNumber": "00002442","licenseType": "Corporation","licenseStatus": "Licensed","name": "Bryan Industrial Properties Inc","effectiveDate": "2024-02-04","expirationDate": "2028-02-03","county": "ORANGE","relatedLicenseNumber": "01794680","relatedLicenseType": "Officer","restricted": "N","sourceUrl": "https://secure.dre.ca.gov/datafile/CurrList.zip"}
Other documented fields also appear on real dataset rows. This abbreviated example is not an exhaustive schema.
Summary and completeness
SUMMARY contains scanned source rows, per-type counts, raw filter-match count, delivered rows, limitReached and provenance. Duplicate identical matching source rows are delivered only once. Match count is before deduplication; it can exceed delivery count even without a cap.
The Actor checks the exact header, eight-digit identities, row types, status vocabulary, all four type presence and a conservative statewide row-count floor. A changed or incomplete export fails instead of masquerading as a valid empty search. No individual verification pages are fetched.
How much does it cost to screen California DRE license rows?
Pricing uses a one-time $0.005 start fee plus the license-row event. Empty searches have the start fee but no license-row charge. Invalid input is rejected before charging. Each successfully delivered row uses the same item event, regardless of license type; related fields have no separate event charge.
| Plan tier | Per license row |
|---|---|
| FREE | $0.0046 |
| BRONZE | $0.004 |
| SILVER | $0.00312 |
| GOLD, PLATINUM, DIAMOND | $0.0024 |
BRONZE examples including the start fee: an estimated total of $0.009 for a 1-record run, $0.045 for a 10-record run, or $0.405 for a 100-record run. Check the current Apify pricing panel before running. Platform spending limits may stop delivery before maxItems; treat the dataset as partial when the summary reports fewer delivered rows than matched rows.
Limits and troubleshooting
Every run downloads the large official export even for one-number lookups. This can take longer than an interactive search. The default run timeout is one hour to allow larger filtered exports; smaller limits are recommended for initial evaluation.
Transient network failures, rate limits and server errors receive up to three total download attempts with bounded backoff. Permanent errors, schema changes and invalid rows fail explicitly. No paid proxy fallback is enabled. A terminal failure can leave partial results if delivery itself fails; do not treat a failed run as a complete export.
No results? Check the exact county and eight-digit number, try a wider name substring, or remove one AND filter. Absence is not a legal finding.
Source changed? Preserve the failed run ID and contact the maintainer through Apify. Do not interpret a failed download as no matching licenses.
Integrations
Use CSV exports for spreadsheet checks, JSON for a compliance pipeline, or Apify datasets with Make, Zapier and webhooks. Keep each successful run as a separate snapshot and join on license number, type and related number rather than license number alone. Downstream change comparison and notifications are your integration's responsibility; the Actor does not emit alerts.
API usage
Keep tokens in environment variables. Start one run and retain its ID; the response contains run/storage metadata, not the license rows.
curl -X POST "https://api.apify.com/v2/acts/automation-lab~california-dre-license-register/runs" \-H "Authorization: Bearer $APIFY_TOKEN" -H "Content-Type: application/json" \-d '{"county":"Orange","licenseType":"Broker","maxItems":10}'
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/california-dre-license-register').call({county:'Orange',licenseType:'Broker',maxItems:10});const { items } = await client.dataset(run.defaultDatasetId).listItems({limit:10});console.log(items);
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('automation-lab/california-dre-license-register').call(run_input={'county':'Orange','licenseType':'Broker','maxItems':10})print(client.dataset(run['defaultDatasetId']).list_items(limit=10).items)
MCP use
Select the stable Actor-specific tool subset:
$claude mcp add --transport http apify "https://mcp.apify.com?tools=automation-lab/california-dre-license-register"
Equivalent client configuration for Claude Desktop, Cursor, or VS Code (use that client's HTTP MCP configuration format):
{"mcpServers":{"apify":{"url":"https://mcp.apify.com?tools=automation-lab/california-dre-license-register"}}}
Use the client's supported Apify authentication setup. Discover actual names and schemas with scoped tools/list: Actor selection also includes run/dataset/KV/abort helper tools, not exactly one tool. Read-only discovery does not authorize execution.
Example prompts: “Look up own-license-number rows for 01794680.” For a filtered screening workflow: “Run the DRE register Actor once for ten Orange County brokers. Follow that same run to completion and return license number, name, status and expiration.”
For an authorized invocation, retain the returned run ID and storage IDs. call-actor waits at most 45 seconds (default 30). If pending, check the same run with bounded 2/4/8/10-second backoff and a 120-second deadline. Configure client request timeout above the selected wait plus transport margin. On timeout recover the known run; never restart to poll. At deadline report pending and its ID. Report failures honestly and identify partial rows.
After success, request bounded dataset pages, for example 20 source rows from offset 0, at most 100 rows and 64 KiB of serialized UTF-8 content admitted to model context. Enforce this host-side, track source offsets and stop at exhaustion or either budget. Disclose truncation and the next offset; keep full exports outside model context. A client unable to intercept oversized responses cannot guarantee a byte ceiling. No universal token-saving claim is made.
Legality, responsible use and privacy
Source: DRE Examinee/Licensee List Data Files. Public availability does not waive applicable privacy, data-use or due-diligence obligations. Handle public addresses responsibly and verify significant decisions with DRE's official services. This tool is not legal advice.
Failed operations send sanitized diagnostic input, exceptions and Actor/build/run IDs to our private GlitchTip service for repair. Secret fields and URL queries are removed; reports are retained for 30 days. Successful datasets are stored in your Apify run storage.
FAQ
Does an absent license mean revoked? No. This is only the current bulk register; use official DRE verification for significant decisions.
Does the Actor use AI? No runtime AI or model enrichment is used. Source fields are normalized deterministically.
How do I delete results? Delete your Apify run dataset/KV storage using platform controls. Temporary source files are cleaned after processing; sanitized failure reports expire after 30 days.
How do I get support? Preserve the run ID and open an Actor issue in Apify. Do not post sensitive inputs publicly.
Related Actors
- Virginia Real Estate License Lookup for a separate state corpus.
- Texas TREC License Holder Search for Texas records.
These products do not add coverage to this California export.