Dallas County Property Records Scraper
Pricing
Pay per event
Dallas County Property Records Scraper
Search DCAD by owner, address, account, or business and export Dallas County property ownership, assessed values, exemptions, characteristics, and history.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Search public Dallas Central Appraisal District (DCAD) records and turn them into structured, source-linked data. The Actor searches by owner, street address, exact account number, or business name and extracts ownership, assessed values, exemptions, building characteristics, estimated taxes, and annual value history.
It is designed for recurring property research and portfolio monitoring where manually copying records from a dallascad property search is too slow or inconsistent.
What can you do with this Actor?
- Find Dallas County property records by owner or business name.
- Resolve an address to its 17-character DCAD account number.
- Retrieve one known residential, commercial, or business-personal-property account.
- Export current certified improvement, land, and market values.
- Compare annual assessed-value history for repeat research.
- Feed source URLs and retrieval timestamps into due-diligence workflows.
The Actor reads the public appraisal district website. It does not submit protests, access accounts, provide title evidence, or replace an official tax bill.
Who is it for?
Real-estate analysts can assemble comparable appraisal records and value histories.
Investors and acquisition teams can screen owners and parcels before deeper title, lien, or physical due diligence.
Tax and appraisal professionals can normalize public DCAD account details for review.
Data engineers can schedule repeat searches and send typed records to a warehouse, spreadsheet, webhook, or BI tool.
Why use it instead of copying DCAD pages?
DCAD separates search results, account details, and history across several pages. This Actor follows those pages, deduplicates accounts, normalizes money fields to numbers, and preserves the source URL.
A single dataset row can include:
- parcel/account identity;
- current owner and public mailing address;
- property and business names;
- certified values and estimated taxes;
- legal description and deed transfer date shown by DCAD;
- residential building characteristics where available;
- annual market-value history.
Supported Dallas CAD search modes
| Mode | Required input | Best for |
|---|---|---|
account | accountNumber | One exact 17-character DCAD account |
owner | ownerName | Parcels associated with an owner-name prefix |
address | streetName; optional number/direction/city | Properties on a Dallas County street |
business | businessName | Business personal property records |
| Detail URLs | startUrls | Reprocessing known DCAD account-detail pages |
Owner and business searches follow DCAD's prefix and % wildcard behavior. Keep broad searches bounded with maxItems.
Input parameters
| Field | Type | Default | Description |
|---|---|---|---|
searchType | string | account | account, owner, address, or business |
accountNumber | string | — | Exact 17-character account identifier |
ownerName | string | — | Owner name prefix, 2–25 characters |
businessName | string | — | Business name prefix, 2–34 characters |
addressNumber | string | — | Optional numeric street number |
streetDirection | string | empty | Optional N, S, E, W, NE, NW, SE, or SW |
streetName | string | — | Street name as used by DCAD; omit the number |
cityCode | string | empty | Optional DCAD numeric city code |
startUrls | array | empty | DCAD AcctDetailRes, AcctDetailCom, or AcctDetailBPP URLs |
maxItems | integer | 25 | Maximum unique accounts, from 1 to 500 |
includeHistory | boolean | true | Include annual certified value history |
When startUrls is present, search fields are ignored. Unsupported domains and non-detail DCAD URLs fail closed.
Get started
- Open the Actor input page.
- Choose a search mode.
- Enter the matching owner, address, account, or business field.
- Set a practical
maxItemslimit. - Keep Include assessed-value history enabled when year-over-year values matter.
- Click Start.
- Open the Dataset tab to preview, download, or integrate the records.
Exact account example:
{"searchType": "account","accountNumber": "007554000K0020000","maxItems": 1,"includeHistory": true}
Owner portfolio example:
{"searchType": "owner","ownerName": "TARGET CORP","maxItems": 25,"includeHistory": true}
Output fields
| Field | Meaning |
|---|---|
accountNumber | Stable DCAD appraisal account identifier |
propertyType | RESIDENTIAL, COMMERCIAL, or BPP |
propertyAddress, city | Public situs address and search-result city |
ownerName, ownerMailingAddress | Current public tax-roll ownership fields |
businessName | DBA name for BPP accounts, when shown |
legalDescription | Combined public legal-description lines |
deedTransferDate | Date displayed by DCAD, not independently verified |
appraisalYear | Current certified appraisal year |
improvementValue, landValue, marketValue | Numeric certified values in USD |
totalEstimatedTaxes | DCAD courtesy estimate, not a bill |
exemptions | Public exemption labels/details |
building | Available building and land characteristics |
valueHistory | Annual improvement, land, market, and capped values |
mapUrl, sourceUrl | Public DCAD evidence links |
scrapedAt | UTC retrieval timestamp |
Fields are null when DCAD displays N/A or does not provide that field for the account type.
Example output
{"accountNumber": "007554000K0020000","propertyType": "COMMERCIAL","propertyAddress": "39739 LBJ FWY","city": "DALLAS","ownerName": "TARGET CORP","marketValue": 7591090,"landValue": 2614390,"improvementValue": 4976700,"appraisalYear": 2026,"totalEstimatedTaxes": 169031.56,"exemptions": [],"valueHistory": [{"year": 2026,"improvementValue": 4976700,"landValue": 2614390,"marketValue": 7591090,"homesteadCappedValue": null}],"sourceUrl": "https://www.dallascad.org/AcctDetailCom.aspx?ID=007554000K0020000","scrapedAt": "2026-08-03T02:07:38.066Z"}
Values above are a point-in-time public example and may change when DCAD certifies or updates records.
How much does it cost to extract Dallas County property records?
The Actor uses pay-per-event pricing:
- $0.005 once per run;
- one
itemevent per successfully saved property record; - per-record price depends on your Apify plan tier.
The BRONZE item price is $0.00384 per property record. Other active tiers range from $0.004416 on FREE to $0.0010752 on DIAMOND.
Example BRONZE totals:
| Records | Start | Items | Total |
|---|---|---|---|
| 1 | $0.005 | $0.00384 | $0.00884 |
| 10 | $0.005 | $0.03840 | $0.04340 |
| 100 | $0.005 | $0.38400 | $0.38900 |
No item event is charged for an empty, rejected, duplicate, or failed record. Platform compute usage may also apply according to your Apify plan.
Schedule recurring property research
Use an Apify Schedule to rerun a stable owner, street, or account input. Send each completed dataset to your own storage, then compare records by accountNumber and appraisalYear.
The Actor returns snapshots; it does not maintain a hidden historical database or claim which field changed. Your workflow should retain prior datasets when change detection is required.
Export to spreadsheets and data pipelines
The default dataset supports JSON, CSV, Excel, XML, and RSS exports. Common patterns include:
- append owner-search results to Google Sheets;
- join
accountNumberto an internal parcel table; - load annual
valueHistoryarrays into a warehouse; - trigger a webhook after scheduled research;
- use Make or Zapier to route new dataset rows.
Treat accountNumber as the source identity and scrapedAt as snapshot metadata.
Run with the Apify API
Replace YOUR_TOKEN with an Apify API token.
cURL
curl -X POST \"https://api.apify.com/v2/acts/automation-lab~dallas-county-property-assessment-scraper/runs?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"searchType":"owner","ownerName":"TARGET CORP","maxItems":10}'
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const { defaultDatasetId } = await client.actor('automation-lab/dallas-county-property-assessment-scraper').call({ searchType: 'account', accountNumber: '007554000K0020000', maxItems: 1 });const { items } = await client.dataset(defaultDatasetId).listItems();console.log(items);
Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_TOKEN')run = client.actor('automation-lab/dallas-county-property-assessment-scraper').call(run_input={'searchType': 'business', 'businessName': 'TARGET', 'maxItems': 10})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
Use with Apify MCP
Add this Actor to Claude Code:
claude mcp add --transport http apify \"https://mcp.apify.com?tools=automation-lab/dallas-county-property-assessment-scraper"
Claude Desktop, Cursor, and VS Code setup
Use this equivalent JSON configuration in Claude Desktop, Cursor, or VS Code:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=automation-lab/dallas-county-property-assessment-scraper"}}}
Example prompts:
- “Find up to 10 Dallas County appraisal records owned by TARGET CORP.”
- “Fetch DCAD account 007554000K0020000 with annual value history.”
- “Export the returned Dallas County records as a CSV-ready table.”
Limits and failure behavior
- DCAD search pages return up to 10 results per page; the Actor follows pages until
maxItems. - The Actor uses direct public HTTP and does not require a proxy or login.
- Transient network, 429, and server failures are retried with bounded backoff.
- Unexpected HTML or exhausted retries fail the run rather than returning a misleading empty success.
- A valid search with no matches succeeds with zero dataset rows.
- Detail URL mode validates the DCAD hostname, HTTPS, page type, and account shape.
- Broad owner, business, and street queries can match many accounts; use a responsible limit.
Data interpretation
DCAD describes the site as informational. Values, exemptions, estimated taxes, owners, and transfer dates can be revised or corrected. Estimated taxes are not official bills. Owner and legal-description data are not a title report.
For decisions involving ownership, liens, taxes due, protest deadlines, or legal rights, verify against the responsible county clerk, tax office, appraisal district, and qualified professionals.
Legality and responsible use
Public accessibility does not remove your obligations. Use records for lawful property research, respect applicable privacy and anti-discrimination rules, avoid harassment, and apply appropriate retention and access controls.
Do not use this Actor to make automated eligibility, housing, credit, insurance, employment, or other high-impact decisions without the required legal basis and human review.
Troubleshooting
My address search returns no records
Use the street name as DCAD stores it and omit the street number from streetName. For example, provide addressNumber: "39739" and streetName: "LBJ", not streetName: "39739 LBJ FWY". Try omitting the optional number or city code to broaden the source search.
My owner or business result set is too broad
Enter more of the source name, then lower maxItems. DCAD supports % as a wildcard, so avoid leading wildcards unless you intentionally need a broad match.
Why are some values null?
DCAD displays N/A for some exempt properties and omits fields that do not apply to BPP, residential, or commercial records. The Actor preserves those distinctions as null instead of inventing zero.
Does the Actor monitor changes automatically?
No. Schedule repeated runs and retain prior datasets. Compare rows by accountNumber; use scrapedAt to identify each snapshot.
FAQ
Does this cover all of Texas?
No. It targets Dallas Central Appraisal District public records for Dallas County, Texas.
Can I search the Dallas CAD map?
The Actor returns the public parcel mapUrl for each resolved account. It does not scrape arbitrary map bounds or geometries.
Does it include tax payment status or amount due?
No. It returns DCAD appraisal values and the courtesy estimated-tax total. It does not claim current tax-office payment or delinquency status.
Are history values separate billable rows?
No. History is nested in the same property record and has no separate charge event.
Can I supply known account pages?
Yes. Add public DCAD residential, commercial, or BPP account-detail URLs to startUrls.
Related Actors
For another county-specific public appraisal workflow, see the Cook County Assessor Parcel Scraper. County systems use different identifiers and schemas, so use the Actor for the jurisdiction you need.