# California Real Estate License Scraper (DRE) (`scrapers_lat/california-dre-scraper`) Actor

Scrape California real estate license records from the DRE public license lookup by agent or broker name or license ID. Extract licensee name, license ID, type, status, expiration, responsible broker, address and disciplinary flag. Export to JSON, CSV or Excel.

- **URL**: https://apify.com/scrapers\_lat/california-dre-scraper.md
- **Developed by:** [Scrapers Lat](https://apify.com/scrapers_lat) (community)
- **Categories:** Lead generation, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

<!-- actor-banner -->
![California Real Estate License Scraper (DRE)](https://scrapers.lat/banners/california-dre-scraper.png)
<!-- /actor-banner -->

## California Real Estate License Scraper (DRE)

> Extract California real estate license records from the DRE public license lookup by agent name, broker name, brokerage name or license ID, covering salespersons, brokers and corporations across the state.

![Apify](https://img.shields.io/badge/Platform-Apify-1CE1CE?logo=apify&logoColor=white)
![California](https://img.shields.io/badge/Coverage-Statewide-blue)
![Maintained](https://img.shields.io/badge/Maintained-Yes-brightgreen)
![Output](https://img.shields.io/badge/Output-JSON%20%7C%20CSV%20%7C%20Excel-orange)

<table><tr>
<td align="center"><strong>Agents & brokers</strong><br>salesperson, broker, corporation</td>
<td align="center"><strong>Responsible broker</strong><br>+ officers & DBAs</td>
<td align="center"><strong>JSON / CSV / Excel</strong><br>output formats</td>
</tr></table>

<br>

### What you get

Each record is a California real estate licensee pulled from the Department of Real Estate public license lookup, ready to load into a CRM, spreadsheet, or lead pipeline:

- **name**: licensee name (agent, broker, or brokerage/corporation)
- **licenseId**: DRE license identification number
- **licenseType**: salesperson, broker, broker-officer, or corporation
- **status**: license status (Licensed, Expired, Surrendered, and similar)
- **expirationDate**: date the license expires
- **issueDate**: date the license was originally issued
- **responsibleBroker**: for a salesperson, the responsible or employing broker (license ID, name, and address)
- **formerNames**: prior names recorded on the license
- **mainOffice**: main office address for a broker or corporation
- **licensedOfficers**: for a corporation, the designated and licensed officers (license ID, name, expiration)
- **dbas**: doing-business-as names on the license with their active status
- **address / city / state / zip**: mailing address on file
- **addressReliable**: false when the address is flagged unreliable in the DRE database
- **mortgageLoanOriginator**: whether the licensee holds a mortgage loan originator endorsement
- **disciplinaryAction**: true when the license carries a disciplinary or enforcement comment
- **comments**: the disciplinary and enforcement history text when present
- **url**: direct link to the licensee record
- **observedAt**: when this record was last seen by the scraper
- **error**: populated only if a lookup fails, otherwise null

Turn off Include Full License Details for a fast name search that returns only the summary fields (name, license ID, license type, city, and mortgage loan originator flag).

### Who is it for

| Use case | Who benefits |
|---|---|
| Real estate recruiting | Brokerages and teams sourcing licensed agents by name or area |
| Lead generation | Vendors and service providers prospecting agents and brokers |
| License verification | Title, escrow, and lending teams confirming an agent's license |
| Compliance and due diligence | Teams checking status, expiration, and disciplinary history |
| Market research | Analysts mapping brokerages, officers, and DBAs |
| Data pipelines | Developers feeding CRMs and BI tools with licensee data |

### Frequently Asked Questions

**How do I look up a single agent or broker?**
Enter the person's name in the format last name, first name (for example Smith, John), or paste their 8-digit license ID. An 8-digit number returns that one license with the full detail record.

**Can I pull every agent at a brokerage?**
Yes. Search the brokerage or corporation name (for example Coldwell Banker) and the actor returns the matching licenses. Use Max Items to cap how many records you collect and the City field to narrow to one city.

**Does it show the responsible broker for an agent?**
Yes. For a salesperson, the record includes the responsible or employing broker with the broker's license ID, name, and address, which is the key link for recruiting and verification.

**Does it include disciplinary actions?**
Yes. When a license carries a disciplinary or enforcement comment, the record sets a disciplinary flag and includes the comment history text. Licenses in good standing are marked accordingly.

**Are email addresses and phone numbers included?**
No. The California DRE public license lookup does not release licensee email addresses or phone numbers, so they are not part of the data and are never invented.

**How do I get only active licenses?**
Set License Status to Licensed. You can also filter by license type to keep only salespersons, only brokers, or only corporations.



<!-- example-tasks -->
<!-- /example-tasks -->

<!-- x402 -->
### Export, API and AI agents (x402 + MCP)

Export the scraped data to **JSON, CSV or Excel**, pull it as a **dataset** through the Apify **API**, or wire it into your app with **no code**. This web scraper and data extractor also works for bulk data extraction and scheduled runs.

For AI agents: this Actor is available on **x402**, Apify's agentic payment standard built with Coinbase. An AI agent can discover, pay for and run it on its own with a funded wallet and a single HTTP request: no account, no subscription, no API key and no human in the loop. It also runs as an **MCP** tool inside Claude, Cursor and other AI clients out of the box. Learn more about [x402 agentic payments on Apify](https://docs.apify.com/platform/integrations/x402).
<!-- /x402 -->

<!-- related-actors -->
### Related scrapers

Need data from the same space? Here are other scrapers we build and maintain:

- [California CSLB Contractor License Scraper](https://apify.com/scrapers_lat/california-cslb-scraper): Extract licensed California contractor records from the CSLB public data portal by classification and county, with license status, bond, and workers' comp.
- [California State Bar Attorney Scraper](https://apify.com/scrapers_lat/california-state-bar-scraper): Search and extract California attorney records from the State Bar, with license status, admission date, and discipline history.
- [NPPES NPI Provider Scraper](https://apify.com/scrapers_lat/nppes-npi-scraper): Scrape US healthcare provider records from the official NPPES NPI Registry by name, location, or specialty.

<!-- /related-actors -->

<!-- scrapers-lat-cta -->
### More scrapers at scrapers.lat

This actor is built and maintained by [scrapers.lat](https://scrapers.lat), where we publish scrapers for Latin American and US public platforms: real estate, jobs, e-commerce, company registries and government data. Browse the full catalog, see live sample output for each one, or ask us for a custom scraper at [scrapers.lat](https://scrapers.lat).

---

> This actor is an independent tool and has no affiliation with the California Department of Real Estate or the State of California. It only accesses data that is published on the DRE public license lookup. Use it in accordance with the DRE website terms.

# Actor input Schema

## `maxItems` (type: `integer`):

Maximum number of licensee records to collect for the search. Optional.
## `withDetails` (type: `boolean`):

When enabled, each licensee also includes the full detail record: license status, expiration and issue dates, mailing address, responsible or employing broker, licensed officers, DBAs and any disciplinary action. When disabled, only the summary fields (name, license ID, license type, city) from the search results are returned, which is much faster for large name searches.
## `query` (type: `string`):

A licensee name or an 8-digit license ID. Names can be a full name (for example "Smith, John"), a last name, or an agency or brokerage name (for example "Coldwell Banker"). An 8-digit number is treated as a license ID and returns that single license.
## `city` (type: `string`):

Optional city filter applied to the name search (for example "Irvine"). Leave blank to search statewide.
## `licenseType` (type: `string`):

Optional filter to keep only one kind of license from the results.
## `status` (type: `string`):

Optional filter to keep only licenses in a given status. Requires Include Full License Details.
## `proxyConfiguration` (type: `object`):

Optional proxy. The public license lookup is reachable directly; enable a US Apify proxy only if requests start failing.

## Actor input object example

```json
{
  "maxItems": 10,
  "withDetails": true,
  "query": "Coldwell Banker",
  "licenseType": "any",
  "status": "any",
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
````

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "maxItems": 10,
    "query": "Coldwell Banker"
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapers_lat/california-dre-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "maxItems": 10,
    "query": "Coldwell Banker",
}

# Run the Actor and wait for it to finish
run = client.actor("scrapers_lat/california-dre-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "maxItems": 10,
  "query": "Coldwell Banker"
}' |
apify call scrapers_lat/california-dre-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=scrapers_lat/california-dre-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "California Real Estate License Scraper (DRE)",
        "description": "Scrape California real estate license records from the DRE public license lookup by agent or broker name or license ID. Extract licensee name, license ID, type, status, expiration, responsible broker, address and disciplinary flag. Export to JSON, CSV or Excel.",
        "version": "0.1",
        "x-build-id": "OLwpkxbI4GxA5ckhz"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapers_lat~california-dre-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapers_lat-california-dre-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/scrapers_lat~california-dre-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scrapers_lat-california-dre-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/scrapers_lat~california-dre-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scrapers_lat-california-dre-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "query"
                ],
                "properties": {
                    "maxItems": {
                        "title": "Max Items",
                        "minimum": 1,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "Maximum number of licensee records to collect for the search. Optional."
                    },
                    "withDetails": {
                        "title": "Include Full License Details",
                        "type": "boolean",
                        "description": "When enabled, each licensee also includes the full detail record: license status, expiration and issue dates, mailing address, responsible or employing broker, licensed officers, DBAs and any disciplinary action. When disabled, only the summary fields (name, license ID, license type, city) from the search results are returned, which is much faster for large name searches.",
                        "default": true
                    },
                    "query": {
                        "title": "Name or License ID",
                        "type": "string",
                        "description": "A licensee name or an 8-digit license ID. Names can be a full name (for example \"Smith, John\"), a last name, or an agency or brokerage name (for example \"Coldwell Banker\"). An 8-digit number is treated as a license ID and returns that single license."
                    },
                    "city": {
                        "title": "City",
                        "type": "string",
                        "description": "Optional city filter applied to the name search (for example \"Irvine\"). Leave blank to search statewide."
                    },
                    "licenseType": {
                        "title": "License Type",
                        "enum": [
                            "any",
                            "salesperson",
                            "broker",
                            "corporation"
                        ],
                        "type": "string",
                        "description": "Optional filter to keep only one kind of license from the results.",
                        "default": "any"
                    },
                    "status": {
                        "title": "License Status",
                        "enum": [
                            "any",
                            "licensed",
                            "expired"
                        ],
                        "type": "string",
                        "description": "Optional filter to keep only licenses in a given status. Requires Include Full License Details.",
                        "default": "any"
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Optional proxy. The public license lookup is reachable directly; enable a US Apify proxy only if requests start failing.",
                        "default": {
                            "useApifyProxy": false
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
